我有一个网站 比如域名 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;
}