Nginx 奇怪的路由行为

问题描述 投票:0回答:1

我遇到了奇怪的 nginx 路由行为,我有 2 个 BE 服务与客户端应用程序一起运行,这两个 BE 服务都是从我的客户端调用的。

具有以下 nginx 配置,对这两个服务的 API 调用确实可以成功工作:

server {
listen 80 default_server;
server_name memorial-hub.de;

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   Upgrade $http_upgrade;
proxy_set_header   Connection "upgrade";
proxy_read_timeout 86400;

location / {
    root /usr/share/nginx/html;
    index  index.html index.htm;
    try_files $uri $uri/ /index.html =404;
}

location ^~ /api/v1 {
    proxy_pass http://authentication-service:9003;
}

location ^~ /api {
    rewrite /api/(.*) /$1 break;
    proxy_pass http://service:9002;
}

}

我尝试更改我的身份验证服务前缀以单独关注:

server {
    listen 80 default_server;
    server_name memorial-hub.de;

    proxy_set_header   Host $host;
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;


    location / {
        root /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html =404;
    }

    location ^~ /auth-api {
        rewrite /auth-api/(.*) /$1 break;
        proxy_pass http://authentication-service:9003;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 86400;
    }

    location ^~ /api {
        rewrite /api/(.*) /$1 break;
        proxy_pass http://service:9002;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 86400;
        
    }
}

现在调整了我的身份验证服务,它确实收到了 API 调用,但返回了 HTTP 403 ?

尽管在本地运行完全相同的 API 调用确实可以成功工作。

现在我很困惑为什么会发生这种行为。

reactjs spring nginx nginx-reverse-proxy
1个回答
0
投票

解决了。

事实证明,我的 CI/CD 没有部署新的后端 .jar,而是在添加更改后部署旧的后端。

nginx 配置没问题

© www.soinside.com 2019 - 2024. All rights reserved.