Nginx优化

网友投稿 292 2022-10-12

Nginx优化

Nginx实现连接超时

在企业网站中,为了避免同一个客户长时间占用连接,造成资源浪费,可设置相应的连接超时参数,实现控制连接访问时间 使用fiddler工具查看connection参数

超时参数

Keepalive_timeout设置连接保持超时时间,一般可只设置该参数,默认为65秒,可根据网站的情况设置,或者关闭,可在~]# cd /usr/local/nginx/conf/ [root@localhost conf]# vim nginx.conf ##修改配置文件 #keepalive_timeout 0; keepalive_timeout 65 180; ##服务端和客户端的超时时间 client_header_timeout 80; ##请求头部超时时间 client_body_timeout 80; ##请求体超时时间 [root@localhost conf]# service nginx stop ##关闭开启服务 [root@localhost conf]# service nginx start

Nginx运行进程数

在高并发场景,需要启动更多的Nginx进程以保证快速响应,以处理用户的请求,避免造成阻塞 可以使用ps aux命令查看Nginx运行进程的个数 更改进程数的配置方法修改配置文件,修改进程配置参数 修改配置文件的worker_process参数一般设为CPU的个数或者核数在高并发情况下可设置为CPU个数或者核数的2倍 运行进程数多一些,响应访问请求时,Nginx就不会临时启动新的进程提供服务,减少了系统的开销,提升了服务速度 使用ps aux查看运行进程数的变化情况 默认情况,Nginx的多个进程可能跑在一个CPU上,可以分配不同的进程给不同的CPU处理,充分利用硬件多核多CPU 在一台4核物理服务器,可进行以下配置,将进程进行分配worker_cpu_affinity 0001 0010 0100 1000

1,查看当前的工作进程信息

[root@localhost ~]# ps aux | grep nginx ##查看进程信息 root 7231 0.0 0.0 20548 620 ? Ss 01:57 0:00 nginx: master process ##主进程 nginx 7232 0.0 0.0 23076 1400 ? S 01:57 0:00 nginx: worker process ##1个工作进程 root 7372 0.0 0.0 112728 972 pts/2 S+ 02:07 0:00 grep --color=auto nginx

2,为虚拟机添加CPU

3,修改配置文件

[root@localhost ~]# cd /proc/ [root@localhost proc]# cat cpuinfo ##查看cpu核心数 processor : 0 ##第一个 ... processor : 1 ##第二个 ... [root@localhost proc]# cd /usr/local/nginx/conf/ [root@localhost conf]# vim nginx.conf ##修改配置文件 #user nobody; worker_processes 2; ##核心数为2 worker_cpu_affinity 01 10; ##进程分配

4,查看工作进程

[root@localhost conf]# ps aux | grep nginx ##查看Nginx进程信息 nginx 2329 0.0 0.0 23076 1392 ? S 20:12 0:00 nginx: worker process ##此时是两个工作进程 nginx 2330 0.0 0.0 23076 1384 ? S 20:12 0:00 nginx: worker process

Nginx实现网页压缩功能

Nginx的ngx_http_gzip_module压缩模块提供对文件内容压缩的功能 允许Nginx服务器将输出内容在发送客户端之前进行压缩,以节约网站带宽,提升用户的访问体验,默认已经安装 可在配置文件中加入相应的压缩功能参数对压缩性能进行优化

压缩功能参数

gzip on:开启gzip压缩输出 gzip_min_length 1k:用于设置允许压缩的页面最小字节数 gzip_buffers 4 16k:表示申请4个单元为16k的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果 zip_1.0:用于设置识别http协议版本,默认是1.1,目前大部分浏览器已经支持gzip解压,但处理最慢,也比较消耗服务器CPU资源 gzip_comp_level 2:用来指定gzip压缩比,1压缩比最小,处理速度最快;9压缩比最大,传输速度快,但处理速度最慢,使用默认即可 gzip_types text/plain:压缩类型,是就对那些网页文档启用压缩功能 gzip_vary on:选项可以让前端的缓存服务器缓存经过gzip压缩的页面

实验环境

Linux服务器(192.168.13.142) 一台win10测试机

1,修改配置文件添加压缩模块内容

