Nginx服务的主装备文件

主装备文件中有六个主要模块:

1、全局块:全局装备,对全局生效。

2、events块:装备影响Nginx服务器与用户的网络连接。

3、http块:装备署理,缓存,日志定义等绝大多数功能和第三方模块的装备。

4、server块:装备虚拟主机的相关参数,一个http块中能够有多个server 块。每个 server 块就相当于一个虚拟主机。。

5、location块:用于装备匹配的url,一个server块中能够有多个location块。

6、upstream:装备后端服务器具体地址,负载均衡装备不可或缺的部分。

根据授权的拜访操控

设置只要指定用户才能够拜访该网页在location下添加路径和认证装备。

生成用户密码认证文件

文件属主有必要修改为nginx,文件权限有必要设置为400。

Nginx 虚拟主机

[root@localhost ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# yum install -y httpd-tools
已加载插件:fastestmirror, langpacks
local                                                                | 3.6 kB  00:00:00     
Loading mirror speeds from cached hostfile
匹配 httpd-tools-2.4.6-67.el7.centos.x86_64 的软件包现已装置。正在查看更新。
无须任何处理
[root@localhost ~]# htpasswd -c /usr/local/nginx/passwd.db zzz
New password: 
Re-type new password: 
Adding password for user zzz
[root@localhost ~]# chown nginx /usr/local/nginx/passwd.db
[root@localhost ~]# chmod 400 /usr/local/nginx/passwd.db

修改主装备文件和相对应的目录,添加认证装备项

对路径进行约束在对应的location块下添加认证装备项

Nginx 虚拟主机

重启服务,拜访测验

[root@localhost ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost ~]# systemctl restart nginx

拜访浏览器验证

Nginx 虚拟主机

拜访状况统计装备

查看nginx的装置模块,是否包含 HTTP_STUB_STATUS 模块

Nginx 虚拟主机

Nginx 虚拟主机

修改 nginx.conf 装备文件,指定拜访方位并添加 stub_status 装备

Nginx 虚拟主机

重启服务

Nginx 虚拟主机

[root@localhost nginx-1.22.0]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost nginx-1.22.0]# systemctl restart nginx

拜访测验

Nginx 虚拟主机

根据客户端的拜访操控

设置只要指定IP/IP段才能够拜访该网页,或指定IP/IP段不能拜访。 拜访操控规矩如下:

  • deny IP/IP段:回绝某个IP或IP段的客户端拜访。(黑名单)
  • allow IP/IP段:允许某个IP或IP段的客户端拜访。(白名单)
  • 规矩从上往下执行,匹配到则中止,不再往下匹配。

Nginx 虚拟主机

Nginx 虚拟主机

Nginx 虚拟主机

根据域名的 Nginx 虚拟主机

为虚拟主机供给域名解析

Nginx 虚拟主机

Nginx 虚拟主机

echo "192.168.88.100 www.yuji.com www.nan.com" >> /etc/hosts

为虚拟主机预备网页文档

Nginx 虚拟主机

修改Nginx的装备文件

vim /usr/local/nginx/conf/nginx.conf
.........
http {
.........
    server {
      listen  80;
      server_name  www.yuji.com;    #设置域名www.yuji.com
      charset  utf-8;
      access_log  logs/www.yuji.access.log; #设置日志名
      location / {
          root  /var/www/html/yuji; #设置 www.yuji.com 的作业目录
          index  index.html  index.php;
      }
      error_page  500 502 503 504 /50x.html;
      location = 50x.html {
         root  html;
      }
    }
​
    server {
      listen  80;
      server_name  www.nan.com;   #设置域名www.nan.com
      charset  utf-8;
      access_log  logs/www.nan.access.log; #设置日志名
      location / {
          root  /var/www/html/nan;  #设置 www.nan.com 的作业目录
          index  index.html  index.php;
      }
      error_page  500 502 503 504 /50x.html;
      location = 50x.html {
         root  html;
      }
    }
}

重启服务,拜访测验

[root@root ~]# nginx -t     //查看装备文件的装备项是否有误
[root@root ~]# systemctl restart nginx      //重启Nginx服务

Nginx 虚拟主机

根据ip地址的nginx虚拟主机

设置暂时ip,以到达一台服务器具有多个ip地址,不同ip拜访不同的服务页面

ifconfig ens33:0 192.168.72.20/24

修改装备文件,之后重启服务,拜访测验。

[root@yuji ~]# vim /usr/local/nginx/conf/nginx.conf
.........
http {
.........
    server {
      listen  192.168.72.10:80;   #设置监听地址192.168.72.10
      server_name  www.yuji.com;            
      charset  utf-8;
      access_log  logs/www.yuji.access.log;  #设置日志名
      location / {
          root  /var/www/html/yuji;   #设置 www.yuji.com 的作业目录
          index  index.html  index.php;
      }
      error_page  500 502 503 504 /50x.html;
      location = 50x.html {
         root  html;
      }
    }
​
    server {
      listen  192.168.72.20:80;    #设置监听地址192.168.72.20
      server_name  www.nan.com;            
      charset  utf-8;
      access_log  logs/www.nan.access.log;   #设置日志名
      location / {
          root  /var/www/html/nan;     #设置 www.yuji.com 的作业目录
          index  index.html  index.php;
      }
      error_page  500 502 503 504 /50x.html;
      location = 50x.html {
         root  html;
      }
    }
}
​
​
#重启服务,拜访测验
[root@yuji ~]# nginx -t      //查看装备文件的装备项是否有误
#假如服务器只要一个ip,即没有设置暂时ip,则 nginx -t 会报错,错误信息为不能绑定ip
[root@yuji ~]# systemctl restart nginx     //重启nginx服务
​
浏览器拜访 http://192.168.72.10 和 http://192.168.72.20

根据端口的nginx虚拟主机

修改IP地址后面的端口即可。

[root@yuji ~]# vim /usr/local/nginx/conf/nginx.conf
.........
http {
.........
    server {
      listen  192.168.72.10:666;  #设置监听端口为666
      server_name  www.kgc.com;            
      charset  utf-8;
      access_log  logs/www.yuji.access.log;  #设置日志名
      location / {
          root  /var/www/html/yuji;   #设置 www.kgc.com 的作业目录
          index  index.html  index.php;
      }
   ......
    }
​
    server {
      listen  192.168.72.10:888;  #设置监听端口为888
      server_name  www.nan.com;            
      charset  utf-8;
      access_log  logs/www.nant.access.log;  #设置日志名
      location / {
          root  /var/www/html/nan;  #设置 www.benet.com 的作业目录
          index  index.html  index.php;
      }
    .......
    }
}
​
[root@yuji ~]# nginx -t        //查看装备文件的装备项是否有误
[root@yuji ~]# systemctl restart nginx    //重启nginx服务
​
浏览器拜访 http://192.168.72.10:666 和 http://192.168.72.10:888