将流量从 https 重定向到 http 到多个应用程序

时间:2021-05-04 07:37:28

标签: nginx

我想仅使用一个端口“443”将来自外部的传入 HTTPS 流量重定向到本地网络内的应用程序。但不幸的是,portainer 和 keycloack 不起作用。我想是因为他们试图重定向流量。

我的配置是这样的:

 server {
      listen      443 ssl;
      server_name my.domain.com;

      client_max_body_size 1g;

      ssl_certificate        cert_file.crt;
      ssl_certificate_key    key_file_key.key;
      ssl_client_certificate client_ca.ca;
      ssl_verify_client      optional;

      location ^~ /docker {
          proxy_pass http://localhost:5000/;
      }

      location ^~ /portainer {
          proxy_pass http://localhost:9000/;
      }


     location ^~ /keycloack {
         proxy_pass http://localhost:8080/;
     }

}

在 portainer 的情况下,我在一些电话中收到了 404 enter image description here

在 keycloack 的情况下,我得到了无限重定向循环。

如果我将每个应用程序都放在自己的服务器位置,它就可以正常工作:

 server {
      listen      1443 ssl;
      server_name my.domain.com;

      client_max_body_size 1g;

      ssl_certificate        cert_file.crt;
      ssl_certificate_key    key_file_key.key;
      ssl_client_certificate client_ca.ca;
      ssl_verify_client      optional;

      location / {
          proxy_pass http://localhost:5000/;
      }
}

 server {
      listen      2443 ssl;
      server_name my.domain.com;

      client_max_body_size 24m;

      ssl_certificate        cert_file.crt;
      ssl_certificate_key    key_file_key.key;
      ssl_client_certificate client_ca.ca;
      ssl_verify_client      optional;

      location / {
          proxy_pass http://localhost:9000/;
      }
}



 server {
      listen      3443 ssl;
      server_name my.domain.com;

      client_max_body_size 24m;

      ssl_certificate        cert_file.crt;
      ssl_certificate_key    key_file_key.key;
      ssl_client_certificate client_ca.ca;
      ssl_verify_client      optional;

      location / {
          proxy_pass http://localhost:8080/;
      }
}

是否可以进行配置使其在一个端口下工作?

0 个答案:

没有答案