gpt4 book ai didi

docker - 子域、Nginx-proxy 和 Docker-compose

转载 作者:IT老高 更新时间:2023-10-28 21:22:34 26 4
gpt4 key购买 nike

我正在寻找一种方法来配置 Nginx 以通过我的服务器的子域访问托管服务。这些服务和 Nginx 使用 Docker-compose 实例化。

简而言之,当输入 jenkins.192.168.1.2 时,我应该通过 Nginx 代理访问托管在 192.168.1.2 上的 Jenkins。

快速浏览一下我目前拥有的东西。 没有顶级域名它不起作用,所以它在 play-with-docker.com 上运行良好,但不是在本地,例如 192.168.1.2

server {
server_name jenkins.REVERSE_PROXY_DOMAIN_NAME;
location / {
proxy_pass http://jenkins:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

看看我想要什么:https://github.com/Ivaprag/devtools-compose

我的总体目标是在不修改客户端 DNS 服务的情况下访问远程 docker 容器。

最佳答案

不幸的是,nginx 不支持这样的 IP 地址上的子域。

您要么必须修改客户端主机文件(您说过不想这样做)...


或者你可以像这样设置你的 nginx 重定向:

location /jenkins {
proxy_pass http://jenkins:8080;
...
}

location /other-container {
proxy_pass http://other-container:8080;
}

这将允许您在 192.168.1.2/jenkins

访问 jenkins

或者您可以尝试通过不同的端口为您的不同容器提供服务。例如:

server {
listen 8081;
location / {
proxy_pass http://jenkins:8080;
...
}
}

server {
listen 8082;
location / {
proxy_pass http://other-container:8080;
...
}
}

然后从192.168.1.2:8081/

访问jenkins

关于docker - 子域、Nginx-proxy 和 Docker-compose,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45416518/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com