Nginx域名和IP兼容双方的API地址
核心配置分析
Nginx配置中定义了一个监听80端口的服务器块,域名绑定为1.2.3.4和www.baidu.cn。主要功能是作为反向代理将请求转发到本地8080端口的/ahwl/路径。
代理设置特性
标准化请求头传递:包含Host、客户端真实IP(X-Real-IP)、转发链信息(X-Forwarded-For)以及协议类型(X-Forwarded-Proto)
动态CORS策略:允许任意来源($http_origin),支持所有常见HTTP方法,暴露常用请求头字段,并启用凭证模式
预检请求优化:对OPTIONS方法直接返回204状态码,避免无效后端请求
路径处理机制
代理目标地址固定为http://127.0.0.1:8080/ahwl/
Cookie路径重写:将后端的/ahwl/路径映射到根路径/
重定向修正规则:覆盖三种可能的Location头重定向场景(本地地址、IP地址、域名地址)server {
listen 80;
server_name 1.2.3.4 www.baidu.cn;
# 通用代理设置
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 通用 CORS 设置
add_header 'Access-Control-Allow-Origin' "$http_origin" always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE' always;
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization' always;
add_header 'Access-Control-Allow-Credentials' 'true' always;
add_header 'Access-Control-Max-Age' 1728000 always;
# 处理主应用请求
location / {if ($request_method = 'OPTIONS') {return 204;}# 统一代理到后端应用proxy_pass http://127.0.0.1:8080/ahwl/;# 修正Cookie路径问题proxy_cookie_path /ahwl/ /;# 处理可能的重定向问题proxy_redirect http://127.0.0.1:8080/ahwl/ /;proxy_redirect http://1.2.3.4/ahwl/ /;proxy_redirect http://www.baidu.cn/ahwl/ /;
}