nginx多后端一服务器

i1icjdpr  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(421)

我有一个没有域名的服务器:10.23.33.251。在这个服务器上,我有两个后端(spring boot):10.23.33.251:8888/api/a/lot/of/api 10.23.33.251:9999/api/a/lot/of/api
现在我想配置nginx来处理以下任何请求: /be1/employees/1?very_long_params 将代理\传递(或代理\重定向)到
10.23.33.251:8888/apis/employees/1?very_long_params /be2/products/10/very/long/params 将代理\传递(或代理\重定向)到 10.23.33.251:9999/apis/products/10/very/long/params 但我没能成功。以下是我的配置:

server {
    listen 8443;
    server_name localhost;

    location /be1/* {
        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;

        proxy_pass              http://localhost:8888/apis;
        proxy_read_timeout      90;
    }

    location /be2/* {
        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for
        proxy_set_header        X-Forwarded-Proto $scheme;

        proxy_pass              http://localhost:9999/apis;
    }
}
t5fffqht

t5fffqht1#

你的 location 错误的定义。您试图使用正则表达式,但缺少 ~ (或 ~* )接线员。
但是,不必使用正则表达式,您可以只使用前缀位置:

…
location /be1/ {
    …
}

location /be2/ {
    …
}

另请参见:位置指令文档

相关问题