linux Nginx模块

内容概要

  • Nginx虚拟主机基于多IP的方式
  • Nginx虚拟主机基于多端口的方式
  • Nginx虚拟主机基于多域名的方式
  • 日志配置
  • Nginx访问控制模块
  • Nginx访问认证模块
  • Nginx状态监控模块

内容详细

Nginx虚拟主机

        1、基于多IP的方式
        [root@web01 conf.d]# cat game2.conf 
        server {
            listen 80;
            server_name 192.168.15.7;
            location / {
            root /opt/Super_Marie;
                index index.html;
            }
        }
        server {
            listen 80;
            server_name 172.16.1.7;
            location / {
                root /opt/tank;
                index index.html;
            }
        }

        2、基于多端口的方式
        [root@web01 conf.d]# cat game3.conf 
        server {
            listen 80;
            server_name 192.168.15.7;
            location / {
                root /opt/Super_Marie;
                index index.html;
            }
        }
        server {
            listen 81;
            server_name 192.168.15.7;
            location / {
                root /opt/tank;
                index index.html;
            }
        }

        3、基于多域名的方式
        [root@web01 conf.d]# cat game4.conf 
        server {
            listen 80;
            server_name www.game.com;
            location / {
                root /opt/Super_Marie;
                index index.html; 
            }
        }
        server {
            listen 80;
            server_name www.game1.com;
            location / {
                root /opt/tank;
                index index.html;
            }
        }

Nginx日志

        网站状态码是500的比例
        网站的访问来源
        网站排错

        $remote_addr  : 客户端IP
        $http_x_forwarded_for  : 真实的客户端IP(在反向代理中生效)

Nginx访问控制模块

ngx_http_access_module模块

        允许或者拒绝某些IP访问
        deny	: 拒绝
        allow	:允许

        案例1:允许192.168.15.1访问,不允许其他IP访问
            allow 192.168.15.1; 
            deny all;

        案例2:允许192.168.15.0这个网段访问,不允许其他网段访问
            allow 192.168.15.0/24;
            deny all;

        案例3:只允许通过VPN来访问
           allow 172.16.1.81; 
           deny all;

ngx_http_auth_basic_module模块

        访问之前需要登录

        1、安装httpd-tools
        [root@web01 ~]# yum install httpd-tools -y

        2、生成用户名密码文件
        [root@web01 ~]# htpasswd -c /etc/nginx/auth chenyang
        New password: 
        Re-type new password: 
        Adding password for user chenyang

        3、将文件路径加入Nginx配置
        [root@web01 ~]# vim /etc/nginx/conf.d/game4.conf
            auth_basic "Welcome To Login";
            auth_basic_user_file /etc/nginx/auth;

        4、重启Nginx
        [root@web01 ~]# nginx -t
        nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
        nginx: configuration file /etc/nginx/nginx.conf test is successful
        [root@web01 ~]# systemctl restart nginx 

ngx_http_autoindex_module模块

        展示目录索引。
        autoindex on;
        autoindex_exact_size on;
        autoindex_localtime on;
        autoindex_format json;

Nginx状态监控模块

        监控Nginx运行状态。
        [root@web01 conf.d]# cat game5.conf 
        server {
            listen 80;
            server_name 192.168.15.7;
            location / {
                stub_status;
            }
        }

访问连接控制模块

        1、控制Nginx连接数

            1、安装ab测试命令
            yum install httpd-tools -y 

            2、ab 参数
                -n : 总共需要访问多少次
                -c : 每次访问多少个

        [root@web01 conf.d]# cat game5.conf 
        # limit_req_zone $remote_addr zone=one:10m rate=1r/s;
        limit_conn_zone $remote_addr zone=addr:10m;
        server {
            listen 80;
            server_name 192.168.15.7;
            # limit_req zone=one burst=5;
            limit_conn addr 1;
            location / {
                root /opt/Super_Marie;
            index index.html;
            }
        }

        2、控制Nginx访问量

            1、连接池
                limit_req_zone $remote_addr zone=one:10m rate=1r/s;
                声明连接池       变量          名称  连接池的大小  速率
            2、限制数

        案例1:要求每秒只能有一个访问。
        [root@web01 conf.d]# cat game5.conf 
        limit_req_zone $remote_addr zone=one:10m rate=1r/s;
        server {
            listen 80;
            server_name 192.168.15.7;
            limit_req zone=one burst=5;
            location / {
                root /opt/Super_Marie;
            index index.html;
            }
        }

posted @ 2022-01-04 21:27  风花雪月*  阅读(108)  评论(1编辑  收藏  举报