您的位置:首页 > 运维架构 > 反向代理

nginx 反向代理

2016-04-24 08:40 453 查看
昨日,网站域名备案出了点问题,导致整个站点都不能访问,因处于假期阶段,不能通过正常渠道快速解决,不得已域名必须先解析到国外的VPS服务器才能在最短时间里让用户正常使用。

在VPS装上nginx后,就需要用到反向代理功能,把被屏蔽的域名代理到另一可以正常访问的域名上(IP地址也一样),刚开始考虑的是只做一个重定向功能(rewrite),但后来发现直接重定向无法将POST的参数正确的带过去,所以这种方式行不通,必须的用另一种方式--反向代理。下面将配置代码贴出来,以备日后使用:

# 重定向代码
server {
listen       80;
server_name  www.domain.cn;
#charset koi8-r;
#access_log  logs/host.access.log  main;

if ( $host = 'www.dumain.cn' ) {
rewrite  ^/(.*)$  http://www.new_domain.cn/$1  permanent;
}
}

# 反向代理代码
server {
listen      80;
server_name www.domain.cn;
# proxy_redirect http://new_domain.com /;
proxy_redirect http://new_domain.com http://$host:$server_port  # 防止后端server在返回refresh或location的时候,host为new_domain.com

location / {
proxy_pass http://www.new_domain.cn:8080; proxy_redirect  off;
proxy_set_header        Host    $http_host;
proxy_set_header        X-Real-IP       $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header   Cookie $http_cookie;  # 代理cookie,防止session会丢失
chunked_transfer_encoding       off;
}
}


.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: