nginx反向代理解决跨域

摘要:
/使用r/local/nginx/conf/nginx。conf#代理接口位置^~/api/{add_header访问控制允许来源*;Proxy_set_header主机“shanghaimon.aigis info.com”;//shanghaimoon.aigis info.com/api/;

/usr/local/nginx/conf/nginx.conf

# 代理接口
location ^~ /api/ {
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Headers Origin,X-Requested-Width,Content-Type,Accept;
    proxy_set_header referer "http://shanghaimon.aegis-info.com";
    proxy_set_header host "shanghaimon.aegis-info.com";
    proxy_pass http://shanghaimon.aegis-info.com/api/;
}

location ^~ /qyapi/ {
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Headers Origin,X-Requested-Width,Content-Type,Accept;
    proxy_set_header referer "https://qyapi.weixin.qq.com";
    proxy_set_header host "qyapi.weixin.qq.com";
    proxy_pass https://qyapi.weixin.qq.com/;
}

然后刷新配置

/usr/local/nginx/sbin/nginx -s reload

疑难杂症
如果遇到
'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed等等错误
contains multiple values "*" 意思就是设置了2次跨域,但是只有一个是允许的。
改动办法又很多,比如服务器直接允许option请求,服务器就直接可以被跨域访问了
或者移除其中的任意一个就好了。如果服务器代码设置了允许跨域,使用Nginx代理里面就不需要了,或者移除服务器中的允许跨域

location ^~ /country/ {
    if ($request_method = 'OPTIONS') {
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,PATCH,OPTIONS;
        add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
        return 200;
    }
    proxy_set_header referer "http://114.116.25.112:18116";
    proxy_set_header host "http://114.116.25.112";
    proxy_pass http://114.116.25.112:18116/;
}

免责声明:文章转载自《nginx反向代理解决跨域》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇9.2.4 .net core 通过ViewComponent封装控件linux安装mvn后提示权限不够下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

兆芯 服务器 win2012/win7装机总结

兆芯cpu 服务器 win2012/win7装机总结 一、设置U盘启动装机 启动后,esc进入bios修改下图两个地方,都要改,然后保存。 二、重启计算机,进入win安装界面,会出现无法安装,原因是:原来的硬盘是Mbr的,而UEFI下,系统只能安装到GPT分区的磁盘上。 1.在win安装页面,建立GPT磁盘,Shift+F10,就会启动具有管理员权限的...

mysql通过数据文件恢复数据方法

情况描述:服务器硬盘损坏,服务器换了个新硬盘 ,然后老硬盘插在上面。挂载在这台机器。可以从老硬盘里面拿到数据。只拿到了里面的mysql数据文件夹,把数据文件夹覆盖新的服务器mysql数据文件夹 启动报错!!!报错!!!错!!!。 数据文件如下: 于是觉得不能使用覆盖文件的方式还原数据,得使用科学方法恢复。google之…… 找到解决办法如下: 可以发现数...

Nginx二级域名及多Server反向代理配置

Nginx强大的正则表达式支持,可以使server_name的配置变得很灵活,如果你要做多用户博客,那么每个用户拥有自己的二级域名也就很容易实现了。 注:nginx反向代理同一ip多个域名,给header加上host就可以了 下面我就来说说server_name的使用吧: server_name的匹配顺序 Nginx中的server_name指令主要...

cmd wevtutil 读取远程日志错误,Error:在没有配置的 DNS 服务器响应之后,名称 Server23.localdomain 的名称解析超时。

想要根据xml文件筛选器读取远程主机最新的几条日志,结果老是提示: Error : wevtutil qe SystemQuery.xml /f:text /rd:true /c:3 /sq:true /r:\******* /u:*********administrator /p:************       看我之前的文章:Windows提...

libcurl库返回状态码解释与速查

                                                                            libcurl库返回状态码解释与速查 CURLE_OK(0) 支持返回 CURLE_UNSUPPORTED_PROTOCOL(1) 你的URL传递给libcurl的使用协议,这libcurl的不支持。支持可...

【EDM经验交流】之如何监控某个域名邮箱发送到网易的邮件接收情况?

一转眼毕业快6年了,突然把这几年的工作经验拿出来与大家交流一下。 6年来,工作从最初的纯技术开发到现在的技术开发、网站运营、服务器运营、SEO、EMD、团队建设、项目执行,积累了一些经验,一直都想分享出来,终是下了不决心。最近在整理EMD经验,直接把写好的操作手册发出,原汁原味的晒出来,希望能找到感兴趣的朋友一起交流一下。 首页说明一下,EDM我已经做了三...