Nginx服务优化与防盗链

本文详细介绍了Nginx服务的优化策略,包括隐藏版本号以增强安全性,设置网页缓存时间提升访问速度,实现日志切割以便监控,配置连接超时参数控制访问时间,调整Nginx运行进程数以适应高并发,启用网页压缩功能节省带宽,以及实现防盗链保护网站内容。同时,还涉及了FPM模块的参数优化,以提升PHP处理速度。
摘要由CSDN通过智能技术生成

本章结构

Nginx服务优化
Nginx深入优化

配置Nginx隐藏版本号

■隐藏Nginx版本号,避免安全漏洞泄漏
■Nginx隐藏版本号的方法
●修改配置文件法
●修改源码

修改配置文件法2-1

■将Nginx配置文件中server_ tokens选项的值设置为off

[root@www conf]# vi nginx.conf
......
server_ tokens off;    ###关闭版本号
[root@www conf]# nginx -t

重启服务,访问网站使用curl -|命令检测

[root@www conf]# systemctl restart nginx
[root@www conf]# curl -| http://192. 168.0.102/
HTTP/1.1 200 OK
Server: nginx

修改配置文件法2-2

■使用PHP处理动态网页
●若PHP配置文件中配置了 fastcgi_ param
SERVER
SOFTWARE选项
●则编辑php-fpm配置文件,将fastcgi_ param
SERVER
SOFTWARE 对应的值修改为astcgi param
SERVER
SOFTWARE nginx ;

修改配置文件法指定

■新建用户账号,如nginx
■修改主配置文件user选项,指定用户账号与组账号
■重启nginx服务,使配置生效
■使用ps aux命令查看nginx的进程信息,验证运行用户
账号改变效果

[root@www conf]# vi nginx.conf
user nginx nginx;
[root@www conf]# systemctl restart nginx
[root@www conf]# ps aux |grep nginx
root
130034 0.0 0.0 20220 620 ?
Ss 19:41 0:00 nginx:
master process /usr/local/sbin/nginx
ngirx
130035 0.0 0.0 20664 1512 ?
S 19:41 0:00 nginx:
worker process

标题配置Nginx网页缓存时间2-1

■当Nginx将网页数据返回给客户端后,可设置缓存的时
间,以方便在日后进行相同内容的请求时直接返回,避
免重复请求,加快了访问速度
■一般针对静态网页设置,对动态网页不设置缓存时间

配置Nginx网页缓存时间2-2

■设置方法
●修改配置文件,在http段、 或者server段、 或者location段
加入对特定内容的过期参数
■示例
●修改Nginx的配置文件,在location段加入expires 参数

location ~ \.(gifljipgljepg! png|bmplico)$ {
root html;
expires 1d;

买现Nginx的日志切割2-1

■随着Nginx运行时间增加,日志也会增加。为了方便掌
握Nginx运行状态,需要时刻关注Nginx日志文件
■太大的日志文件对监控是一个大灾难;
●定期进行日志文件的切割
■Nginx自身不具备日志分割处理的功能,但可以通过
Nginx信号控制功能的脚本实现日志的自动切割
■通过Linux的计划任务周期性地进行日志切割

实现Nginx的日志切割2-2

■编写脚本进行日志切割的思路
●设置时间变量
●设置保存日志路径
●将目前的日志文件进行重命名
●重建新日志文件
●删除时间过长的日志文件
●设置cron任务,定期执行脚本自动进行日志分割

编写脚本进行日志切割的思路

[root@www logs]# vim /opt/fenge.sh
#!/bin/bash
# Filename: fenge.sh
d=$(date -d "-1 day" "+% Y%m%d")
logs_ _path="/var/log/nginx"
pid_ path=/usr/local/nginx/logs/nginx.pid"
[-d $logs_ path ] || mkdir -p $logs_ _path
mv /usr/local/nginx/logs/access.log ${logs_ path}/test.com-access.log-$d
kill -USR1 $(cat $pid_ path)
find $logs_ path -mtime +30 |xargs rm -rf

配置Nginx实现连接超时。

为避免同一客户端长时间占用连接,造成资源浪费,可
设置相应的连接超时参数,实现控制连接访问时间

■超时参数
●Keepalive_ timeout
◆设置连接保持超时时间
●Client header timeout
◆指定等待客户端发送请求头的超时时间
●Client body_ _timeout

设置请求体读超时时间

更改Nginx运行进程数3-1

■在高井发场景,需要启动更多的Nginx进程以保证快速
响应。以处理用户的请求,避免道成阳塞
■更改进理数的配置方法
.体改配置文件,临改法想参致

更改Nginx运行进程数3-2

■修改配置文件的worker_ processes参数
●一 般设为CPU的个数或者核数
●在高并发情况下可设置为CPU个数或者核数的倍)
■增加进程数,可减少了系统的开销,提升了服务速度
■使用ps aux查看运行进程数的变化情况

