nginx 作为反向代理的问题和 docker 的几个 vps

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

我在正确配置 nginx 时遇到了很多问题,它作为反向代理工作。

服务器架构:

  1. Nginx 反向代理(公网IP,私网gate)
  2. 在 Docker 上以 java 作为后端的 VPS |暴露 8090
  3. 使用 vue.js 作为 Docker 前端的 VPS |暴露 8080

nginx 配置如下:

server {
    listen 80;
    listen 443;
    server_name some-domain.com;

    ssl_certificate /etc/letsencrypt/live/some-domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/some-domain.com/privkey.pem;

    location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host X.X.X.3;
        proxy_pass http://X.X.X.3:8080;
        proxy_redirect off;

    add_header 'Access-Control-Allow-Origin' '*';
    add_header 'Access-Control-Allow-Credentials' 'true';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
    add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
    }
}

server {
    listen 8090;
    server_name some-domain.com;
    location /api {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host some-domain.com;
        proxy_pass http://X.X.X.2:8090;
        proxy_redirect off;

    add_header 'Access-Control-Allow-Origin' '*';
    add_header 'Access-Control-Allow-Credentials' 'true';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
    add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';

    }
}

域:打开后看起来不错的“some-domain.com”,前面正在工作,但在我尝试登录并单击“登录”后,我进入了 web 控制台→网络,OPTIONS 请求而不是 POST。

如果您需要更多信息,请告诉我。

我尝试了关于 nginx 配置的不同解决方案,但现在我觉得我迷路了,所以这就是我写在这里的原因。

docker nginx reverse-proxy nginx-reverse-proxy nginx-config
© www.soinside.com 2019 - 2024. All rights reserved.