nginx总结

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

你可能感兴趣的:(localhost)