GKLBB

当你经历了暴风雨,你也就成为了暴风雨

导航

常见问题解决 --- nginx反向代理接口返回404

可能原因 反向代理地址写错了,还有一种可能是没有配置host请求头,导致不能正确找到服务器

解决办法:

修改nginx反向代理,配置虚拟主机名称,配置举例

server {
        listen        8082;
        server_name  172.16.68.3;
        root /usr/local/nginx/html/;
        location / {
             try_files $uri $uri/ /index.html;    
            index index.php index.html error/index.html;
            autoindex  off;
        }
   
   
 location /prods-api/ {
        # 使用正则匹配 /prods-api 路径
        rewrite ^/prods-api/(.*)$ /api/$1 break;

        # 将请求代理到目标服务器
        proxy_pass https://screen.tss1wkjt.com/;  # 代理到外部 HTTPS 地址
        proxy_set_header Host screen.tss1wkjt.com;            # 设置请求头中的 Host 字段
        proxy_set_header X-Real-IP $remote_addr; # 设置客户端 IP 地址
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 转发的客户端 IP
        proxy_set_header X-Forwarded-Proto $scheme;  # 请求协议(http 或 https)

        # 处理 CORS(如果需要)
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept, Authorization';

        if ($request_method = 'OPTIONS') {
            return 204;  # 对于 OPTIONS 请求直接返回 204 无内容
        }
    }

}

 

posted on 2024-12-03 18:55  GKLBB  阅读(147)  评论(0编辑  收藏  举报