我想仅使用一个端口“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
在 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/;
}
}
是否可以进行配置使其在一个端口下工作?