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;
}