一、隐藏版本号
在网页中我们通过F12+F5可以查看到版本号,或者使用Fiddler工具抓取数据包,查看Nginx版本,也可以在CentOS中使用命令curl -I http://192.168.10.23显示响应报文首部信息。
1.1、方法一:修改配置文件方式
server_tokens off;
注意:这个指标不治本,比如php探针,还是可以看到nginx具体版本信息
1.2、方法二:
vim /opt/nginx-1.18.0/src/core/nginx.h
cd /opt/nginx-1.18.0/可以用nginx -V看到自己 prefix内容./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
makecd objs/cp nginx /usr/local/nginx/sbin/systemctl restart nginx.service
curl -I 192.168.88.79
二、修改用户与组
三、缓存时间
cd /usr/local/nginx/html/
放入一张图片名为game.jpg
vim /usr/local/nginx/conf/nginx.conf
最后http://192.168.88.79/game.jpg
game.jpg ( 685×421)
http://192.168.88.79/game.jp
四、日志切割
vim /opt/fenge.sh
#!/bin/bash
# Filename: fenge.sh
# 前一天的时间
day=$(date -d "-1 day" "+%Y%m%d") # 注意date命令中的空格和引号
logs_path="/var/log/nginx"
#"/usr/local/nginx/logs/nginx.pid"。这个路径通常用于存储 Nginx 主进程的进程ID(PID)文件。
pid_path="/usr/local/nginx/logs/nginx.pid"
# 日志文件目录
[ -d "$logs_path" ] || mkdir -p "$logs_path" # 增加了空格和引号以提高可读性和防止解析错误
# 并重命名日志文件
mv "/usr/local/nginx/logs/access.log" "${logs_path}/yc.com-access.log-$day" # 增加了引号
# 新日志文件
kill -USR1 $(cat "$pid_path") # 增加了引号 USR1是单独的nginx信号生成日志
# 30天之前的日志文件
find "$logs_path" -type f -name "*.log" -mtime +30 -exec rm -rf {} \; # 只删除.log文件,并增加了引号
五、连接超时
keepalive_timeout
指令设置了客户端与服务器之间保持连接的超时时间。
- 第一个值(65秒)是告诉Nginx,在客户端与服务器之间没有任何数据传输的情况下,连接将在65秒后自动关闭。这是为了节省服务器资源,避免保持太多空闲连接。
- 第二个值(180秒)是告诉Nginx,如果使用了HTTP Keep-Alive头部,那么连接的最大空闲时间可以延长至180秒。这适用于支持HTTP持久连接的客户端,它们可以在一次TCP连接中发送多个HTTP请求,从而减少建立新连接的开销。
client_header_timeout
client_header_timeout
指令设置了客户端发送请求头给服务器的超时时间。client_header_timeout 80;
表示如果Nginx在80秒内没有收到客户端请求头的完整部分,那么它将会关闭这个连接。这个设置有助于防止客户端因为网络问题或其他原因而无限期地占用服务器资源。
client_body_timeout
指令设置了客户端发送请求体(如POST请求的表单数据)给服务器的超时时间。
client_body_timeout 80;
表示如果Nginx在80秒内没有收到客户端请求体的完整部分,那么它将会关闭这个连接。这个设置同样有助于防止因为客户端问题而导致的服务器资源浪费。
keepalive_timeout 65 180;
client_header_timeout 80;
client_body_timeout 80;
六、更改进程数
在高并发场景,需要启动更多的Nginx进程以保证快速响应,以处理用户的请求,避免造成阻塞
cat /proc/cpuinfo |grep -c "physical id"
-c
:这个选项告诉grep
命令只输出匹配行的数量,而不是匹配行的内容。
查看nginx主进程中包含几个子进程
ps aux|grep nginx
一个work
vim /usr/local/nginx/conf/nginx.conf
systemctl restart nginx
七、配置网页压缩
gzip on;
gzip_min_length 1k;
gzip_buffers 4 64k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_vary on;
gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss image/jpg image/jpeg image/png image/gif application/x-httpd-php application/javascript application/json;
在文件页面配置
systemctl restart nginx
打开
八、配置防盗链
vim /usr/local/nginx/conf/nginx.conf
location ~* \.(jpg|git|swf)$ {
valid_referers none blocked *.yc.com yc.com;
if ( $invalid_referer ) {
#return 403;
rewrite ^/ http://www.yc.com/error.png;
}
}
注意png上面就不能png了
可以在另一台机器测试