nginx - Nginx - 如何在保持上下文的同时将特定的 url 代理传递到不同的主机?
问题描述
我有一个相当简单的 nginx conf 用于前端和后端应用程序:
server {
listen 8080;
server_name nginx_server;
port_in_redirect off;
location / {
root /dir/html;
index index.html index.htm;
}
location /api/ {
proxy_pass http://my-api:8080/;
}
}
我的主要主机是https,这很好用。当我点击时https://myapp.com/api/a/b/c
,我的后端会收到/a/b/c
,这就是我想要的。
现在,我想将特定 /api 上下文的请求发送到不同的服务器:
location /api/a/b {
rewrite /api/(.*) /$1 break;
proxy_pass http://another-api:8080;
}
所以现在,如果我打https://myapp.com/api/a/b?param=1
我想打http://another-api:8080/a/b?param=1
也https://myapp.com/api/a/b/c/d
应该打http://another-api:8080/a/b/c/d
当我使用 Postman 进行测试时,这是有效的,但由于某种原因,在 Chrome 中,当我的前端应用程序尝试点击时,https://myapp.com/api/a/b/c/d
我得到一个控制台错误:(blocked:mixed-content)
我怎样才能解决这个问题?
解决方案
推荐阅读
- python - 使用子图时不出现 X 轴标签
- django - 在 Python 中,如何提取 URL 的域部分?
- javascript - 如何在 Selenium IDE 中执行书签 javascript?
- flutter - Flutter 中基于当前状态显示 Widget
- python-3.x - 游戏
尝试生成超过 1 个敌人时,对象不是可调用对象 - python - Python Wget:检查重复文件并跳过是否存在?
- asp.net-mvc - oracle 11g添加记录时显示成功但没有添加记录,返回空白详情页
- python - 迄今为止的一周,或者我如何计算今天()或现在()中的时间?
- javascript - 反应导航标题 onPress - this.setState 不是函数
- r - R:分类变量的计数频率(以日期为条件)