nginx配置IE内核跳转

   if ( $http_user_agent ~* "MSIE [6-8].[0-9]" ) {

        rewrite http://test.10010.com/a3 break;

    }

    if ( $http_user_agent ~* "MSIE 9|1[0-2].[0-9]" ) {

        rewrite http://test.10010.com/a4 break;

    }

nginx实现跨域访问    

http {


  ......
  add_header Access-Control-Allow-Origin *;
  add_header Access-Control-Allow-Headers X-Requested-With;
  add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
}

这样就可以实现GET,POST,OPTIONS的跨域请求的支持
也可以 add_header Access-Control-Allow-Origin http://test.51testing.com; --指定允许的url;

nginx增加用户名密码认证配置

生产用户认证的用户名和密码:

htpasswd -c passwd_kb admin

更改nginx配置文件

location ~ /wapService-test1/* {

                        auth_basic "Authorized users only";   #提示

                        auth_basic_user_file /opt/nginx/conf/password_kb; #路径

                        proxy_set_header   Host             $host;

                        proxy_set_header   X-Real-IP        $remote_addr;

                        proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;

                        proxy_redirect         off;

                        proxy_set_header       Authorization ""; #避免代理weblogic重复提示认证问题

                        proxy_set_header       X-Forwarded-Ssl on;

                        proxy_pass 

重启nginx,输入URL进行测试

nginx POST请求静态文件提示405错误问题

方法一:

error_page   405 =200 @405;

                location @405{
                root html;
                proxy_method GET;
                proxy_pass 
                }

方法二:

vim ngx_http_static_module.c
找到如下行(大约在文件的第206行):

if (r->method & NGX_HTTP_POST) {


     return NGX_HTTP_NOT_ALLOWED;
}

将这段屏蔽掉;
/*
if (r->method & NGX_HTTP_POST) {
     return NGX_HTTP_NOT_ALLOWED;
}
*/


保存退出;

(方法二来自网络,未经测试)
在使用之前编译nginx的参数,重新编译nginx版本,并进行替换(注意不要make install)即可。

nginx设置不缓存文件

location ~ .*.(css|js|swf|php|htm|html )$ {  

     ........

    add_header Cache-Control no-store;  

}

nginx根据cookie跳转

需求:

/smart/ 这个请求如果cookie中包含test=true 则转发到预发布节点,如果不包含转发到生产节点。

/smartplatform/ 这个请求如果cookie中包含test=true 则转发到预发布节点,如果不包含转发到生产节点。

定义upstream

 upstream houtai {

        sticky;

        server  10.70.52.11:9110 max_fails=2 fail_timeout=10s;

        server  10.70.52.11:9111 max_fails=2 fail_timeout=10s;

    }

    upstream push {

        server 10.70.52.11:9110;

    }

定义cookie匹配

    map $COOKIE_test $my_upstream {

    ~^true$ push;

    default houtai;

    }

配置location

       location ^~ /smart/ {

            proxy_pass      http://$my_upstream;

            proxy_buffer_size 128k;

            proxy_buffers   32 128k;

            proxy_set_header Host $host;

            proxy_set_header X-Real-IP $remote_addr;

            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        }