nginx配置反向代理+;docker&x2B;http到https重定向
上下文 在其他几个容器前面有一个nginx容器。其中一个正在运行node.js前端,该前端显示在10001:3000上 我已经设法拼凑出一个部分工作的nginx配置,允许443上的SSL终止到10001上的容器 然而,我现在需要将所有流量重新定向到HTTPS,理想情况下阻止端口10001工作,某种http全覆盖 这是我的本地主机配置nginx配置反向代理+;docker&x2B;http到https重定向,docker,nginx,Docker,Nginx,上下文 在其他几个容器前面有一个nginx容器。其中一个正在运行node.js前端,该前端显示在10001:3000上 我已经设法拼凑出一个部分工作的nginx配置,允许443上的SSL终止到10001上的容器 然而,我现在需要将所有流量重新定向到HTTPS,理想情况下阻止端口10001工作,某种http全覆盖 这是我的本地主机配置 user www-data; error_log /var/log/nginx/error.log warn; pid /run/nginx.p
user www-data;
error_log /var/log/nginx/error.log warn;
pid /run/nginx.pid;
worker_processes 2;
events {
worker_connections 1024;
multi_accept off;
}
stream {
upstream stream_backend {
server 172.17.0.1:10001;
# server backend2.example.com:12345;
#server backend3.example.com:12345;
}
server {
listen 443 ssl;
proxy_pass stream_backend;
ssl_certificate /etc/letsencrypt/live/localhost/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/localhost/fullchain.pem;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 4h;
ssl_handshake_timeout 30s;
#...
}
}
除此之外,我尝试的每件事都会出现语法错误或其他错误。有人能提供一些简单的建议吗?如果您正在使用docker compose并将API和nginx添加到同一网桥网络,您可以向API容器公开端口,并删除ports指令。这将允许nginx与api容器通信,但api没有公开的开放端口
ports:
- "8000:80"
expose:
- "8000"
如上所述,ports指令向公众开放端口8000。Expose使8000仅在本地子网或网桥网络上可用。因此,在这种情况下,我的建议是删除ports部分。Expose也可以与run命令一起使用,但在这种情况下,您需要手动创建网桥网络
我最近也有同样的问题。事实上,我有几个问题,但这是其中之一。有关更多详细信息,请参见我的问题和答案