负载均衡与rewrite规则(2)

proxy_buffering    on;                                          #开启代理缓冲功能

proxy_buffer_size    8k;                                        #第一部分响应数据的缓存大小

proxy_buffers    8    128k;                                    #响应数据的缓存个数和容量

proxy_cache_path    /usr/local/nginx/cache    levels=1:2    keys_zone=one:100m    inactive=1d    max_size=2G;   

#设置缓存目录,levels设置缓存个数,keys_zone定义缓存名字和容量,inactive定义缓存存活时间,max_size定义硬盘的缓存容量

proxy_connect_timeout    60s;            #与后端服务器建立TCP连接握手超时时间

upstream servers {

#ip_hash;        iphash确保相同客户端ip使用相同的后端服务器,不适用就默认轮询

server    192.168.1.3:80    max_fails=3    fail_timeout=30s    weight=2;

server    192.168.1.4:80    max_fails=3    fail_timeout=30s    weight=2;

server    192.168.1.5:80    max_fails=3    fail_timeout=30s    weight=2;

}

server {

listen    80;

server_name    web.test.com;

access_log    logs/host.access.log    main;

location / {

proxy_pass ;

proxy_cache one;

proxy_set_header X-Forwarded-For $remote_addr;

}

}}

配置完成执行

echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local

浏览器访问192.168.1.2 或者122.126.152.183 刷新将分别得到不同的web页面信息

三、Nginx rewrite规则

nginx的rewrite语法格式和apache非常相似,rewrite regex replacement [flag],其中flag可以被设置为last结束当前指令并重新搜索location匹配、break结束当前rewrite指令、redirect临时重定向302、permanent永久重定向301。

rewrite地址重写及return应用的语法解析:

##根据浏览器标识,访问资源重定向到指定文件目录,下面用IE浏览器示例

if ($http_user_agent ~ MSIE ) {

rewrite ^(.*)$ /msie/$1 break;

}

##将��动客户端的请求重定向到其他服务器

if    ($http_user_agent ~* '(iphone|ipod)' )  {

rewrite    ^.+    $uri;

}

##用户使用POST方式请求数据时候,返回405

if ($request_method = POST ) {

return 405;

}

rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3 last;

rewrite ^(/download/.*)/audio/(.*)\..*$ $1/mp3/$2.ra last;

##访问admin时候重定向到admin目录

location /php_admin {

rewrite ^/php_admin/.*$ /admin permanent;

}

下面关于Nginx的文章您也可能喜欢,不妨参考下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/21862a3f14dedff854d959d1e2d46f78.html