本文章的个人博客地址:
http://www.z-dig.com/nginx-optimization-25.html
本文内容来自老男孩教育运维班课程,由本人整理
http://oldboy.blog.51cto.com/
1.1 隐藏nginx header里版本号信息
1.2 更改源码隐藏软件名称及版本号
1.3 更改掉nginx默认用户及用户组(worker进程服务用户优化)
1.4 配置nginx worker进程个数
1.5 根据cpu核数进行nginx进程优化
1.6 nginx事件处理模型优化
1.7 调整nginx worker单个进程允许的客户端最大连接数
1.8 配置nginx worker进程最大打开文件数
1.9 开启高效的文件传输模式
1.10 设置连接超时时间
1.11 上传文件大小限制(动态应用)
1.12 fastcgi调优(配合PHP引擎动态服务)
1.13 配置nginx gzip压缩功能(重要)
1.14 配置nginx expires缓存功能(重要)
1.15 nginx日志相关优化与安全
1.16 nginx站点目录及文件URL访问控制(重要:防止恶意解析)
1.17 配置nginx图片及目录防盗链
1.18 nginx错误页面优雅显示
1.19 nginx防爬虫优化
1.20 使用tmpfs文件系统给/tmp
1.21 防DOS***
1.22 防DDOS策略
1.23 限制客户端请求的HTTP方法
1.24 为web服务增加用户身份验证(适合内部机密网址)
1.25 让Nginx运行于(A Chroot Jail (Containers))监牢模式
1.26 其他优化
1.1 隐藏nginx header里版本号信息
1、查看版本号
[root@c66-kslx ~]# curl -I 127.0.0.1 HTTP/1.1 200 OK Server: nginx/1.6.2 Date: Sat, 14 Mar 2015 08:15:29 GMT Content-Type: text/html Content-Length: 25 Last-Modified: Fri, 13 Mar 2015 10:52:27 GMT Connection: keep-alive ETag: "5502c16b-19" Accept-Ranges: bytes
2、隐藏版本号
在nginx配置文件的http标签内加入“server_tokens off; ”参数,也可以放大server标签和location标签中,如下:
http { .......... server_tokens off; .......... } /application/nginx/sbin/nginx -t /application/nginx/sbin/nginx -s reload
再此查看如下,浏览器访问错误页面也就没有版本号了
[root@c66-kslx conf]# curl -I 127.0.0.1 HTTP/1.1 200 OK Server: nginx
1.2 更改源码隐藏软件名称及版本号
在nginx编译安装之前,先更改,之后再编译安装
1、更改版本号,修改nginx-1.3.4/src/core/nginx.h
[root@oldboy /]# cd /home/oldboy/tools/ [root@oldboy tools]# cd nginx-1.6.2/src/core [root@oldboy core]# sed -n '13,17p'nginx.h #define NGINX_VERSION "1.6.2" 修改为想要的版本号如2.4.3 #define NGINX_VER "nginx/" NGINX_VERSION 将nginx修改为想要修改的软件名称,如Apache。
修改后查看header结果:
[root@S1-SERVER nginx-1.3.4]# curl -I 10.0.0.182 HTTP/1.1 200 OK Server:Apache/2.4.3
2、修改nginx-1.6.12/src/http/ngx_http_header_filter_module.c
需要修改的字符串
[root@M-SERVER http]# grep 'Server:nginx' ngx_http_header_filter_module.c static char ngx_http_server_string[] ="Server:nginx" CRLF; [root@M-SERVER http]# sed -i 's#Server:nginx#Server:Apache#g' ngx_http_header_filter_module.c
修改后的字符串
[root@M-SERVER http]# grep 'Server:Apache' ngx_http_header_filter_module.c static char ngx_http_server_string[] ="Server:Apache" CRLF;
3)修改ngx_http_special_response.c
#vi nginx-1.3.4/src/http/ngx_http_special_response.c static u_char ngx_http_error_full_tail[]= ""NGINX_VER" "CRLF "