我在一個nginx conf文件中有大約1300vhosts。全部使用以下佈局(它們在vhost文件中相互列出)。Nginx重定向到錯誤的虛擬主機
現在我的問題是,有時我的瀏覽器將site2重定向到site1。出於某種原因,雖然域名不匹配事件。
看起來nginx總是重定向到虛擬主機文件中的第一個站點。
有人知道這個問題可以是什麼?
server {
listen 80;
server_name site1.com;
rewrite ^(.*) http://www.site1.com$1 permanent;
}
server {
listen 80;
root /srv/www/site/public_html/src/public/;
error_log /srv/www/site/logs/error.log;
index index.php;
server_name www.site1.com;
location/{
if (!-e $request_filename) {
rewrite ^.*$ /index.php last;
}
}
location ~ .(php|phtml)$ {
try_files $uri $uri/ /index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/site/public_html/src/public$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
server {
listen 80;
server_name site2.com;
rewrite ^(.*) http://www.site2.com$1 permanent;
}
server {
listen 80;
root /srv/www/site/public_html/src/public/;
error_log /srv/www/site/logs/error.log;
index index.php;
server_name www.site2.com;
location/{
if (!-e $request_filename) {
rewrite ^.*$ /index.php last;
}
}
location ~ .(php|phtml)$ {
try_files $uri $uri/ /index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/site/public_html/src/public$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
編輯 也許還有一點要提的是,我重裝這一切虛擬主機每2分鐘的nginx -s重裝。
在它看起來像只重定向重裝時發生的第一次測試...將做一些更多的測試,但是這可能會有所幫助..
這看起來是問題,但如何更改主機頭?這不是我們明確在我們網站上做的事情。 – 2013-04-04 06:16:44
我將您的代碼添加到nginx虛擬主機文件的頂部。但仍然重定向到相同的虛擬主機(這是目前文件中的第二個)。 – 2013-04-04 06:53:02
更新了我的答案。讓我知道它是否有幫助 – 2013-04-04 13:03:06