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;
}

如果用 thinkp 之类的框架,设了伪静态

 

伪静态还要加 一条规则:

if (!-e $request_filename) {
  rewrite ^/api/(.*)$ /api/$1 last;
  rewrite ^(.*)$ /index.php?s=$1 last;
  break;
}
原文地址:https://www.cnblogs.com/kjcy8/p/14512099.html