编辑nginx.conf
server_tokens off 关闭版本号
修改用户与组
在配置文件中将用户注释掉
表示主进程master会有root创建,子进程由nginx用户来创建
设置页面的缓存时间,主要是针对动态页面,图片的缓存
cd html/ 先把图片托进来
配置文件做一个location 设置缓存时间
apache是自带日志分割的 按天来进行收集日志
access.log
error -2024 -07 -03.log
nginx没有日志分割
date -d “-1 day” “+Y%m%dg”
脚本
#!/bin/bash
# 获取前一天的日期
day=$(date -d "yesterday" "+%Y%m%d")
# 指定日志路径和pid文件路径
logs_path="/usr/local/nginx/logs/"
pid_path="/usr/local/nginx/run/nginx.pid"
# 备份access.log和error.log文件
mv ${logs_path}access.log ${logs_path}access-${day}.log
mv ${logs_path}error.log ${logs_path}error-${day}.log
# 向Nginx发送USR1信号,重新打开日志文件
if [ -f ${pid_path} ]; then
kill -USR1 $(cat ${pid_path})
else
echo "Nginx pid file ${pid_path} not found."
exit 1
fi
日志清理
#!/bin/bash
# 获取前一天的日期
day=$(date -d "yesterday" "+%Y%m%d")
# 指定日志路径和pid文件路径
logs_path="/usr/local/nginx/logs/"
pid_path="/usr/local/nginx/run/nginx.pid"
# 备份access.log和error.log文件
mv ${logs_path}access.log ${logs_path}access-${day}.log
mv ${logs_path}error.log ${logs_path}error-${day}.log
# 向Nginx发送USR1信号,重新打开日志文件
if [ -f ${pid_path} ]; then
kill -USR1 $(cat ${pid_path})
else
echo "Nginx pid file ${pid_path} not found."
exit 1
fi
# 清理30天前的日志文件
find ${logs_path} -name "access-*.log" -mtime +30 -exec rm -f {} +
find ${logs_path} -name "error-*.log" -mtime +30 -exec rm -f {} +
创建定时执行
更改进程数已经设置cpu绑定**
不绑定cpu进程可能会在两个cpu来回切换浪费资源
worker_cpu_affinity 0001 0010 0100 1000
01 10 100 1000
请求保持时间
太长占用资源
请求头的时间也可以自定义
请求尾的时间也可以自定义
页面压缩
压缩比例5/6/7都可以
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;
支持压缩的类型
回收TIME_WAIT:
time_wait是tcp链接的一种状态。出现在四次挥手之后
处于等待状态,双方不再发送数据。
time_wait所占用的系统资源很小,数量比较少,完全可以忽略不计
但是太多了,就会有一定的影响
连接断开(四次挥手)之后
netstat -n | awk '/^tcp/ {++s[$NF]} END {for (a in s) print a s[a]}
回收要修改内核文件
net.ipv4.tcp_synvookies=1
防止tcp的半连接队列溢出,可以达到服务端收到tcp的syn(同步)的请求时能够快速响应
net.ipv4.tcp_tw_reuse=1
允许复用time_wait状态链接,新的连接可以直接使用TIME_WAIT状态的端口,可以提高连接的复用率。
net.ipv4.tcp_tw_recycle=1
这是老版本的配置,时间戳进行连接复用
net.ipv4.tcp_fin_timeout=30
控制TIME_WAIT状态的持续时间,持续时间30秒,不是立即把TIME_WAIT的连接回收,没用的空闲的进行回收
nginx*
1、隐藏版本号
2、日志分割
3、CPU绑定
4、连接超时
5、页面压缩
6、页面缓存时间
防盗链
添加location
地址映射
第二台
网页准备:
Web源主机(192.168.233.61)配置:
cd /usr/local/nginx/html
将game.jpg、error.png文件传到/usr/local/nginx/html目录下
vim index.html
…
< img src=“game.jpg”/>
echo “192.168.233.61 www.kgc.com” >> /etc/hosts
echo “192.168.233.62 www.benet.com” >> /etc/hosts
盗链网站主机(192.168.233.62):
cd /usr/local/nginx/html
vim index.html
…
< img src=“http://www.kgc.com/game.jpg”/>
echo “192.168.233.61 www.kgc.com” >> /etc/hosts
echo “192.168.233.62 www.benet.com” >> /etc/hosts
在盗图网站主机上进行浏览器验证
http://www.benet.com