我的nginx设置存在问题。
我有一台应该服务于两个域的服务器。一个域应该只是执行重定向。一个域应该为www url执行重定向,然后提供我的uwsgi应用程序。
出于某种原因,一切都与它找到的第一件事相符。这很奇怪。
这里是.conf文件
server {
listen 80;
server_name russellrollins.com;
return 301 $scheme://blog.russellrollins.com$request_uri;
}
server {
listen 80;
server_name www.russellrollins.com;
return 301 $scheme://blog.russellrollins.com$request_uri;
}
server {
listen 80;
server_name www.playbeercan.com;
return 301 $scheme://playbeercan.com$request_uri;
}
server {
listen 80;
server_name playbeercan;
charset utf-8;
client_max_body_size 75M;
location / { try_files $uri @playbeercan; }
location @playbeercan {
include uwsgi_params;
uwsgi_pass unix:/var/www/playbeercan/playbeercan_uwsgi.sock;
}
}
而不是发送:
russellrollins.com - > blog.russellrollins.com
www.russellrollins.com - > blog.russellrollins.com
www.playbeercan.com - > playbeercan.com
playbeercan.com - > uwsgi app
它将我尝试的所有内容发送到blog.russellrollins.com。一切似乎都与第一个服务器名称相匹配。
我甚至尝试删除除第一个之外的所有重定向,并且它仍然匹配所有重定向。
我更改的nginx.conf文件中唯一的设置是server_names_hash_bucket_size。这似乎无关。
答案 0 :(得分:1)
您需要server_name
directive
来处理blog.russellrollins.com
和playbeercan.com
,否则会将第一个server_name
作为默认值,或者您可以使用default_server
设置默认值。