Redirect 为什么每个请求都与我的nginx重定向匹配?
我的nginx设置有一些问题 我有一个服务器,应该服务于两个域。一个域应该只执行重定向。一个域应该为www URL执行重定向,然后为我的uwsgi应用程序提供服务 出于某种原因,所有东西都与它找到的第一件东西相匹配。这很奇怪 这是.conf文件Redirect 为什么每个请求都与我的nginx重定向匹配?,redirect,nginx,Redirect,Nginx,我的nginx设置有一些问题 我有一个服务器,应该服务于两个域。一个域应该只执行重定向。一个域应该为www URL执行重定向,然后为我的uwsgi应用程序提供服务 出于某种原因,所有东西都与它找到的第一件东西相匹配。这很奇怪 这是.conf文件 server { listen 80; server_name russellrollins.com; return 301 $scheme://blog.russellrollins.com$request_uri; } s
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应用程序
它将我尝试的所有内容发送到blog.russellrollins.com。所有内容似乎都与第一个服务器名称匹配
我甚至尝试删除除第一个重定向之外的所有重定向,但它仍然匹配所有重定向
我在nginx.conf文件中更改的唯一设置是服务器名称、哈希、存储桶大小。这似乎不相关。您需要有一个
服务器名称指令来处理blog.russellrollins.com
和playbeercan.com
,否则它将默认使用第一个服务器名称,或者您可以使用default\u server
设置默认值。因此正确的解决方案是添加default\u server指令。不过,我建议您使用302重定向,直到一切正常为止。因为我不正确的重定向被缓存,并且把我的故障排除搞砸了。