Nginx 是一个很强大的高性能Web反向代理服务器及电子邮件(IMAP/POP3)代理服务器,由俄罗斯程序员设计师Igor Syaoev所开发,官方网站:http://nginx.org/  特点是占有内存少、并发能力强。

     Nginx配置文件及目录简介:

          - /usr/local/nginx/                                                           安装目录

          - /usr/local/nginx/conf/nginx.conf                                   主配置文件

          - /var/www/html                                                              网页目录

          - /usr/local/nginx/sbin/nginx                                            nginx启动脚本

      Nginx软件安装:

          yum -y install gcc pcre-devel zlib-devel openssl-devel  安装依赖包

          yum -y groupinstall  "开发工具"

          tar -zxvf nginx-1.8.0.tar.gz                                                解压tar包

          cd nginx-1.8.0                                                                  直接cd到nginx-1.8.0

          ./configure \                                                                    直接执行./configure 参数

            > --prefix=/usr/local/nginx \                                          指定安装路径

            > --user=nginx \                                                            指定用户

            > --group=nginx \                                                         指定组 

            > --with-http_stub_status_module \                               开启状态、统计功能

            > --with-htpp_ssl_module                                              开启SSL加密功能   

          useradd nginx                                                                  权限

          make && make install                                                      编译并安装

          service httpd stop                                                             关闭httpd服务避免端口冲突

          /usr/local/nginx/sbin/nginx                                               nginx服务启用

          /usr/local/nginx/sbin/nginx -s stop                                   nginx服务关闭

         killall -9 nginx                                                                    杀进程

         kill  -信号   pid号

        常见信号:

        TERM, INT 快速关闭 

        QUIT 从容关闭,关闭主进程及子进程    

        HUP  重载配置文件

        USR1 重新打开日志文件 

        USR2 平滑升级可执行程序

        kill -HUP `cat /usr/local/nginx/logs/nginx.pid`          重启服务

平滑升级Nginx服务(不停止服务的情况下):

         ps -C nginx                                                                      查看nginx进程(如有进程“杀”)

         tar -zxvf nginx-1.9.2.tar.gz                                                解压tar包(1.9.2升级包)

         cd nginx1.9.2                              直接cd到根下的nginx-1.8.0(具体要看你解压时的目录为准)

          ./configure \                                                                    直接执行./configure 参数

            > --prefix=/usr/local/nginx \                                          指定安装路径

            > --user=nginx \                                                            指定用户

            > --group=nginx \                                                         指定组

          make                                                                               编译

          cd /usr/local/nginx/sbin                                                   直接cd到nginx启动脚本目录下               mv nginx  nginxold                                                          改名旧脚本(备份)

          cd / nginx-1.9.2/objs                cd到根目录nginx-1.9.2/objs(具体要看你解压时的目录为准)

          cp nginx /usr/localnginx/sbin                       在/objs目录下cp nginx到/usr/localnginx/sbin

          cd / nginx-1.9.2                                                                直接cd到根下的nginx-1.8.0

          make upgrade                                                                  升级软件命令

          /usr/localnginx/sbin/nginx -v                                            查看nginx服务版本

Nginx用户认证与访问控制配置如下:

          实现以下服务:

                 访问web页面时需要进行用户认证,用户名:route(可以任意用户名),密码是:123456,在/uer/local/nginx/html/下创建二级目录/data(可以任意名称),并生成index.htnl文档。在/data目录下的index.html页面只能192.168.1.11可以访问(或者任意网段)。拓扑如下:

wKioL1cSWKXQXJ1kAAAoetkNaR4986.png

在Nginx服务1.10配置下:

        vim /usr/local/nginx/conf/nginx.conf

            server {

 36            listen       80;

 37            server_name  localhost;                                                指定本机用户名

 38            auth_basic "Input Password";                                        添加用户认证提示符

 39            auth_basic_user_file pass.txt;                                         添加用户认证密码文件

 40 

 41            #charset koi8-r;

 42 

 43            #access_log  logs/host.access.log  main;

 44 

 45         location / {

 46             root   html;                                                                  网页目录 

 47             index  index.html index.htm;                                        网页目录下index.html文档

 48         }

 49         location /route {                                                               添加用户名   

 50                  allow 192.168.4.11;                                                  访问控制仅限4.11可以访问

 51                  deny  all;                                                                 拒绝所有

 52             index  index.html index.htm;

 53         }

         mkdir /usr/local/nginx/html/data                                          创建二级网页目录

         echo "data" > /usr/local/nginx/html/data/index.html        在二级目录下写入index.html文档

  然后使用htpasswd命令创建用户文件,首先查看一下系统中已安装httpd-tools

         htpasswd -c /usr/local/nginx/conf/pass.txt route                    生成用户

         New password:                                                                      输入用户密码

         Re-type new password:                                                          再次确认用户密码

         Adding password for user route                                             此用户添加成功

         /usr/local/nginx/sbin/nginx  -s  stop                                      关闭Nginx服务                                /usr/local/nginx/sbin/nginx                                                    启用Nginx服务

在Linux客户端1.11配置如下:

         Firefox http://192.168.1.10                                                      提示输入用户名与密码

         Firefox http://192.168.1.10/route                                             提示输入用户名与密码

可以登录非192.168.1.11的任意客户端进行访问测试。

Nginx虚拟主机,分三种模式:基于域名、端口和基于IP地址的虚拟主机

    基于域名虚拟主机针对公网用户,基于端口和IP地址虚拟主机针对网站后台管理页面

Nginx基于域名1.10配置配置如下

    mkdir /usr/local/nginx/html/data1                                        创建二级网页目录(任意目录都可以)

    mkdir /usr/local/nginx/html/data2                                        创建二级网页目录(任意目录都可以)

    echo  data1 > /usr/local/nginx/html/data1/inedx.html      分别在二级目录下写入index.html文档

    echo  data2 > /usr/local/nginx/html/data2/inedx.html      分别在二级目录下写入index.html文档

    /usr/local/nginx/sbin/nginx -s  stop                                       关闭Nginx服务

    cd  /usr/local/nginx/conf                                                       cd到Nginx服务配置文件下

    rm -rep -v "^$| rf nginx.conf                                                  删除旧文件

    egrep -v "^$|#"  nginx.conf.default >  nginx.conf                   在拷贝一份Nginx配置文件

    vim  nginx.conf

  1        worker_processes  1;

  2             events {

  3             worker_connections  1024;

  4    }

  5         http {

  6             include       mime.types;

  7             default_type  application/octet-stream;

  8             sendfile        on;

  9             keepalive_timeout  65;

 10        server {

 11            listen       80;                                                                对应的端口

 12            server_name  www.data.com;                                       对应的域名 

 13        location / {

 14            root   data1;                                                                 对应的二级目录

 15            index  index.html;                                                         二级目录下的index.html文档

 16         }

 17        server {

 18            listen       80;                                                                 对应的端口

 19            server_name  bbs.data.com;                                          对应的域名 

 20         location / {

 21             root   data2;                                                                 对应的二级目录

 22             index  index.html;                                                         二级目录下的index.html文档

 23         } 

 24             error_page   500 502 503 504  /50x.html;

 25             location = /50x.html {

 26             root   html;

 27         }

 28     }

 29 }

    /usr/local/nginx/sbin/nginx                                                         启用Nginx服务

在Linux客户端1.11配置如下:

     vim   /etc/hosts                                                                          

          192.168.1.10   www.data.com bbs.data.com                           域名解析

      ping  www.data.com bbs.data.com                                            分别测试ping

      curl http://www.data.com                                                          测试

      curl http://bbs.data.com                                                             测试