[root@www conf]# cat /proc/cpuinfo | grep -C "physical" 4
[root@www conf]# vi nginx.conf
worker_ processes 4;
[root@www conf]# systemctl restart nginx
[root@www conf]# ps aux| grep nginx

更改Nginx运行进程数3-3

■默认情况,Nginx的多个进程可能跑在一个CPU上, 可
以分配不同的进程给不同的CPU处理,充分利用硬件多
核多CPU
■在一台4核物理服务器,进行配置,将进程进行分配

[root@www conf]# vi nginx.conf
worker_ processes 4;
worker_ cpu_ affinity 0001 0010 0100 1000;

配置Nginx实现网页压缩功能4-1

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

配置Nginx实现网页压缩功能4-2

■压缩功能参数
●gzip on:开启gzip压缩输出
gzip_ min_ length 1k:设置允许压缩的页面最小字节数
gzip_ buffers 4 16k:申请4个单位为16k的内存作为压缩结果
流缓存,默认值是申请与原始数据大小相同的内存空间来存
储gzip压缩结果
●gzip_ http _version 1.0:设置识别http协议版本,默认是1.1,
目前大部分浏览器已经支持gzip解压,但处理较慢,也比较消
耗服务器CPU资源

配置Nginx实现网页压缩功能4-3

■压缩功能参数(续)
●gzip
comp level2:指定gzip压缩比, 1压缩比最小,处理
速度最快; 9压缩比最大,传输速度快,但处理速度最慢
●gzip_ types text/plain:压缩类型,对哪些网页文档启用压缩
功能
●gzip_ _vary on:让前端缓存服务器缓存经过gzip压缩的页面
vig

配置Nginx实现网页压缩功能4-4

■将以上的压缩功能参数加入到主配置文件httpd配置中段
■重启服务,查看网页压缩功能开启结果
在这里插入图片描述

配置Nginx实现防盗链4-1

■在企业网站服务中,一般都要配置防盗链功能,以避免
网站内容被非法盗用,造成经济损失
■Nginx防盗链功能也非常强大。默认情况下,只需要进
行简单的配置,即可实现防盗链处理
■示例
使用两台主机模拟盗链
在这里插入图片描述

配置Nginx实现防盗链4-2

■盗链模拟步骤
两台主机配置测试页面
●编写盗链网站的测试网页,盗用源主机目录工作目录的一个logo.jpg文件

在Windows中访问www.test.com查看盗链是否成功

配置Nginx实现防盗链4-3

配置Nginx实现防盗链

[root@www conf]# vi nginx.conf
location ~* \.(jpg |gif|swf)$ {
valid_ referers * . bt.com bt.com;
if ($invalid_ referer) {
rewrite ^/ http://www.bt.com/error.png 

重启服务,再次访问图片,检测防盗效果在这里插入图片描述

对FPM模块进行参数优化3-1

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

对FPM模块进行参数优化3-2

■FPM优化参数
●Static的方式的参数
◆pm.max_ children: 指定启动的进程数量
●Dynamic方式的参数
pm.max_ children: 指定启动进程数的最大值
pm.start_ servers: 动态方式下初始的fpm进程数
◆pm.min_ spare_ servers: 动态方式下最小的fpm空闭进程数
◆pm.max_ spare_ servers: 动态方式下最大的fpm空闭进程数

对FPM模块进行参数优化3-3

■FPM优化参数调整示例
优化原因:服务器为云服务器,运行了个人论坛,内存为
1.5G,fpm进程数为20,内存消耗近1G,处理比较慢
●优化参数调整
◆FPM启动时有5个进程,最小空闲2个进程,最大空闲8个进程,最多
可以有20个进程存在
pm=dynamic
pm.max_ children=20
pm.start_ servers = 5
pm.min_ spare_ servers = 2
pm.min_ spare_ servers = 8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值