本人对nginx略知一二 不是特别懂 说的不对的地方还请大神多多指出,
最近在做项目 分为测试服务器和正式服务器,目前测试服务器在本地用localhost 请求服务器域名地址没有问题,但是请求正式的就出现跨域问题,代码都是一样的 就开始怀疑是nginx的问题
后来经过对比发现 是测试服务没有配置upstream 但是这个是负载均衡用的 应该影响不大啊,为什么加上去了反而跨域了
原始部分配置文件如下
upstream tomcat-xxxx-8101
{
server 127.0.0.1:8101;
keepalive 10;
}
location /
{
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Credentials' 'true';
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
add_header 'Access-Control-Allow-Origin' $http_origin;
return 204;
}
ajp_keep_conn on;
ajp_pass tomcat-xxxx-8101;
}
后面把upstream 去掉 在下面的 ajp_pass改成了 127.0.0.1:8101; 就解决了跨域了
具体什么愿意不是很清楚