常见问题解决 --- 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 无内容 } } }