[root@localhost ~]# yum -y install pcre-devel zlib-devel openssl openssl-devel gcc*

[root@localhost ~]# useradd -r -s /sbin/nologin nginx

[root@localhost nginx-1.12.2]# cd nginx-1.12.2

[root@localhost nginx-1.12.2]# ./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --user=nginx --group=nginx --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log  --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx/nginx.lock --with-http_ssl_module  --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-http_mp4_module --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi

[root@localhost nginx-1.12.2]# make && make install

[root@localhost nginx-1.12.2]# mkdir -pv /var/tmp/nginx/{client,fastcgi,proxy,uwsgi}
mkdir: 已创建目录 "/var/tmp/nginx"
mkdir: 已创建目录 "/var/tmp/nginx/client"
mkdir: 已创建目录 "/var/tmp/nginx/fastcgi"
mkdir: 已创建目录 "/var/tmp/nginx/proxy"
mkdir: 已创建目录 "/var/tmp/nginx/uwsgi"

[root@localhost nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

[root@localhost nginx-1.12.2]# nginx

[root@localhost ~]# ss -tnl |grep 80
LISTEN 0 128 *:80 *:*

nginx配置。

[root@localhost ~]# cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
[root@localhost ~]# vi /etc/nginx/nginx.conf

server {
listen 8080;
server_name www.ljj.com;
}

location / {
root /webserver/;
index index.html index.htm;
}

[root@localhost ~]# mkdir /webserver

[root@localhost ~]# nginx -s reload

windows端访问:www.ljj.com

nginx基于basic认证的配置

[root@localhost data]# vi /etc/nginx/nginx.conf

server {
listen 80;
server_name 192.168.1.222;
location /data/
{
root /locationtest1/;
index index.html index.htm;
auth_basic "welcome to";
auth_basic_user_file /locationtest1/data/.htpasswd;
}
}

[root@localhost ~]# cd /locationtest1/data/
[root@localhost data]# ls
index.html
[root@localhost data]# cat index.html
192.168.1.334

[root@localhost data]# htpasswd -c -d /locationtest1/data/.htpasswd lishi
New password:
Re-type new password:       #密码123
Adding password for user lishi

[root@localhost data]# nginx -s reload

windows端访问:192.168.1.222/data/

nginx地址重写

[root@localhost data]# vi /etc/nginx/nginx.conf

server {
listen 80;
server_name www.ljj.com;
location /data/
{

root /locationtest1/;
rewrite ^(.*) http://www1.ljj.com$1 last;
index index.html index.htm;
}
}
server {
listen 80;
server_name www1.ljj.com;
location /data/
{
root /locationtest1/;
index index.html index.htm;
}
}

windows端测试:www.ljj.com/data/会跳转至www1.ljj.com/data/

路径别名

[root@localhost www]# vi /etc/nginx/nginx.conf

server {
listen 80;
server_name bbs.ljj.com;
root /wb1/data;
location /www/

{
alias /ljj/;
index index.html index.htm;
}
}

[root@localhost data]# mkdir -p /wb1/data/www
[root@localhost data]# cd /wb1/data/www/
[root@localhost www]# vi index.html

[root@localhost data]# ls
ljj www
[root@localhost data]# pwd
/wb1/data
[root@localhost data]# ls www/ ljj/
ljj/:
index.html

www/:
index.html

我正常的主页目录是在/wb1/data/www下,如果有没有路径别名,请求http://www1.ljj.com/www/,响应的就是/wb1/data/www/下的主页。
如果有路径别名请求http://www1.ljj.com/www/,那就是/ljj/下的主页,

Nginx虚拟目录alias和root目录

nginx是通过alias设置虚拟目录,在nginx的配置中,alias目录和root目录是有区别的:
1)alias指定的目录是准确的,即location匹配访问的path目录下的文件直接是在alias目录下查找的;
2)root指定的目录是location匹配访问的path目录的上一级目录,这个path目录一定要是真实存在root指定目录下的;
3)使用alias标签的目录块中不能使用rewrite的break(具体原因不明);另外,alias指定的目录后面必须要加上"/"符号!!
4)alias虚拟目录配置中,location匹配的path目录如果后面不带"/",那么访问的url地址中这个path目录后面加不加"/"不影响访问,访问时它会自动加上"/";
    但是如果location匹配的path目录后面加上"/",那么访问的url地址中这个path目录必须要加上"/",访问时它不会自动加上"/"。如果不加上"/",访问就会失败!
