关于nginx反向代理后端ip,访问swagger报错500

1.今天在测试遇到一个nginx反向代理后端ip,为前端提供服务后,swagger失效报错500,并且显示地址是前端服务器地址。

前端服务器:0.0.0.1
后端服务器:0.0.0.2

访问swagger 接口ip一直为:0.0.0.1

解决办法:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

完整配置如下:

#如果ip以/apiapp/结尾,反向代理proxy_pass 的地址。此处在vue前端对应VUE_APP_BASE_API =  '/apiapp'
 location /apiapp/ {
    
    
       proxy_pass http://0.0.0.1:8090/; #后端服务器ip 反向代理
        #proxy_set_header X-Real-IP $remote_addr;
        #proxy_set_header REMOTE-HOST $remote_addr;
        #proxy_redirect off;
        #proxy_set_header  X-Forwarded-Proto  $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

vue前端代码配置:
在这里插入图片描述.env.test

#VUE_APP_BASE_API =  '/apiapp' #此处对应nginx代理块
# 路由基础路径 test
VUE_APP_BASE_URL =  '/'

2.如何以一台nginx 部署2套前端代码?
可以创建两个server,分别部署不同的前端代码
如下:

upstream app_api {
    
    
    server 0.0.0.1:8090;
    check interval=5000 rise=1 fall=3 timeout=4000;
 }
# 手机端-前端页面
server {
    
    
  listen 3000;
  server_name 0.0.0.2;

  underscores_in_headers on;
  proxy_set_header Host      $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $remote_addr;
  proxy_set_header X-Request-ID $request_id;
  real_ip_header   X-Forwarded-For;
  client_max_body_size 20M;
  proxy_connect_timeout 300;
  #后端服务器连接的超时时间_发起握手等候响应超时时间
  proxy_read_timeout 300;
  #连接成功后_等候后端服务器响应时间_其实已经进入后端的排队之中等候处理(也可以说是后端服务器处理请求的时间)
  proxy_send_timeout 300;
# 手机端-前端页面
location / {
    
    
    alias  /home/app/nginx/html/; # 前端静态文件目录
    index index.html;
    try_files $uri $uri/ /index.html;
 }

 location  /api/{
    
    
    proxy_pass http://172.16.171.139:8090;
    proxy_set_header Host $host:$server_port;
   # proxy_set_header Host  $http_host;
    proxy_set_header Connection close;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Server $host;
    client_max_body_size 20M;
 }
 }
#后台管理-前端页面
server {
    
    
    listen 8091;
    server_name 0.0.0.2;
    index index.php index.html index.htm;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    real_ip_header   X-Forwarded-For;

    location /apiapp/ {
    
    
       proxy_pass http://0.0.0.1:8090/;
      # proxy_set_header Host  $http_host;
       #proxy_set_header Connection close;
       #proxy_set_header X-Real-IP $remote_addr;
       #proxy_set_header X-Forwarded-Server $host;
       #client_max_body_size 2000M;
 #proxy_set_header X-Real-IP $remote_addr;
        #proxy_set_header REMOTE-HOST $remote_addr;
        #proxy_redirect off;
        #proxy_set_header  X-Forwarded-Proto  $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

  # 后台管理-前端页面
  location / {
    
    
     alias /home/app/front/dist/; # 前端静态文件目录
     index index.html;
     try_files $uri $uri/ /dist/index.html;
  }
  }

猜你喜欢

转载自blog.csdn.net/leaning_java/article/details/126748644