一、日志的备份切割
ab -c 1 -n 10000 http://www.westos.org/index.html #创建一个客户端请求10000次
du -sh access.log #查看日志大小
mv access.log `date +%F -d -1day`_access.log #备份前一天日志为_access.log
nginx -s reopen #在生成一个新的access.log
二、nginx平滑升级与版本退回
最好不要做软链接
1、平滑升级
安装低版本的nginx
/usr/local/nginx/sbin/nginx -v #查看版本信息
rm -fr /usr/local/sbin #删除软连接,没有/
cp nginx nginx.old #备份启动脚本
根据老版本的编译选项对新版本进程编译,编译步骤为make
./configure --prefix=/usr/local/nginx/
make
cd /usr/local/nginx/sbin/
cp -f /usr/local/nginx/nginx-1.16.1/objs/nginx .
向原来的nginx的master进程发送信号,不再接受请求,新的nginx开启worrker进程接受新的请求
kill -USR2 4989(PID号) #旧master不接受请求
ps -ef |grep nginx |grep -v grep
kill -WINCH 4989 #清除老的worker
/usr/local/nginx/sbin/nginx -v #成功平滑升级
2、版本退回
cp -f nginx.old nginx
ps -ef |grep nginx |grep -v grep
kill -HUP 4989 #召回原master的worker
kill -USR2 7533 #新的master不接受请求
kill -WINCH 7533 #清除新的worker
/usr/local/nginx/sbin/nginx -v #成功平滑升级
三、nginx限制用户访问
vim nginx.conf:
对同一个ip进行限制
limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
#一秒只能请求一个
location /download{
limit_conn addr 1; #一次只能一个并发
limit_rate 50k #限制带宽,每秒最多50k
}
四、nginx获取真实的客户端请求ip
server2代理
做反向代理
upstream westos{
server 172.25.1.1:80;
}
server{
listen 80;
server_name www.westos.org;
location / {
proxy_pass http://westos;
}
}
}
做真实客户端ip
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
server1真实服务
做真实客户端ip
set_real_ip_from 172.25.1.2;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
server3客户端
均安装nginx。
vim /etc/hosts
curl www.westos.org
五、nginx:https的实现
六、nginx:rewrite规则
重写及重定向规则。
重定向:将网络请求重新定方向转到其他位置:当网页调整、重新转移新地址或扩展名的改变,就需要在内部进行输出重定向。
状态码301:永久性转移,旧资源不可用,尽量使用301。
状态码302:暂时性转移,旧地址资源还在
rewrite <regex> <replacement> [flag];
关键字 正则 替代内容 标记
flag:
last:本条规则匹配完成后,继续向下匹配新的locationURI规则
break:本条规则匹配完成后即终止
redirect:返回302临时重定向。浏览器地址会显示调转后的URI地址。
permanent:返回301永久重定向,浏览器地址会显示调转后的URI地址。
www.westos.org—https://ww.westos.org
server{
listen 80;
server_name www.westos.org;
rewrite ^/(.*)$ https://www.westos.org/$1;
}
#$1表示用户在这里输入的内容保留,只会重定向$1前面的东西。后加permanent表示永久重定向。
七、nginx:防盗
1、设置盗链
server1:
server {
listen 80;
server_name www.westos.org;
location /{
root /web;
index index.html;
}
}
server2:
server{
listen 80;
server_name daolian.westos.org;
charset utf_8;
location / {
root /web;
index index.html;
}
}
2、设置防盗链规则
location ~* \.(gif|jpg|png|jpeg)${
root /web;
valid_referers none blocked www.westos.org;
return 403;
}
3、防 盗后转移连接
server{
listen 80;
server_name bbs.westos.org;
location /{
root /bbs;
index index.html;
}