Nginx 反向代理设置,伪静态可能导致反向代理不生效
遇到跨域的问题:has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header
想用nginx的反向代理解决。
将 /api/ 目录的访问, 转发到 https://www.bdtest.com/api/
配置:
location ^~ /api/ { proxy_pass https://www.bdtest.com/api/; proxy_set_header Host $proxy_host; # 改变请求头值 proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-NginX-Proxy true; }
如果用 thinkphp 之类的框架,设了伪静态
伪静态还要加 一条规则:
rewrite ^/api/(.*)$ /api/$1 last;
if (!-e $request_filename) { rewrite ^/api/(.*)$ /api/$1 last; rewrite ^(.*)$ /index.php?s=$1 last; break; }