企业级Nginx服务基础到架构优化详解--25条
1、隐藏nginx header版本号
2、更改源码隐藏软件名称
3、更改nginx默认用户及用户组
4、配置nginx worker进程个数
5、根据CPU核数进行nginx进程优化
6、nginx事件处理模型优化
7、调整Nginx worker单个进程允许的客户端最大连接数
8、配置Nginx worker进程最大打开文件数
9、开启高效的文件传输模式
10、设置连接超时时间
11、上传文件大小设置(动态应用)
12、fastcgi调优(配合PHP引擎动态服务)
13、配置nginx gzip压缩功能
14、配置Nginx expires缓存功能
15、Nginx日志相关优化与安全
16、Nginx站点目录及文件URL访问控制(防止恶意解析)
17、防止恶意解析访问企业网站
18、Nginx图片及目录防盗链
19、Nginx错误页面的优雅显示
20、Nginx防爬虫优化
21 、限制HTTP请求方法
22、防DOS***
23、使用CDN为网站内容加速
24、Nginx程序架构优化
25、使用普通用户启动Nginx(监牢模式)
1、隐藏nginx header版本号
查看版本号
1 2 3 4 5 6 7 8 |
[root@db02 ~]# curl -I http://www.lichengbing.cn HTTP/1.1 200 OK Server: nginx/1.6.3 Date: Tue, 16 Aug 2016 14:39:48 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive X-Powered-By: PHP/5.5.32 Link: |
编译nginx.conf配置文件,添加server_tokens off参数
1 2 3 4 5 6 7 8 |
http { ... server_tokens off; #控制http response header内的服务版本信息的显示,以及错误信息中web服务版本信息 ... } [root@db02 ~]# curl -I http://www.lichengbing.cn HTTP/1.1 200 OK Server: nginx #版本隐藏 |
2、更改源码隐藏软件名称
修改3个nginx源码文件
第一个nginx-1.6.3/src/core/nginx.h文件
1 2 3 4 5 6 |
[root@lichengbing nginx-1.6.3]# cd ~/tools/nginx-1.6.3 [root@lichengbing nginx-1.6.3]# sed -n '13,17p' src/core/nginx.h #define NGINX_VERSION "1.6.3" #改成你想要的版本号,如2.2.5 #define NGINX_VER "Nginx/" NGINX_VERSION #你想改成的软件名称,如Apache #define NGINX_VAR "NGINX" #可以改成OWS等 #define NGX_OLDPID_EXT ".oldbin" |
第二个
1 |
[root@lichengbing nginx-1.6.3]# sed -i 's#Server: nginx#Server: OWS#g' src/http/ngx_http_header_filter_module.c |
第三个ngx_http_special_response.c是否对外展示敏感信息
1 2 3 4 5 6 7 8 9 |
[root@lichengbing nginx-1.6.3]# sed -n '21,30p' src/http/ngx_http_special_response.c static u_char ngx_http_error_full_tail[] = " " |