nginx 跨域问题

新手上路,请多包涵

我有一个网站 比如域名 abc.com 对应服务器 ab
abc.com/123 对应后端 服务器 a
abc.com/xyz 对应后端 服务器 b

一共3台服务器

整体架构就是双重nginx服务器
第一个nginx只负责根据用户输入把对应的请求转发到后端对应的服务器

但是现在有一个问题 我访问 abc.com/123 的时候他会调用 一个abc.com/abc的接口服务

在第一个nginx里面没有配置 abc.com/abc 访问规则
在服务器a的nginx里面有这个规则

真实访问的时候 无法调用到a 服务器,只会调用到ab 服务器的

我临时在ab上加上 abc.com/abc 规则 这个问题解决了

但是问题又出现了
由于我的 abc.com 是配置https的 访问地址就是 https://abc.com/123 但是调用的接口是
http://abc.com/abc 不是https的,所有就出现了跨域问题

不知道应该在nginx里面如何配置才能解决这个问题、

server {
listen 443;
ssl 设置部分省略
server_name abc.com;
location /123 {
                proxy_pass        http://123;
                proxy_set_header   Host             $host:$server_port;
                proxy_set_header   X-Real-IP        $remote_addr;
                proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
location /xyz {
                proxy_pass        http://xyz;
                proxy_set_header   Host             $host:$server_port;
                proxy_set_header   X-Real-IP        $remote_addr;
                proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
location /abc {
                proxy_pass        http://abc;
                proxy_set_header   Host             $host:$server_port;
                proxy_set_header   X-Real-IP        $remote_addr;
                proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
upstream  123 {
        server 192.168.3.210:83   max_fails=1 fail_timeout=60s;
}
upstream  xyz {
        server 192.168.3.210:84   max_fails=1 fail_timeout=60s;
}
upstream  abc {
        server 192.168.3.210:8084   max_fails=1 fail_timeout=60s;
}
阅读 2.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进