5)root目录配置中,location匹配的path目录后面带不带"/",都不会影响访问。

调整用户浏览的url

[root@localhost nginx]# vi nginx.conf

server {
listen 80;
server_name www.ljj.com;
location /data/
{
root /locationtest1/;
index index.html index.htm;
}
}

server {
listen 80;
server_name ljj.com;
rewrite ^/(.*) http://www.ljj.com/$1 permanent;
}
server {
listen 80;
location / {
root /locationtest1/data/;
index index.html index.htm;
}
}

windows端访问:ljj.com/data/会跳转至www.ljj.com/data/

Nginx域名镜像

server {
listen 80;
server_name www.ljj.com;
root /locationtest1;
location ^~ /data
{

rewrite ^/data(.*) http://home.ljj.com/data1$1 last;
index index.html index.htm;
}
}

server {
listen 80;
server_name home.ljj.com;
location /data1
{
root /ngx;
index index.html index.htm;
}
}
server {
listen 80;
server_name www1.ljj.com;
root /wb1/data;
location /www/

{
rewrite ^/www(.*) http://home.ljj.com/data1$1 last;
index index.html index.htm;
}
}

win端访问:www.ljj.com/data跳转至http://home.ljj.com/data1/

win端访问:www1.ljj.com/www跳转至http://home.ljj.com/data1/

目录自动添加/

[root@localhost ~]# mkdir -p /web5/data/
[root@localhost ~]# cd /web5/data/
[root@localhost data]# vi index.html

/web5/data/

[root@localhost nginx]# vi nginx.conf

