连接状态模块
  1. ###stub_status_module
  2. #访问默认站点的状态(注意:错误验证)
  3. http://ip/nginx_status
  4. #配置模块状态(在哪一个网站下配置,就只能看哪一个网站的状态)
  5. server {
  6. location /nginx_status {
  7. stub_status;
  8. allow ip; #允许那个ip访问
  9. deny all; #拒接那个ip
  10. }
  11. }
  12. #配置完成后重启服务器并打开模块页面
  13. nginx -t #检测配置文件书写
  14. nginx -s reload #重新加载配置文件
  15. http://ip/nginx_status
  16. #解析
  17. Active connections: 2 #活跃连接数
  18. server accepts handled requests
  19. 2001 2001 1881 #发起连接数,成功连接数,请求书
  20. Reading: 0 Writing: 1 Waiting: 1
  21. #Reading: 0 读取客户端Header的信息数 请求头
  22. #Writing: 1 返回给客户端的header的信息数 响应头
  23. #Waiting: 1 #等待的请求数,开起来keepalive

随机主页
  1. # random_index_module
  2. 1,创建主页目录
  3. mkdir /app
  4. 2,创建多个主页(在不同主页下写入不同内容)
  5. touch /app/{blue.html,green.thml,red.html,yellow.html}
  6. echo 1 > /app/blue.html
  7. ......
  8. 3,启动随机主页(案例)
  9. vim /etc/nginx/conf.d/default.conf
  10. location / {
  11. # root /usr/share/nginx/html;
  12. # index index.html index.htm;
  13. root /app;
  14. random_index on;
  15. }
  16. #重启nginx
  17. nginx -t
  18. nginx -s reload

替换模块
  1. # sub_module
  2. # 如果我们用模板生成网站的时候,因为疏漏或者别的原因造成代码不如意,但是此时因为文件数量巨大,不方便全部重新生成,那么这个时候我们就可以用此类模块来暂时实现纠错,另一方面,我们也可以利用这个实现服务器端文字过滤的效果。
  3. 启动替换1
  4. vim /etc/nginx/conf.d/default.conf
  5. server {
  6. sub_filter nginx "jiangzilong"; #把nginx替换为jiangzilong
  7. sub_filter_once off; #关闭默认只替换一行,全替换
  8. location / {
  9. root /usr/share/nginx/html;
  10. index index.html index.htm;
  11. }
  12. }
  13. #重启nginx,自行测试
  14. nginx -t
  15. nginx -s reload

文件读取,nginx内核优化,可以直接打开几个配置
  1. ngx_http_core_module
  2. sendfile #发送文件速度加快,直接发给接口,默认开启
  3. tcp_nopush #使用tpc_nopush网络传输效率提升,当包累计到一定大小后再发送
  4. tcp_nodelay #启动TCP_NODELAY,就意味着禁用了Nagle算法,允许小包的发送
  5. http{
  6. sendfile on;
  7. tcp_nopush on;
  8. tcp_nodelay on;
  9. }

文件压缩
  1. 原理介绍
  2. 启动该模块,使文件传输前进行压缩,提升传输效率。
  3. ngx_http_gzip_module
  4. #模块开启关闭
  5. syntax: gzip on | off;
  6. Default: gzip off;
  7. Context: http,server,location,if in location
  8. #设置gzip压缩级别,级别越底压缩速度越快文件压缩比越小,反之速度越慢文件压缩比越大
  9. syntax: gizp_comp_level level;
  10. Default: gizp_comp_level 1;(1-9)
  11. Context: http,server,location
  12. #用于识别http协议的版本,早期的浏览器不支持gzip压缩,用户会看到乱码,所以为了支持前期版本加了此选项。
  13. syntax: gzip_http_version 1.0 | 1.1;
  14. Default: gzip_http_version 1.1;
  15. Context: http,server,location
  16. #设置用于处理请求压缩的缓冲区数量和大小。比如32 4K表示按照内存页(one memory page)大小以4K为单位(即一个系统中内存页为4K),申请32倍的内存空间。建议此项不设置,使用默认值。
  17. Syntax: gzip_buffers number size;
  18. Default: gzip_buffers 32 4k|16 8k;
  19. Context: http, server, location
  20. #压缩类型
  21. gzip_types text/plain application/json text/javascript application/x-javascript text/css application/xml;
  22. #静态文件压缩开启
  23. gizp_static on;

页面缓存
  1. # 模块
  2. expires起到控制页面缓存的作用,合理的配置expires可以减少很多服务器的请求要配置expires
  3. ngx_http_headers_module
  4. syntax: expires [modified] time;
  5. expires epoch | max |off;
  6. Detault: expires off;
  7. context: http,server,location,if in location
  8. location / {
  9. expires 24h;
  10. root /usr/share/nginx/html;
  11. index index.html index.htm;
  12. }

防盗链
  1. 日志不正常,日志莫名其妙的产生了,观察referer字段,发现被盗链了。
  2. #针对所有内容
  3. location / {
  4. root /a.com;
  5. index index.html index.htm;
  6. valid_referers none blocked *.a.com;
  7. if($invalid_referer){
  8. return 4
  9. }
  10. }
  11. #server_name 白名单
  12. location / {
  13. root /a.com;
  14. index index.html index.htm;
  15. valid_referers none blocked *.a.com server_name ~\.goole\. ~192.168.8;
  16. if($invalid_referer){
  17. return 4
  18. }
  19. }