1公众号关注“杰哥的IT之旅”, 2 3 4 5 6 7 8 选择“星标”,重磅干货,第一时间送达! 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

1 作者:马哥运维 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Nginx 是一个很强大的高性能 Web 和反向代理服务,它具有很多非常优越的特性,在连接高并发的情况下,Nginx 是 Apache 服务不错的替代品。其特点是占有内存少,并发能力强,事实上 nginx 的并发能力在同类型的网页服务器中表现较好,因此国内知名大厂例如:淘宝,京东,百度,新浪,网易,腾讯等等都在使用 Nginx 网站。
在我们的日常工作学习中,我们会该如何去优化自己的 Nginx 服务器?遇到以下问题我们该如何处理呢?
一、自定义返回客户端的404错误页面
1)优化前,客户端使用浏览器访问不存在的页面,会提示404文件未找到
# firefox http://192.168.4.5/xxxxx //访问一个不存在的页面
2)修改 Nginx 配置文件,自定义报错页面
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
3)优化后,客户端使用浏览器访问不存在的页面,会提示自己定义的 40x.html 页面
# firefox http://192.168.4.5/xxxxx //访问一个不存在的页面
常见的 http 状态码可用参考表所示

二、查看服务器状态信息
1)编译安装时使用 --with-http_stub_status_module 开启状态页面模块
# tar -zxvf nginx-1.12.2.tar.gz
2)启用 Nginx 服务并查看监听端口状态
ss 命令可以查看系统中启动的端口信息,该命令常用选项如下:
-
-a 显示所有端口的信息
-
-n 以数字格式显示端口号
-
-t 显示TCP连接的端口
-
-u 显示UDP连接的端口
-
-l 显示服务正在监听的端口信息,如httpd启动后,会一直监听80端口
-
-p 显示监听端口的服务名称是什么(也就是程序名称)
注意:在 RHEL7 系统中可以使用ss命令替代 netstat 命令,功能一样,选项一样。
# /usr/local/nginx/sbin/nginx
3)修改 Nginx 配置文件,定义状态页面
1# cat /usr/local/nginx/conf/nginx.conf 2 34)优化后,查看状态页面信息 4 5 6 7 8 9 10 11 12 13# curl http://192.168.4.5/status
Active connections:当前活动的连接数量。
Accepts:已经接受客户端的连接总数量。
Handled:已经处理客户端的连接总数量。
(一般与accepts一致,除非服务器限制了连接数量)。
Requests:客户端发送的请求数量。
Reading:当前服务器正在读取客户端请求头的数量。
Writing:当前服务器正在写响应信息的数量。
Waiting:当前多少客户端在等待服务器的响应。
三、优化 Nginx 并发量
1)优化前使用ab高并发测试
# ab -n 2000 -c 2000 http://192.168.4.5/
2)修改 Nginx 配置文件,增加并发量
# vim /usr/local/nginx/conf/nginx.conf
3)优化 Linux 内核参数(最大文件数量)
# ulimit -a //查看所有属性值
4)优化后测试服务器并发量(因为客户端没调内核参数,所以在proxy测试)
# ab -n 2000 -c 2000 http://192.168.4.5/
四、优化 Nginx 数据包头缓存
1)优化前,使用脚本测试长头部请求是否能获得响应
1[root@proxy ~]# cat lnmp_soft/buffer.sh 2 32)修改 Nginx 配置文件,增加数据包头部缓存大小 4 5 6 7 8 9 10 11 12 13# vim /usr/local/nginx/conf/nginx.conf
3)优化后,使用脚本测试长头部请求是否能获得响应
1.[root@proxy ~]# cat buffer.sh
五、浏览器本地缓存静态数据
1)使用Firefox浏览器查看缓存
以Firefox浏览器为例,在Firefox地址栏内输入about:cache将显示Firefox浏览器的缓存信息,如图所示,点击List Cache Entries可以查看详细信息。

2)清空firefox本地缓存数据,如图所示。

3)改Nginx配置文件,定义对静态页面的缓存时间
# vim /usr/local/nginx/conf/nginx.conf
4)优化后,使用Firefox浏览器访问图片,再次查看缓存信息
# firefox http://192.168.4.5/day.jpg
在 firefox 地址栏内输入 about:cache,查看本地缓存数据,查看是否有图片以及过期时间是否正确。
1往期资源回顾 需要可自取 2 3 4 5 6 7 8 9 DevOps 实践手册、linux系统诊断、大数据工程师必读手册、OSS运维基础实战手册、程序员面试宝典、深入浅出 Kubernetes 实战手册、RDS数据库入门一本通、CDN排坑指南 10 11 12 13 一篇文章带你解读从初级运维工程师到资深运维专家的学习路线 14 15 16 17 40+ 张最全 Linux / C / C++ 思维导图! 18 19 20 21 学习 Python 的 14 张思维导图! 22 23 24 25 7 张思维导图带你掌握 “Python学习路线” 26 27 28 29 我花了一周的时间,就为了整理这份 97 页的 Python 自动化系列文档。【附获取方式】 30 31 32 33 我精心整理的 136 页 Excel 数据透视表 PDF 文件!【附获取方式】 34 35 36 37 38 39 40 41 42 43 44 45 46 47 推荐阅读 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 这些 Nginx 常见异常,帮你快速定位故障! 76 看完这篇还不了解 Nginx,那我就哭了! 77 Nginx 面试中最常见的 18 道题! 78 Nginx 在运维领域中的应用,看这一篇就够了 79 全面了解Nginx到底能做什么? 80 从 Nginx 优秀的核心架构设计,揭秘其为何能支持高并发? 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 点个[在看],是对杰哥最大的支持! 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193
本文分享自微信公众号 - 杰哥的IT之旅(Jake_Internet)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。