首先,我想澄清一下我对此问题进行了大量搜索,但我还没有找到解决方案。
我在同一个Nginx(端口8080)和Varnish(端口80)下配置了2个Wordpress站点。
这是我的实际设置:
map $http_host $blogid {
default 0;
www.site1.com 1;
www.site2.com 2;
}
server {
listen 8080;
server_name www.site1.com site1.com;
root /var/www/site1.com;
...
}
server {
listen 8080;
server_name www.site2.com site2.com;
root /var/www/site2.com;
...
}
我想要做的是为site2配置从非www到www的重定向。示例:http://site2.com - > http://www.site2.com
我在重定向中添加了另一个'服务器'配置,并在其他' server_name 中添加' www.site2.com ' ”。
map $http_host $blogid {
default 0;
www.site1.com 1;
www.site2.com 2;
}
server {
server_name www.site1.com site1.com;
root /var/www/site1.com;
...
}
server {
listen 8080;
server_name site2.com;
return 301 http://www.site2.com$request_uri;
}
server {
server_name www.site2.com;
root /var/www/site2.com;
...
}
使用上面的配置更改并重新启动Nginx后,发生的情况是访问“http://site2.com”(没有www)它正在加载“http://site1.com”的内容(url继续site2.com没有www )。访问“http://www.site2.com”会显示正确的内容。
我做错了什么?
我认为重定向不起作用,因为我尝试重定向到Google.com,但它没有重定向。它不断在“site2.com”中加载“site1.com”内容。
return 301 http://www.google.com
我在下面尝试了这段代码,但结果相同:
rewrite ^(.*) http://www.site2.com$1 permanent;
我的完整 Nginx配置: http://codepad.org/TfPHS0jH
答案 0 :(得分:0)
您的网站不是由Nginx提供服务,而是由Varnish提供。
当您导航到http://www.siteX.com或http://siteX.com中的任何一个时,您将转到http://www.siteX.com:80或http://siteX.com:80并根据您的解释,Varnish会侦听端口80,而不是Nginx
没有任何理由不必将两者结合在一起(尽管你可能已经在某些网站上阅读了这些内容),你应该摆脱一个或另一个并专注于你决定保留的那个。
答案 1 :(得分:0)