没有合适的资源?快使用搜索试试~ 我知道了~
首页老男孩教育Linux-Nginx优化-v6.pdf
老男孩教育Linux-Nginx优化-v6.pdf
需积分: 48 451 浏览量
更新于2023-05-28
评论
收藏 1.79MB PDF 举报
20171221L09-10老男孩Linux运维实战培训-Nginx服务生产实战应用指南02; Linux 运维课程期中架构部分 Nginx 服务企业级优化实战 2017-10 v1 版
资源详情
资源评论
资源推荐

老男孩教育 Linux-Nginx 优化-v6
Linux 运维课程期中架构部分
Linux 运维-何清
教案内容
教案说明
编写版本
优化章节
Nginx 服务企业级优化实战
2017-10 v1 版
详细配置说明
2019 年 3 月 21 日李导
详细配置及图片
2019 年 5 月 9 日 李导
编译安装 nginx 参数
增加编译安装 nginx 过程
2019 年 7 月 29 日李导

第8章. 企业级 Nginx Web 服务优化实战
8.1 web 优化一览总结表
优化类型
优化说明
优化方法
安全优化
01. 隐藏 nginx 版本信息优化
修改 nginx 配置文件实现优化
server_tokens off;
02. 修改 nginx 版本信息优化
修改 nginx 源码配置文件
nginx-xxx/src/core/nginx.h
nginx-xxx/src/http/ngx_http_header_filter_module.c
nginx-xxx/src/http/ngx_http_special_response.c
03. 修改 nginx 软件 work_processes
进程用户信息
修改 nginx 默认用户,利用配置文件参数 实现
修改 nginx 默认用户,采用编译参数 方式实现
user www www;
性能优化
04. 修改 nginx 软件 work_processes
进程数量
woker_processes 8
一般和 CPU 的核数设置一致;高并发可以和 CPU 核数 2 倍
lscpu
/proc/cpuinfo
top 按 1
1 个核心处理 1 件事情
Intel 超线程技术
1 个核心处理 2 件事情
05. 优化 nginx 服务进程均匀分配到
不同 CPU 进行处理
利用 worker_cpu_affinity 进行优化(cpu 亲和力) 让 CPU 的
每隔核心 平均
4 颗 CPU 优化配置参数为 0001 0010 0100 1000
2 颗 CPU 优化配置参数为 0101 1010
worker_cpu_affinity 0101 1010;
worker_cpu_affinity auto;
Linux 系统设置 cpu 亲和力 taskset (15k)
06. 优化 nginx 事件处理模型
利用 use epoll 参数修改事件模型为 epoll 模型
事件模型指定配置参数放置在 event 区块中
nginx epoll 处理数据异步
apache select 处理数据同步
07. 优化 nginx 单进程客户端连接数
利用 worker_connections 连接参数进行调整
用户最大并发连接数=worker 进程数*worker 连接数
08. 优化 nginx 服务进程打开文件数
利用 worker_rlimit_nofile 参数进行调整(65535)
09. 优化 nginx 服务数据高效传输模
式
利用 sendfile on 开启高效传输模式
tcp_nopush on 表示将数据积攒到一定的量再进行传输
tcp_nodelay on 表示将数据信息进行快速传输
10. 优化 nginx 服务超时信息
keepalive_timeout 优化客户端访问 nginx 服务端超时时间
http 协议特点: 连接断开后会给你保留一段时间
client_header_timeout 优化服务端读请求头超时时间
client_body_timeout 优 化两个请求主体发送 间隔超时时间
send_timeout 优化两个响应信息的间隔超时时间

