Nginx TLS透传报错(111: Connection refused)问题求助
排查并解决Nginx TLS透传连接失败问题
核心问题分析
从Nginx错误日志可明确定位问题:
2023/01/07 23:09:37 [error] 28#28: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 172.16.1.1, server: 0.0.0.0:443, upstream: "127.0.0.1:4443", bytes from/to client:0/0, bytes from/to upstream:0/0
宿主机4443端口无服务监听,导致Nginx无法转发请求。而Bitwarden内部Nginx的TLS服务实际监听容器内的8443端口,与配置的转发端口不匹配。
解决步骤
1. 修正Nginx流配置的上游端口
将stream配置中的上游端口改为Bitwarden容器映射到宿主机的实际端口:
stream { map $ssl_preread_server_name $name { bw.domain.com bw; } upstream bw { # 替换为Bitwarden容器映射到宿主机的端口,默认是8443 server 127.0.0.1:8443; } server { listen 443; proxy_pass $name; ssl_preread on; } }
2. 确认Bitwarden容器的端口映射
检查容器端口映射配置,确保容器内部8443端口已映射到宿主机:
- 若用
docker run启动,需添加参数:-p 8443:8443 - 若用
docker-compose,需在bitwarden服务的ports字段添加:8443:8443
3. 验证宿主机端口监听状态
在宿主机执行命令,确认目标端口有进程监听:
ss -tulpn | grep :8443
输出中包含Bitwarden容器进程则说明映射正常。
4. 重启服务生效
- 重启Nginx:
systemctl restart nginx - 调整端口映射后重启Bitwarden容器:
docker restart bitwarden
额外验证
若问题仍存在,可执行以下操作排查:
- 检查容器内Nginx配置正确性:
docker exec bitwarden nginx -t - 查看Bitwarden容器日志:
docker logs bitwarden
内容的提问来源于stack exchange,提问作者Teacup
相关产品推荐
相关产品推荐

