用Nginx做反向代理时,可能会出现一个问题,当访问静态页面时,正常访问,但当访问动态页面时,就会跳转到原域名。
例如:www.test1.com反向代理www.test2.com ,即当访问www.test1.com时,其实是打开的www.test2.com的网站内容。
对Nginx.conf的配置代码如下
server
{
listen 80;
server_name www.test1.com;
location / {
proxy_pass http://www.test2.com/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
这样配置,访问www.test1.com静态网页时,打开的是这个域名。但当访问网站上动态页面或者登陆网站后台时,就会跳转到www.test2.com这个域名了,这样就暴露我们的原域名了。
解决方法很简单,在上面代码中添加proxy_set_header $host www.test2.com; ,修改后,代码如下:
server
{
listen 80;
server_name www.test1.com;
location / {
proxy_set_header $host www.test2.com;
proxy_pass http://www.test2.com/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
加上这段代码后,再检查网站,就会发现访问www.test1.com的动态页时,就不会跳转到原域名了。
新闻热点
疑难解答