我想让 nginx 将某些子域重定向到特定的服务器块,以便访问各个端口上的服务
server {
listen 80;
server_name example.com www.example.com;
location /crm {
return 301 http://example.com:8935;
}
location /api {
return 301 http://example.com:4667;
}
location /scanner {
return 301 http://example.com:4466;
}
return 301 https://www.example.com/$request_uri?$query_string;
}
因此,如果有人访问 example.com/crm,那么它需要重定向到监听端口 8935 的服务器 {} 块。
如果不是其中之一,则需要重定向到常规 https 网络内容。
这不起作用,它似乎总是使用最后一个重定向到常规网站。所以当我尝试 /cms 时,我得到了 404 未在网站上找到。
有什么办法可以防止它失败吗?
答案1
尝试将最后一个选项放在一个location /
块内