1. 隐藏版本信息
1 | vim /usr/local/nginx/conf/nginx.conf |
2. 更改Nginx默认用户
1 | root@Debian:~# useradd nginx -s /sbin/nologin -M |
3. 优化worker进程个数
1 | worker_processes 4 一般为CPU核数 或 CPU核数*2 |
4. CPU核数绑定
1 | worker_processes 4; |
5. Nginx事件处理模型优化
1 | 选用epoll Linux2.6以上 |
6. 调整进程最大连接数
1 | events{ |
7. worker进程最大打开文件数
1 | worker_rlimit_nofile 65535; |
8. 开启高效文件传输模式
1 | sendfile参数用于开启文件的高效传输模式,同时将tcp_nopush和tcp_nodelay两个指定设为on,可防止网络及磁盘I/O阻塞,提升Nginx工作效 |
9. 设置连接超时
1 | http { |
10.优化服务器域名的bash表大小
1 | 设置存放域名(server names)的最大哈希表大小 |
11. 设置请求 上传大小
1 | client_header_buffer_size 32k; #设置读取客户端请求标头的缓冲区大小 |
12. 开启gzip压缩
1 | gzip on; #开启gzip压缩功能 |
13. Nginx Fastcgi相关参数
1 | http { |
1 | server { |
14. 配置Nginx expires缓存功能
1 | server { |
15.Nginx日志相关优化与安全
1 | 1)每天进行日志切割,备份 |
16.Nginx站点目录及文件URL访问控制
1 | 1)根据扩展名限制程序或者文件被访问 |
17.防止恶意解析访问企业网站
1 | 方法一 |
18.Nginx图片及目录防盗链
1 | 网站图片被盗链最直接的影响就是网络带宽占用加大了,宽带费用变高了,网络流量忽高忽低 |
19. Nginx错误页面的优雅显示
1 | server { |
20. Nginx防爬虫优化
1 | robots.txt机器人协议 |
21. 限制HTTP请求方法
1 | if ($request_method !~ ^(GET|HEAD|POST)$ ) { |
22. 防DOS攻击
1 | 使用limit_conn_zone进行控制,控制单个IP或域名的访问次数,限制连续访问 |
23. 使用CDN为网站内容加速
1 | CDN是一套全国或全球的分布式缓存集群,其实质是通过智能DNS判断用户的来源地域以及上网线路,为用户选择一个最接近用户地狱以及和用户上网线路相同的服务器节点,因为地狱近,切线路相同,所以,可以大幅度提升浏览网站的体验。 |
24. Nginx程序架构优化
1 | 解耦,一堆程序代码按照业务用途分开,然后提供服务,例如:注册登录、上传、下载、浏览列表、商品内容、订单支付等都应该是独立的程序服务, |
另一个维度来总结
一、安全方面
- 1.1. 根据实际情况,隐藏 nginx header 版本号
- 1.2. 根据实际情况,更改源码,隐藏 nginx 软件名称
- 1.3. 更改 nginx 默认用户及用户组
- 1.4. nginx 站点目录及文件 URL 访问控制(防止恶意解析)
- 1.5. 防止恶意解析访问企业网站
- 1.6. 配置 nginx 图片及目录防盗链
- 1.7. 配置 nginx 防爬虫
- 1.8. 限制 HTTP 请求方法
- 1.9. 防 DOS 攻击
二、性能方面
- 2.1. 根据 CPU 逻辑核心数,配置 nginx worker 进程个数
- 2.2. 配置 nginx worker 进程的 CPU 亲和力参数
- 2.3. 配置 ngixn worker 单个进程允许的客户端最大连接数
- 2.4. 配置 nginx worker 进程的最大打开文件数
- 2.5. 配置 nginx 事件处理模型为 epoll
三、HTTP 协议方面
- 3.1. 开启高效的文件传输模式(sendfile/tcp_nopush/tcp_nodelay)
- 3.2. 设置连接超时时间
- 3.3. 设置客户端上传文件大小
- 3.4. fastcgi 调优
四、功能方面
- 4.1. 配置 nginx gzip 压缩功能
- 4.2. 配置 nginx expires 缓存功能
- 4.3. 配置 nginx 错误页面的优雅显示
五、日志方面
- 5.1. 每天进行日志切割、备份/不记录不需要的访问日志/访问日志的权限设置
六、架构方面
- 6.1. nginx 程序架构优化(服务解耦)
- 6.2. 使用 CDN 为网站内容加速
参考链接:
https://jaminzhang.github.io/nginx/Nginx-Optimization-Summary/
http://www.lichengbing.com/archivers/279.html