• nginx模块


    目录

    🥩写在前面

    🥩搭建域名虚拟主机

    🥩nginx索引

    🥩状态索引

    🥩访问控制

    🥗基于ip限制

    🥗基于用户限制


         🦐博客主页:大虾好吃吗的博客

         🦐专栏地址:专栏地址


    写在前面

            Nginx是一个开源的高性能HTTP和反向代理服务器,具有模块化的架构,可以通过添加模块来扩展其功能。Nginx模块是为了在Nginx服务器上增加特定功能而开发的插件。这些模块可以根据需求被编译到Nginx中,以提供各种功能和扩展。

    Nginx模块可以实现各种功能,包括但不限于:

    1. HTTP代理和反向代理:通过模块可以将请求代理到不同的后端服务器,用于负载均衡、缓存和请求转发等。

    2. SSL/TLS支持:Nginx模块可以添加对SSL/TLS的支持,以实现HTTPS协议的安全通信。

    3. 缓存和内容加速:通过缓存模块,Nginx可以对静态内容进行缓存,提高访问速度和性能。

    4. 负载均衡:Nginx的负载均衡模块可以在多个后端服务器之间分发请求,提高系统的可用性和容错性。

    5. 内容压缩:Nginx支持通过模块对输出内容进行gzip压缩,减少传输数据的大小,提高网络传输效率。

    6. 访问控制和安全性:Nginx模块可以实现基于IP地址、用户身份验证和访问控制列表等的访问控制和安全功能。

    7. 日志记录和统计:Nginx可以通过模块将访问日志记录到文件或者其他存储系统中,并生成统计报告。

    配置nginx官方yum源

    http://nginx.org/en/linux_packages.html#RHEL-CentOS

    vim /etc/yum.repos.d/nginx.repo

    [nginx-stable]

    name=nginx stable repo

    baseurl=http://nginx.org/packages/centos/7/$basearch/

    gpgcheck=0

    enabled=1

    搭建域名虚拟主机

            安装nginx并通过修改配置文件来指定网站存放目录为/data。

    1. [root@node1 ~]# yum -y install nginx
    2. [root@node1 ~]# mkdir /data
    3. [root@node1 ~]# vim /etc/nginx/conf.d/www.conf
    4. server {
    5.         listen 80;
    6.         server_name www.aaa.com;
    7.         location / {
    8.         root /data;
    9.         index index.html index.htm;
    10.         }
    11. }
    12. [root@node1 ~]# systemctl start nginx
    13. [root@node1 ~]# cd /data/
    14. [root@node1 data]# echo "192.168.1.10" > index.html

            此时可以看到网页存放在/data下,访问浏览器看到内容即可。

    nginx索引

            在/data网站下,创建download下载目录,启用索引显示。

    1. [root@node1 ~]# mkdir -p /data/download
    2. [root@node1 ~]# cp -rp /media/nginx-rpm/* /data/download/ //复制网页下载内容到download目录下,文件或安装包都可。
    3. [root@node1 ~]# vim /etc/nginx/conf.d/data.conf //编辑配置文件
    4. server {
    5.         location /download {
    6.         root /data;
    7.         autoindex on; //启用索引显示
    8.         charset utf-8,gbk; //字符编码为中文
    9.         autoindex_exact_size on; //显示文件大小
    10.         autoindex_localtime on; //显示文件创建时间
    11.         }
    12. }
    13. [root@node1 ~]# nginx -t
    14. nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    15. nginx: configuration file /etc/nginx/nginx.conf test is successful
    16. [root@node1 ~]# systemctl restart nginx
    17. [root@node1 ~]# chmod -R 707 /data/download/

    状态索引

            针对网站启用状态化追踪。(在server字段下添加status模块)

    1. [root@node1 ~]# vim /etc/nginx/conf.d/data.conf 
    2. server {
    3. //省略部分内容
    4.         location /status {
    5.         stub_status; //启用状态化追踪
    6.         access_log off; //关闭status的日志记录
    7.         }
    8. }
    9. [root@node1 ~]# systemctl restart nginx

            访问http://192.168.1.10/status,可以看到下图所示内容。

    Active connections: 2 当前活跃的连接数

    server  accepts 2  当前的总tcp连接数

    handled 2 成功的连接数

    requests 4 总HTTP请求数

            下面可以通过客户端使用压力测试工具对nginx服务器进行压测。

    1. [root@client ~]# yum -y install httpd-tools
    2. [root@client ~]# ab -c 1000 -n 1000 http://192.168.1.10/status

    在次刷新后可以看到相关数据

    访问控制

    基于ip限制

            启用access模块,仅允许对内部网段或vpn访问status。在status模块中添加两行内容,测试时可以仅允许一个主机访问或划分子网。

    1. [root@node1 ~]# vim /etc/nginx/conf.d/data.conf
    2. //省略部分内容
    3. location /status {
    4.          stub_status;
    5.          access_log off;
    6.          allow 192.168.1.100; //仅允许1.100主机访问
    7.          deny all; //拒绝所有主机访问
    8. }
    9. [root@node1 ~]# systemctl restart nginx

            测试使用1.100主机访问刷新几次显示正常,再用1.4客户端访问为Forbidden说明配置成功。

      

    基于用户限制

            启用auth模块,设置访问/status用户需要密码验证。

    1. [root@node1 ~]# yum -y install httpd-tools
    2. [root@node1 ~]# htpasswd -b -c /etc/nginx/.auth_conf lisi 123 //用户lisi密码123
    3. Adding password for user lisi
    4. [root@node1 ~]# vim /etc/nginx/conf.d/data.conf
    5. //省略部分内容
    6. location /status {
    7. stub_status;
    8. access_log off;
    9. allow 192.168.1.100;
    10. deny all;
    11. auth_basic "input your passwd:"; //用户登录描述信息
    12. auth_basic_user_file /etc/nginx/.auth_conf; //用户验证文件路径
    13. }
    14. [root@node1 ~]# systemctl restart nginx

            根据下图所示输入用户密码后才能查看status内容,上面因为启用了IP限制,所以只能使用1.100主机访问。

  • 相关阅读:
    ASP.Core3.1 WebAPI 发布到IIS
    漏洞分析|Adobe ColdFusion WDDX 序列化漏洞利用
    数据结构与算法(二) 概述
    【DaVinci Developer专题】-41-APP SWC如何读取写入NVM Block数据
    线程安全集合类
    使用Live Chat促进业务销售的惊人技巧
    15.Redis系列之使用Redisson分布式锁实现秒杀
    洛谷 P1776:宝物筛选 ← 多重背包问题 二进制优化
    并发修改异常
    CNAN知识图谱辅助推荐系统
  • 原文地址:https://blog.csdn.net/qq_61116007/article/details/127831311