Nginx 反向代理配置文件
server
{
listen 80;
server_name _;
location / {
proxy_pass http://IP:port;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /service/{
proxy_set_header Host IP:port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://IP:port/;
}
}
在location /
中proxy_pass
port后面可以不用加/
。但是location /service/
时就必须要加上/
不然会报错。
当转发的端口为80端口时还需要在proxy_pass
中加上端口80
不然也会报错。
跨域配置
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,PATCH,OPTIONS;
react 会有OPTIONS预请求处理,这个时候会报No 'Access-Control-Allow-Origin' header is persent on the requested resource
,导致无法使用之后的GET,POST等请求。所以还需要在在location中加上
if ( $request_method = 'OPTIONS' ) { ## 如果在Windows 服务器上需要按照bash脚本的if格式需要有空格分离,Linux没有关系可以没有空格
return 204;
}