您的位置:首页 > 运维架构 > Nginx

nginx总结

2015-06-25 05:26 651 查看
nginx中URL匹配配置 http://192.168.1.1/asdfa.aoisdjfoasdfal.jpg location ~ .*\.{gif|jpg|jpeg|png|bmp|swf}$ {
root /web/wwwroot/www.benet.wang;
expires 30d;
}

============================
location ~ ^/(upload|html)/ {
root /web/wwwroot/www.benet.wang;
expires 30d;
}
================================
location ~ .*.jsp$ {
index index.jsp;
proxy_pass http://localhost:8080; }

========================================
2. 负载均衡配置时的2个参数:fail_timeout和max_fails
upstream tomcat_server {
server 192.168.200.111:8080 weight=1 fail_timeout=20 max_fails=3;
server 192.168.200.112:8080 weight=1;
}
这2个参数一起配合,来控制nginx怎样认为upstream中的某个server是失效的当在fail_timeout的时间内,某个server连接失败了max_fails次,则nginx会认为该server不工作了。同时,在接下来的 fail_timeout时间内,nginx不再将请求分发给失效的server。
个人认为,nginx不应该把这2个时间用同一个参数fail_timeout来控制,要是能再增加一个fail_time,来控制接下来的多长时间内,不再使用down掉的server就更好了~
如果不设置这2个参数,fail_timeout默认为10s,max_fails默认为1。就是说,只要某个server失效一次,则在接下来的10s内,就不会分发请求到该server上
3、nginx日志分割配置实例脚本:
[root@localhost nginx]# cat logs/nginx.pid
5118
[root@localhost nginx]# kill -QUIT 5118
-QUIT : 关闭进程
-HUP : 重载服务, 平滑重启
-USR1: 日志切换,(通过结合crontab,每天生成一个新的日志)
-USR2: 平滑升级可执行程序
=[root@localhost ~]# cat /opt/fenge-nginx.sh
#!/bin/bash
#fenge nginx logs
savepath_log='/home/nginx/logs'
nglogs='/usr/local/nginx/logs'
[ -d $savepath_log ] || mkdir -p $savepath_log
[ -d $savepath_log/$(date +%Y)/$(date +%m) ] || mkdir -p $savepath_log/$(date +%Y)/$(date +%m)
mv $nglogs/access.log $savepath_log/$(date +%Y)/$(date +%m)/access.$(date +%Y%m%d).log
mv $nglogs/error.log $savepath_log/$(date +%Y)/$(date +%m)/error.$(date +%Y%m%d).log
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
---------------------------------------------------------------------------
[root@localhost ~]# chmod +x /opt/fenge-nginx.sh
[root@localhost ~]# /opt/fenge-nginx.sh
[root@localhost ~]# tree /home/nginx/
/home/nginx/
└── logs
└── 2014
└── 12
├── access.20141220.log
└── error.20141220.log
3 directories, 2 files
-----------------------------------------------------
[root@localhost ~]# crontab -l
0 0 * * * /opt/fenge-nginx.sh
本文来源:http://www.benet.wang/%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA/6.html
4、nginx防盗链配置实例
location ~* \.(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar)$ {
valid_referers none blocked *.benet.wang benet.wang;
if ($invalid_referer) {
rewrite ^/ http://www.benet.wang/img/error.gif; #return 403;
}
location /images {
root /opt/nginx/html;
valid_referers none blocked *.benet.wang benet.wang;
if ($invalid_referer) {
return 403;
}
}
}
注释:if{}中的内容的意思是:如果地址不是上面指定的地址就跳转到通过rewrite指定的地址,也
可以直接通过return返回403错误。
要做更复杂的防盗链处理,可以使用nginx的HttpAccessKeyModule,通过这个模块可以实现功能更强
大的防盗链处理。
----------------------------------------------------------------

nginx负载均衡配置
upstream benet.wang {
ip_hash;
server 192.168.1.111:80 weight=3;
server 192.168.1.112:80 down;
server 192.168.1.113:8080 weight=2 max_fails=3 fail_timeout=20s;
server 192.168.1.114:8008 weight=5;
}
location / {
root html;
index index.html index.htm index.jsp;
proxy_pass http://benet.wang; }
===============================
nginx网页的动静分离
server {
listen 80;
server_name www.benet.wang;
root /var/www/html;
location /img/ {
alias /web/www/html/img/;
}
location ~ (\.jsp)|(\.do)$ {
proxy_pass http://192.168.1.191:8080; }
}
=======================================
本文来源:http://www.benet.wang/%E6%9C%8D%E5%8A%A1%E6%90%AD%E5%BB%BA/115.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: