这篇文章给大家介绍Nginx常用模块,包括Nginx目录索引,Nginx状态监控,Nginx访问控制,Nginx访问限制。熟悉使用模块,才能给Nginx增加色彩。
目录索引模块
1. Nginx不允许列出整个目录浏览下载,可以用模块自己做个下载页。 2. ngx_http_autoindex_module模块处理以斜杠字符(’/’)结尾的请求,并生成目录列表。 3. 当ngx_http_index_module模块找不到索引文件时,通常会将请求传递给ngx_http_autoindex_module模块。
一、配置方法
1. autoindex on;如果在location下写,只对当前location生效。不能写index.html 2. 3. #autoindex常用参数 4. autoindex_exact_size off; 5. 默认为on,显示出文件的确切大小,单位是bytes。 6. 修改为off,显示出文件的大概大小,单位是KB或者MB或者GB。 7. 8. autoindex_localtime on; 9. 默认为off,显示的文件时间为GMT时间。 10. 修改为on,显示的文件时间为文件的服务器时间。 11. 12. charset utf-8,gbk; 13. 默认中文目录乱码,添加上解决乱码 14. 15. 对下载资源进行限速 16. limit_rate rate 17. limit_rate_after size
二、配置示例
1. [root@Web01 ~]# cat /etc/nginx/conf.d/module.conf 2. server { 3. listen 80; 4. server_name module.koten.com 5. charset utf-8,gbk; 6. 7. location / { 8. root /code; 9. index index.html index.htm; 10. } 11. 12. location /download { 13. alias /module; #根下的module 14. autoindex on; 15. autoindex_exact_size off; 16. autoindex_localtime on; 17. } 18. } 19. [root@Web01 code]# systemctl restart nginx 20. [root@Web01 code]# mkdir /module 21. [root@Web01 code]# touch /module/1.txt 22. [root@Web01 code]# touch /module/你好.txt 23. 24. 注意路径问题: 25. location /{ 26. root /code/; #/=====/code 用户访问www.baidu.com实际是在/code目录下查找index.html 27. }
状态监控模块
ngx_http_stub_status_module模块提供对基本状态信息的访问,默认情况下不构建此模块,应使用--with-http_stub_status_module配置参数启用它
1. [root@Web01 code]# cat /etc/nginx/conf.d/module.conf 2. server { 3. listen 80; 4. server_name module.koten.com; 5. access_log off; 6. 7. location /nginx_status { 8. stub_status; 9. } 10. } 11. [root@Web01 code]# systemctl restart nginx
1. Active connections # 当前活动的连接数 2. accepts # 已接收T的总TCP连接数量 3. handled # 已处理的TCP连接数量 4. requests # 当前http请求数 5. 6. Reading # 当前读取请求头数量 7. Writing # 当前响应的请求头数量 8. Waiting # 等待的请求数,开启了keepalive 9. 10. # 注意, 一次TCP的连接,可以发起多次http的请求, 如下参数可配置进行验证 11. keepalive_timeout 0; # 类似于关闭长连接 12. keepalive_timeout 65; # 65s没有活动则断开连接
访问控制模块
基于IP的访问控制http_access_module和基于用户登陆认证http_auth_basic_module
一、Nginx基于IP访问控制
1、访问控制配置,拒绝指定IP,其他全部允许
1. [root@Web01 code]# cat /etc/nginx/conf.d/module.conf 2. server { 3. listen 80; 4. server_name module.koten.com; 5. access_log off; 6. 7. location /nginx_status { 8. stub_status; 9. deny 10.0.0.1; 10. allow all; 11. } 12. } 13. [root@Web01 code]# systemctl restart nginx
由于本机IP是10.0.0.1所以访问失败,权限拒绝