我尝试基于docker构建工具链测试环境。其中包括用于nginx,gitea,Vault,jenkins,nexus等的多个容器。
在运行docker桌面的我的Windows主机上,我想用浏览器连接到几台服务器。
容器的DNS名称(例如“ vault”和“ jenkins”)仅可用于docker容器而不是Windows主机。我的计划是使用本地主机连接到nginx服务器,nginx会将请求重定向到目标服务器。
https://localhost -> Startpage
https://localhost/gitea -> https://gitea:30443
https://localhost/jenkins -> https://jenkins:40443
nginx服务器正在按预期方式应答并显示起始页面(docker将443重定向到20443)。 在nginx中,我创建了以下配置(gitea示例,该位置将为jenkins,保险库文件及其他所有文件创建):
server {
resolver 127.0.0.11; #docker local dns
listen 20443 ssl;
server_name frickeldave.global;
ssl_certificate /home/appuser/data/certificates/cer.pem;
ssl_certificate_key /home/appuser/data/certificates/key.pem;
access_log /home/appuser/data/nginx/log/nginx-access.log;
error_log /home/appuser/data/nginx/log/nginx-error.log;
error_page 500 502 503 504 /50x.html;
location / {
root /home/appuser/data/nginx/html;
index index.html index.htm;
}
location /gitea {
set $gitea_server gitea;
proxy_pass https://$gitea_server:30443;
}
}
当我在docker Windows主机上的浏览器中调用此命令时,他将我重定向到https://localhost:20443/gitea(确实为20443,没有键入错误)。我该怎么做才能通过反向代理“隧道”所有流量,并使Docker Windows主机上的URL“ localhost / gitea”可见?
致谢
戴夫