如何在现有的 nginx.conf 中将 NGINX 中的 http 重定向到 https

如何在现有的 nginx.conf 中将 NGINX 中的 http 重定向到 https

我在 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.confwebApplicationA 的代理http://a.b.c.d:3650,以便从 webApplicationB 加载的地图图块使用 https?我花了一个星期研究并尝试文件中的各种“ /location”参数“ ”行,但都没有成功。我研究和尝试得越多,我就越觉得我只是在尝试任何东西,只是希望它此时能奇迹般地起作用。有人可以解释一下这是怎么做到的吗?rewritenginx.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可以使用,并且浏览器不会再发出警告。

相关内容