Nginx 反向代理在页面刷新时将内部地址返回给客户端

Nginx 反向代理在页面刷新时将内部地址返回给客户端

我有一个 reactjs 应用程序,由运行 NGINX 的容器提供服务,其配置如下:

server {
listen       ${NGINX_PORT};
access_log  /var/log/nginx/access.log  main;
location / {
    root   /usr/share/nginx/html;
    try_files $uri $uri/ /index.html?$args;        
}
}

然后我在它前面放置一个反向代理,其配置如下:

upstream internal {
    server X.X.X.X:3100;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name mysite.com;
    port_in_redirect off;

    ssl_certificate /opt/nginx/certs/cert.cer;
    ssl_certificate_key /opt/nginx/certs/cert.key;

    location / {
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_pass http://internal;
            proxy_http_version 1.1;
            proxy_redirect off;
    }
  }

导航功能运行良好,我可以毫无问题地从一个页面跳转到另一个页面。但是,当我点击刷新时,它会将浏览器重定向到内部地址。

http://internal:3100/docs/intro/

编辑:根地址或 mysite.com 可以毫无问题地刷新。刷新问题仅出现在某些主题树(如上例)内。

我该如何防止这种情况发生?

相关内容