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

nginx常用配置

2017-01-16 10:58 169 查看
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增加用户名密码认证配置生产用户认证的用户名和密码:
更改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 http://all;
重启nginx,输入URL进行测试


nginx POST请求静态文件提示405错误问题方法一:error_page 405 =200 @405;
location @405{
root html;
proxy_method GET;
proxy_pass http://localhost:80;
}
方法二: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; }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nginx