我在 RHEL7.9 Linux 上。我有一台服务器 (IP a.b.c.d
),为 webApplicationA 提供服务,并在 nginx 中使用 https,并且它可以在 上访问https://a.b.c.d
。
在同一台机器上(同一 IP,a.b.c.d
),我正在运行一个 AppImage,它是一个不同的 Web 应用程序,webApplicationB 提供可通过 访问的地图图块http://a.b.c.d:3650
。WebApplicationA 需要从 加载地图图块http://a.b.c.d:3650
,也就是从 webApplicationB 加载。
我目前能够让它工作(http://a.b.c.d:3650
在 webApplicationA 中加载)的唯一方法是将 Chrome 配置为“允许不安全的内容“这是不可接受的。”
我不确定我是否能够访问 AppImage 的内部以嵌入任何 SSL 密钥。我该如何修改nginx.conf
webApplicationA 的代理http://a.b.c.d:3650
,以便从 webApplicationB 加载的地图图块使用 https?我花了一个星期研究并尝试文件中的各种“ /location
”参数“ ”行,但都没有成功。我研究和尝试得越多,我就越觉得我只是在尝试任何东西,只是希望它此时能奇迹般地起作用。有人可以解释一下这是怎么做到的吗?rewrite
nginx.conf
这是我现有的服务器块。我要添加或更改什么?
server {
listen 443 ssl;
server_name mapperapp;
rewrite /login / redirect;
ssl_certificate nginx.crt;
ssl_certificate_key nginx.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 60m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
更新:我将以下服务器块添加到我现有的 nginx.conf,然后导航到https://a.b.c.d:4653
并且它起作用了。
server {
listen 4653 ssl;
server_name mapperapp;
ssl_certificate nginx.crt;
ssl_certificate_key nginx.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 60m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header X-Forwarded-Host mapperapp;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://a.b.c.d:3650;
}
}
答案1
设置另一个端口的服务器块,例如 4653,以便此 nginx 实例可以为 提供服务https://a.b.c.d:3653
。然后让这个新的服务器块代理到http://a.b.c.d:3650
。
回到您的 webApplicationA,以 开头的链接https://a.b.c.d:3653
可以使用,并且浏览器不会再发出警告。