[root@localhost ~]# cd /usr/local/nginx/conf/ [root@localhost conf]# vim nginx.conf ##修改配置文件 #gzip on; ##开启gzip压缩功能(暂时不开启) gzip_min_length 1k; ##压缩阀值 gzip_buffers 4 16k; ##buffer 大小为4个16k缓冲区大小 gzip_1.1; ##压缩版本 gzip_comp_level 6; ##压缩比率,5,6适中 gzip_types text/plain application/x-javascript text/css image/jpg image/jpeg image/png image/gif application/xml text/javascript application/x-app lication/javascript application/json; ##支持的类型格式 gzip_disable "MSIE [1-6]\."; ##禁用gzip条件,支持正则,表示ie6以下不启用gzip gzip_vary on; ##让前端的缓存服务器缓存经过gzip压缩的页面

2,在网页站点中插入图片

[root@localhost html]# mount.cifs //192.168.100.3/LAMP-C7 /mnt ##挂载共享 Password for root@//192.168.100.3/LAMP-C7: [root@localhost html]# ls /mnt apr-1.6.2.tar.gz Discuz_X2.5_SC_UTF8.zip LAMP-php5.6.txt apr-util-1.6.0.tar.gz error.png mysql-5.6.26.tar.gz awstats-7.6.tar.gz nginx-1.12.0.tar.gz cronolog-1.6.2-14.el7.x86_64.rpm kali.jpg php-5.6.11.tar.bz2 [root@localhost html]# cp /mnt/11.png ./ ##将图片复制到站点中 [root@localhost html]# vim index.html ##将图片放到网页中 Welcome to nginx! ##添加图片 [root@localhost html]# service nginx stop ##关闭开启Nginx服务 [root@localhost html]# service nginx start [root@localhost html]# systemctl stop firewalld.service ##关闭防火墙 [root@localhost html]# setenforce 0

3,查看网页信息,并用fiddler抓包

4,开启gzip压缩功能

[root@localhost html]# vim /usr/local/nginx/conf/nginx.conf ##修改配置文件 gzip on; ##开启压缩功能 [root@localhost html]# service nginx stop ##关闭和开启Nginx服务 [root@localhost html]# service nginx start

5,查看网页,并用fiddler抓包查看压缩情况

Nginx实现防盗链

在企业网站服务中,一般都要配置防盗链功能,以避免网站内容被非法盗用,以造成经济损失 Nginx防盗链功能也非常强大。默认情况下,只需要进行简单的配置,即可实现防盗链处理

实验环境

一台Linux服务器(192.168.13.142) 一台win7盗链网站(192.168.13.135) 一台win10测试机

一,在win7盗链网站中创建一个盗链的网页

1,用文本创建一个网页内容,修改后缀为index.html

云计算 this is test web

4,用测试机访问盗链网站,原网站

5,修改配置文件,开启防盗链功能

[root@localhost named]# vim /usr/local/nginx/conf/nginx.conf ##在server段插入防盗链配置 error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location ~*\.(jpg|gif|swf)$ { ##支持格式 valid_referers none blocked *.kgc.com kgc.com; ##允许kgc.com为后缀访问 if ( $invalid_referer ) { rewrite ^/ ##不是则发送错误图片 } } [root@localhost named]# cp /mnt/error.png /usr/local/nginx/html/ ##将防盗链图片放到站点中 [root@localhost named]# service nginx stop ##关闭开启Nginx服务 [root@localhost named]# service nginx start

6,利用测试机访问盗链网站

对FPM模块进行参数优化

Nginx的PHP解析功能实现如果是交由FPM处理的,为了提高PHP的出来速度,可对FPM模块进行参数的调整 FPM模块参数调整,要根据服务器的内存与服务器负载进行调整 启动fpm进程方式static:将产生固定数量的fpm进程dynamic:将以动态的方式产生fpm进程通过pm参数指定

FPM优化参数

static的方式的参数pm.max_children:指定启动的进程数量 Dynamic方式的参数pm.max_children:指定启动的进程数量最大的数量pm.start_servers:动态方式下初始的fpm进程数量pm.min_spare_servers:动态方式下最小的fpm空闭进程数pm.max_spare_servers:动态方式下最大的fpm空闭进程数

FPM优化参数调整

优化原因:服务器为云服务器,运行了个人论坛,内存为1.5G,fpm进程数为20,内存消耗近1G,处理比较慢 优化参数调整:FPM启动时有5个进程,最小空闲2个进程,最大空闲8个进程,最多可以有20个进程存在

谢谢阅读!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Nginx隐藏版本号
下一篇:Java实战之课程在线学习系统的实现
相关文章

 发表评论

暂时没有评论,来抢沙发吧~