nginx 多个位置块

nginx 多个位置块

我想让 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 /块内

相关内容