遇到了一个跨域问题,因为前端需要从多个服务器上获取数据,而让后端去获取数据然后提供接口给前端着实有点麻烦,所以就想能否让前端直接去获取其他网站的数据。
例如本网站是 A,想要请求 B,C,D 3 个网站的数据,那么能否通过一个中转代理服务器让其自动将我们的请求在服务端自动发送给 B,C,D 的服务器,得到响应后自动将结果返回回来。
去看了一下 Nginx 的反向代理,目前的配置
server {
listen 8000;
server_name localhost;
location / {
proxy_pass http://localhost:3000;
}
}
这种配置的想过只能实现 A 访问 Nginx
就如同访问 B 一样,但其他的 C,D 服务器怎么办?能不能配置成 URL 加个参数代表域名,然后 Nginx
自动将参数中的域名替换呢?
但还是不清楚要怎么做,有什么好的解决方案么?(v^_^)v
这个我前两天刚做过,你可以把 location 替换为 /image /backEnd 等等 来匹配发往nginx 的信息,然后再把各个服务器定义好,好像说的有点乱,举个例子吧:
代理规则
这样就把 /frontEnd 的请求发送到前端服务器 ,/rest 的请求发送到后端
如果有比较复杂的请求需要匹配 ,那可以查下nginx的匹配规则,可以使用正则
(v^_^)v