安全优化
11. 优化 nginx 服务上传文件限制
client_max_body_size 设置客户端请求报文主体最大尺寸
用户上传文件 大小
性能优化
12. 优化 nginx 服务与 FastCGI 连接缓
存与缓冲信息
优化利用 FastCGI 与 PHP 连接缓冲信息
优化利用 FastCGI 与 PHP 连接缓存 信息
参考下面图:fastcgi buffer 与 cache
13. 配置 Nginx gzip 压缩实现性能优
化(下面有案例)
利用 gzip 命令进行对数据信息压缩优化
从而节省网站带宽资源 gzip 配置
14. 配置 Nginx expires 实现让客户
端缓存数据
利用 location 匹配相应要缓存的信息,利用 expires 参数结
合时间信息进行缓存。
把数据缓存到浏览器中.
expires 客户端缓存图片或静态资源设置
日志优化
15. 配置 Nginx 服务相关日志操作
进行日志文件轮询切割
1.yum 安装 nginx,自动切割 (logrotate)
2.编译安装手动切割 (logrotate)
部分日志内容不进行记录,节省系统磁盘空间
对日志文件进行授权
#logrotate 日志切割工具 + 系统定时任务
kill -USR1 `cat /var/run/nginx.pid`
16. Nginx 站点目录及文件 URL 访问
控制
在动态解析配置前面,设置限制特定目录下扩展名文件解析
限制指定目录 uri 信息访问,利用禁止策略和返回错误状态码
限制用户访问,利用白名单和黑名单方式
禁止非法域名解析访问企业网站
安全优化
17. Nginx 图片及目录防盗链解决方
案
根据 HTTP referer 实现防盗链
Nginx 图片及目录防盗链解决方案
用户从哪里跳转过来的(通过域名)
根据 cookie 防盗链
cookie 和 session 区别?
通过加密变换访问路径实现防盗链
在产品设计上解决盗链方案
感知优化
18. Nginx 错误页面的优雅显示
对错误代码实行本地页面跳转
优雅显示错误页面放到本地单独目录下,进行优雅显示
改变状态码为新的状态码,并显示指定的文件内容
错误状态码 URL 重定向
将错误状态码重定向到一个 location
安全优化
19. Nginx 站点目录文件及目录权限优
化
只将用户上传数据的目录设置为 755,用户和组使用 nginx
其余目录和文件为 755/644,用户和组使用 root
20. Nginx 防爬虫优化
利用 robots.txt 机器人协议防止爬虫(君子协议)
在网站站点目录下面,放 robots.txt 文件
利用$http_user_agent 变量阻止 爬 虫代理访问(2 种方法)
Nginx 防爬虫优化(spider|bot)
利用程序开发验证码信息,阻止进行爬虫
sem 百度竞价
#搜索引擎 : 把网址页面收入进来 方便大家搜索的时候 能
找到
#公司爬取用户数据
21. 利用 Nginx 限制请求访问
利用$request_method 限制请求方法
全面优化
22. Nginx 网站 CDN 加速优化

23. Nginx 程序架构优化
利用程序或反向代理实现架构访问分离解耦优化
安全优化
24. 使用普通用户启动 Nginx(nginx
监牢模式 keep in jail )
利用 nginx –c 参数启动 nginx 多实例,使 master 进程让普
通用户管理
普通用户无法使用 1-1024 端口
80 --转发 iptables-- >8080
25. 控制 nginx 并发连接数
利用 limit_conn_zone 参数和$binary_remote_addr 变量限
制 nginx 单 IP 地址并发连接数
利用 limit_conn_zone 参数和$server_name r 变量限制
nginx 虚拟主机总连接数
26. 控制客户端请求 Nginx 的速率
8.1.1 编译安装 nginx
把原有的 nginx 关闭 并删除
[root@web02 ~]# rpm -e nginx
warning: /etc/nginx/nginx.conf saved as /etc/nginx/nginx.conf.rpmsave
warning: file /etc/nginx/conf.d/default.conf: remove failed: No such file or directory
[root@web02 ~]# ll /etc/nginx/
total 4
drwxr-xr-x 2 root root 65 Jul 27 23:36 conf.d
-rw-r--r-- 1 root root 674 Jul 28 00:49 nginx.conf.rpmsave
[root@web02 ~]# ll /etc/nginx/conf.d/
total 12
-rw-r--r-- 1 root root 1093 Apr 23 22:34 default.conf.off
-rw-r--r-- 1 root root 364 Jul 24 10:02 kaoshi.conf
-rw-r--r-- 1 root root 141 Jul 27 23:33 www.conf
[root@web02 ~]# nginx
-bash: nginx: command not found
[root@web02 ~]# rpm -qa nginx
wget -P /app/tools http://nginx.org/download/nginx-1.16.0.tar.gz
yum install -y openssl-devel pcre-devel
#进行编译前的配置
./configure --prefix=/app/nginx-1.16.0 --user=nginx --group=nginx
--with-http_stub_status_module --with-http_ssl_module
#配置成功
Configuration summary
+ using system PCRE library
+ using system OpenSSL library
+ using system zlib library
剩余17页未读,继续阅读




















menghuanmigong
- 粉丝: 4
- 资源: 12
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- ARM Cortex-A(armV7)编程手册V4.0.pdf
- ABB机器人保养总结解析.ppt
- 【超详细图解】菜鸡如何理解双向链表的python代码实现
- 常用网络命令的使用 ipconfig ping ARP FTP Netstat Route Tftp Tracert Telnet nslookup
- 基于单片机控制的DC-DC变换电路
- RS-232接口电路的ESD保护.pdf
- linux下用time(NULL)函数和localtime()获取当前时间的方法
- Openstack用户使用手册.docx
- KUKA KR 30 hA,KR 60 hA机器人产品手册.pdf
- Java programming with JNI
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0