[英]How to Redirect a non-www to www with Mutiple Sites? (Nginx and Varnish)
首先,我想澄清一下,我對此問題進行了很多搜索,但是還沒有找到解決方案。
我在相同的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而不萬維網)。 訪問“ http://www.site2.com ”顯示正確的內容。
我做錯了什么?
我認為重定向無法正常工作,因為我嘗試重定向到Google.com,但沒有重定向。 它一直將“ site1.com”內容加載到“ site2.com”中。
return 301 http://www.google.com
我在下面嘗試了此代碼,但結果相同:
rewrite ^(.*) http://www.site2.com$1 permanent;
我完整的Nginx配置 : http : //codepad.org/TfPHS0jH
您的網站不是由Nginx服務,而是由Varnish服務。
當您導航到http://www.siteX.com或http://siteX.com時 ,您將轉到http://www.siteX.com:80或http://siteX.com:80,然后根據您的解釋,Varnish監聽端口80,而不是Nginx。
沒有真正的理由必須將兩者一起使用(盡管您可能在某些網站上已經讀過),並且您應該擺脫一個或另一個,而專注於自己決定保留的一個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.