Nginx优化——连接超时,进程管理,压缩,防盗链(二)
发表于:2024-11-29 作者:千家信息网编辑
千家信息网最后更新 2024年11月29日,Nginx实现连接超时在企业网站中,为了避免同一个客户长时间占用连接,造成资源浪费,可设置相应的连接超时参数,实现控制连接访问时间使用fiddler工具查看connection参数超时参数Keepal
千家信息网最后更新 2024年11月29日Nginx优化——连接超时,进程管理,压缩,防盗链(二)
Nginx实现连接超时
- 在企业网站中,为了避免同一个客户长时间占用连接,造成资源浪费,可设置相应的连接超时参数,实现控制连接访问时间
- 使用fiddler工具查看connection参数
超时参数
Keepalive_timeout
设置连接保持超时时间,一般可只设置该参数,默认为65秒,可根据网站的情况设置,或者关闭,可在http段,server段,或者location段设置
Client_header_timeout
指定等待客户端发送请求头的超时时间
Client_body_timeout
设置请求体读超时时间
修改配置文件
[root@localhost ~]# 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; ##核心数为2worker_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_http_version 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_http_version 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-httpd-php application/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 /mntapr-1.6.2.tar.gz Discuz_X2.5_SC_UTF8.zip LAMP-php5.6.txtapr-util-1.6.0.tar.gz error.png mysql-5.6.26.tar.gzawstats-7.6.tar.gz httpd-2.4.29.tar.bz2 nginx-1.12.0.tar.gzcronolog-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
##盗链的图片
2,搭建web网站,指定DNS服务器地址(192.168.13.142)
3,安装dns服务器
[root@localhost html]# yum install bind -y ##安装dns[root@localhost html]# vim /etc/named.conf options { listen-on port 53 { any; }; ##监听所有 listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; recursing-file "/var/named/data/named.recursing"; secroots-file "/var/named/data/named.secroots"; allow-query { any; }; ##允许所有[root@localhost html]# vim /etc/named.rfc1912.zones ##配置区域配置文件zone "kgc.com" IN { type master; file "kgc.com.zone"; ##kgc区域数据配置文件 allow-update { none; }; };[root@localhost html]# cd /var/named/ [root@localhost named]# cp -p named.localhost kgc.com.zone ##复制模板[root@localhost named]# vim kgc.com.zone ##修改区域配置文件$TTL 1D@ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1www IN A 192.168.13.142 ##本机地址[root@localhost named]# systemctl start named ##开启dns服务[root@localhost named]# systemctl stop firewalld.service ##关闭防火墙[root@localhost named]# setenforce 0
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 ^/ http://www.kgc.com/error.png; ##不是则发送错误图片 } }[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个进程存在
谢谢阅读!
进程
服务
配置
参数
文件
服务器
功能
网站
网页
处理
防盗
图片
方式
时间
情况
内存
内容
数量
模块
缓存
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
福建网络技术咨询联系人
sql数据库自动启动怎么设置
找一下网络安全手抄报
mac系统安装数据库
网易服务器能不能用光影
2021海南大学网络安全
大学生网络安全教育通讯稿
洋县公安局网络安全大队
浙江网络安全检测单位
网络安全与防火墙参考文献
小喵服务器
浚县天气预报软件开发
软件开发五个主要步骤
什么是软件开发厂家现货
cmd服务器管理员
成都云客互联网科技有限公司
网络安全中什么是受限算法
深圳市计算信息网络安全员
博门艺嘉网络技术有限公司
软件开发实训机构
中国山西网络安全等级保护网
贯彻《网络安全法》
中控系统服务器
成都软件开发给多少钱
数据库省赛一等奖奖品
后端返回数据类型与数据库不一致
煤矿工业网络安全
连接dota2协调服务器
河北常见软件开发费用
云服务器D盘