Nginx常用基础模块
发布日期:2021-05-08 03:57:38 浏览次数:14 分类:精选文章

本文共 2045 字,大约阅读时间需要 6 分钟。

Nginx配置指南

目录索引

Nginx支持通过autoindex模块生成目录列表,适用于需要浏览服务器文件夹结构的场景。以下是常用配置方法:

配置示例

server {
listen 80;
server_name yourdomain.com;
charset utf-8,gbk; # 解决乱码问题
location / {
root /path/to/your/files;
index index.html index.html;
autoindex on; # 启用目录索引
autoindex_exact_size off; # 隐藏文件大小
}

注意事项

  • autoindex on 启用目录索引模块,默认情况下会生成/index.html文件。
  • autoindex_exact_size off 可选项,用于隐藏文件大小信息。
  • 建议在需要公开文件夹结构时使用,记得移除index.html文件以避免自动响应。
  • 状态监控

    Nginx 提供stub_status模块用于监控服务器状态,需先启用模块并配置:

    启用模块

    --with-http_stub_status_module

    配置示例

    server {
    listen 80;
    server_name yourdomain.com;
    charset utf-8,gbk;
    location / {
    root /path/to/your/files;
    index index.html;
    }
    location /nginx_status {
    stub_status;
    allow 127.0.0.1; # 只允许本地访问
    deny all; # 禁止其他访问
    }
    }

    测试

    访问http://yourdomain.com/nginx_status可查看状态页面,内容包括:

    • 当前活动连接数
    • 已处理请求数
    • 等待处理请求数

    默认状态页面基于模块自动生成,无需手动修改。

    访问控制

    基于IP控制

    使用access_module限制访问:

    location /nginx_status {
    stub_status;
    deny 192.168.15.7/24; # 拒绝特定IP访问
    allow all; # 允许其他IP访问
    }

    基于用户密码控制

    使用auth_basic模块:

    auth_basic "please login"; # 验证信息
    auth_basic_user_file /path/to/htpasswd; # 密码文件路径

    访问限制

    连接限制

    限制单IP同时连接数:

    limit_conn_zone $binary_remote_addr:10m;
    server {
    limit_conn addr 1; # 同时连接数限制
    }

    请求速率限制

    限制请求速率:

    limit_req_zone $binary_remote_addr:10m rate=1r/s;
    server {
    limit_req zone=req_zone burst=5 nodelay; # 每秒请求数限制
    limit_req_status 412; # 超过限制返回412状态码
    error_page 412 /error.html;
    }

    错误页面显示

    创建error.html文件,内容可自定义,如:

    你能慢一点吗,谁顶得住!

    Location匹配

    优先级规则

    匹配符优先级:

  • ^~:精确匹配
  • ~:区分大小写的正则
  • ~*:不区分大小写的正则
  • !~:不匹配的正则
  • !~*:不匹配的不区分大小写的正则
  • /:通用匹配
  • 示例

    location / {
    default_type text/html;
    return 200 "location /";
    }
    location = / {
    default_type text/html;
    return 200 "location =/";
    }
    location ~ / {
    default_type text/html;
    return 200 "location ~/";
    }

    应用场景

  • 匹配特定文件扩展名:
    location ~ \.php$ {
    root /path/to/php_files;
    }
  • 匹配多种文件类型:
    location ~* \.(jpg|gif|png|js|css)$ {
    root /path/to/static_files;
    }
  • 通过合理配置location块,Nginx能更精确地控制请求路径,提升服务器性能。

    上一篇:ab压力测试工具
    下一篇:端口列表_端口占用问题解决kill_ps_net

    发表评论

    最新留言

    路过按个爪印,很不错,赞一个!
    [***.219.124.196]2025年04月12日 00时05分49秒