server {
listen 80;
server_name web.ljj.com;
root /web5;
location ^~ /data
{
if (-d $request_filename)
{
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
}
}

win端访问:web.ljj.com/data/

目录合并

[root@localhost nginx]# vi nginx.conf

server
{
listen 80;
server_name sina.ljj.com;
root /sina;
location ^~ /shohu
{
rewrite ^/shohu-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /shohu/$1/$2/$3/$4/$5/$6.html last;
}
}

[root@localhost ~]# mkdir /sina/shohu/12/23/34/45/56/67/ -p

[root@localhost ~]# cd /sina/shohu/12/23/34/45/56/67/
[root@localhost 67]# vi /sina/shohu/12/23/34/45/56/9.html

/sina/shohu/12/23/34/45/56

防盗链

server {
listen 80;
server_name baidu.ljj.com;
root /locationtest1;
location ~* ^.+\.(gip|jpg|png|swf|flv|rar|zip)$ #设置防盗链文件类型,自行修改,每个后缀用“|”符号分开!
{
valid_referers none blocked server_name *.ljj.com; #白名单,允许文件链出的域名白名单,自行修改成您的域名!*.ljj.com这个指的是子域名,域名与域名之间使用空格隔开!
if ($invalid_referer)
{
rewrite ^/ http://baidu.ljj.com/data/forbidden.png; #这个图片是盗链返回的图片,也就是替换盗链网站所有盗链的图片。这个图片要放在没有设置防盗链的网站上,因为防盗链的作用,这个图片如果也放在防盗链网站上就会被当作防盗链显示不出来了,盗链者的网站所盗链图片会显示X符号。
}
}
}

server {
listen 80;
server_name baidu.ljj.com;
root /locationtest1;
location /data/
{
valid_referers none blocked server_name *.ljj.com;
if ($invalid_referer)
{
rewrite ^/ http://baidu.ljj.com/data/forbidden.png;
}
}
}

基于浏览器实现分离的。

if($http_user_agent ~ Firefox)
rewrite ^(.*)$ /firefox/$1 break;

nginx源码安装与使用的更多相关文章

  1. Nginx源码安装及调优配置

    导读 由于Nginx本身的一些优点,轻量,开源,易用,越来越多的公司使用nginx作为自己公司的web应用服务器,本文详细介绍nginx源码安装的同时并对nginx进行优化配置. Nginx编译前的优 ...

  2. Nginx源码安装及调优配置(转)

      导读 由于Nginx本身的一些优点,轻量,开源,易用,越来越多的公司使用nginx作为自己公司的web应用服务器,本文详细介绍nginx源码安装的同时并对nginx进行优化配置. Nginx编译前 ...

  3. nginx源码安装方法

    nginx源码安装方法 安装方法如下 1.安装nginx必要的源码依赖软件包. yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zli ...

  4. nginx源码安装

    1,首先解决系统环境: 安装rpm包组{CentOS6 跟开发相关的包组:} a.  Development Tools #yum groupinstall "Development Too ...

  5. nginx 源码安装的重启命令

    源码安装nginx就面临这样的麻烦,不能使用service nginx restart 来重启nginx,没办法只能重新加载下nginx. #/usr/local/nginx/sbin/nginx - ...

  6. nginx源码安装教程(CentOS)

    1.说明 官方源码安装说明:http://nginx.org/en/docs/configure.html 源码包下载地址:http://nginx.org/en/download.html 版本说明 ...

  7. nginx 源码安装以及后续升级https

    事情的来源是,公司要将网站从http升级到https,由于历史遗留原因,才发现现有的nginx是通过源码安装的,并没有安装ssl模块,需要现安装sll模块,这个nginx是整个公司最前端的一个代理,涉 ...

  8. Nginx源码安装配置

    Nginx web服务器简介 Nginx ("engine x") 是一个高性能HTTP 和 反向代理 服务器.IMAP.POP3.SMTP 服务器. Nginx 是由 Igor ...

  9. nginx 源码安装配置详解(./configure)

    在"./configure"配置中,"--with"表示启用模块,也就是说这些模块在编译时不会自动构建,"--without"表示禁用模块, ...

  10. Nginx 源码安装和调优

    常见web架构: LAMP  =Linux+Apache+Mysql+PHP LNMP  =Linux+Nginx+Mysql+PHP   nginx概述: 知道:1  不知道:2 Nginx (&q ...

随机推荐

  1. (day53)五、模型层(ORM)、settings文件配置

    目录 一.settings配置 (一)测试文件配置 (二)查看对应sql语句 二.模型表数据的增删改查 (一)创建数据 (1)create方法 (2)利用对象的绑定方法 (二)修改数据 (1)利用qu ...

  2. ionic4之ion-sliders

    <ion-content class="details_"> <img class="courimg_" src="assets/i ...

  3. 【2019.8.12 慈溪模拟赛 T2】汪哥图(wang)(前缀和)

    森林 考虑到题目中给出条件两点间至多只有一条路径. 就可以发现,这是一个森林. 而森林有一个很有用的性质. 考虑对于一棵树,点数-边数=\(1\). 因此对于一个森林,点数-边数=连通块个数. 所以, ...

  4. VS2017 无法解析的外部符号 __vscwprintf

    我是将VS2012 升级到VS2017,然后对以前的项目重新编译, 就出现了下面错误 错误 LNK2019 无法解析的外部符号 __imp__vsnprintf,该符号在函数 *******中被引用 ...

  5. FFmpeg 常用结构体

    0.FFmpeg 中最关键的结构体之间的关系 FFmpeg 中结构体很多.最关键的结构体可以分成以下几类: 1)解协议(http, rtsp, rtmp, mms) AVIOContext,URLPr ...

  6. golang基础之第一个go程序

    编写 Hello World 创建文件 hello.go,不写入任何内容.按照如下的命令尝试进行编译 $ go run hello.go 将会打印出如下错误: package main: hello. ...

  7. vsftpd限制下载流量

    有时候我们在公司为了考虑业务,流量以及用户数问题会做一些限制操作,今天我们来看一下vsftpd是怎么做限流的 在vsftpd配置文件中添加如下内容 为了方便测试我们临时生成一个文件 接下来我们开始测试 ...

  8. background属性怎么添加2个或多个背景图

    最近遇到一个需求,下面充值金额按钮是一个背景图,点击之后显示的状态也是一个背景图,如下图      按照惯用的套路,新增一个class,点击后的状态直接写在里面即可 然而点击后,虽然状态背景成功显示出 ...

  9. Python 多进程池

    def get_html(n): time.sleep(n) print("sub_progress success") return n # 多进程池 pool = multip ...

  10. C#编辑xml文件

    string path = @"C:\Users\Administrator\Desktop\无人智能便利店\install\收银端\XMLRFI.xml"; XmlDocumen ...