有三台docker主机分别部署了nginx,elk,Prometheus,
想通过nginx代理访问elk和Prometheus,怎么搞啊,
docker容器 nginx容器代理
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
关注【以下回答由 GPT 生成】
解决方案
要通过Nginx容器代理访问ELK和Prometheus容器,需要进行以下配置步骤:
步骤1: 创建网络
在三台Docker主机上创建一个共享的网络,以便容器之间可以进行通信。
docker network create mynetwork步骤2: 配置ELK容器
在每台Docker主机上,创建一个ELK容器,并将其连接到之前创建的网络上。
docker run -d --name elk --network=mynetwork -p 5601:5601 -p 9200:9200 -p 5044:5044 sebp/elk步骤3: 配置Prometheus容器
在每台Docker主机上,创建一个Prometheus容器,并将其连接到之前创建的网络上。
docker run -d --name prometheus --network=mynetwork -p 9090:9090 prom/prometheus步骤4: 配置Nginx容器
在每台Docker主机上,创建一个Nginx容器,并将其连接到之前创建的网络上。
创建一个
nginx.conf文件,用于配置Nginx代理规则。# 文件路径:nginx.conf http { upstream elk { server elk:5601; } upstream prometheus { server prometheus:9090; } server { listen 80; location /elk/ { proxy_pass http://elk/; } location /prometheus/ { proxy_pass http://prometheus/; } } }在Dockerfile中创建一个Nginx容器,并将
nginx.conf文件复制到容器中相应的位置。# 文件路径:Dockerfile FROM nginx COPY nginx.conf /etc/nginx/nginx.conf构建Nginx容器,并将其连接到之前创建的网络上。
docker build -t mynginx . docker run -d --name nginx --network=mynetwork -p 80:80 mynginx步骤5: 配置主机文件
在每台Docker主机上,修改
/etc/hosts文件,将ELK和Prometheus的域名指向Nginx容器的IP地址。步骤6: 测试
现在可以通过Nginx容器的IP地址和端口访问ELK和Prometheus容器。在浏览器中访问
http://<Nginx_IP>/elk将访问ELK容器的Kibana界面,访问http://<Nginx_IP>/prometheus将访问Prometheus容器的控制台界面。请注意替换
<Nginx_IP>为Nginx容器的实际IP地址。希望这些信息能对您提供帮助!如果您还有任何问题,请随时提问。
【相关推荐】
- 请看👉 :docker学习路程之部署一个nginx
- 除此之外, 这篇博客: Docker之nginx的生产环境的部署中的 Docker之nginx的生产环境的部署 部分也许能够解决你的问题。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报