gpt4 book ai didi

nginx - 使用Nginx作为Docker的代理

转载 作者:行者123 更新时间:2023-12-02 20:49:39 25 4
gpt4 key购买 nike

我目前尝试将nginx用作Elasticsearch引擎的代理,全部与docker结合使用。
我的elasticsearch运行命令如下:

docker run --name elasticsearch_5.2.1 \
-d \
elasticsearch:5.2.1

一个用于nginx:
docker run --name nginx_1.11.10 \
-p 8200:80 \
-l elasticsearch_5.2.1:elasticsearch \
-v /my.conf:/etc/nginx/nginx.conf:ro \
-d \
nginx:1.11.10

而我的nginx配置是:
user  nginx;
worker_processes 1;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;


events {
worker_connections 1024;
}


http {
upstream elasticsearch_proxy {
server elasticsearch:9200;
}

server {
listen 80;

location / {
proxy_pass http://elasticsearch_proxy;
proxy_http_version 1.1;
proxy_set_header Connection "Keep-Alive";
proxy_set_header Proxy-Connection "Keep-Alive";
}
}
}

但是,当nginx启动时,出现此错误:
2017/03/01 23:45:47 [emerg] 1#1: host not found in upstream "elasticsearch:9200" in /etc/nginx/nginx.conf:15
nginx: [emerg] host not found in upstream "elasticsearch:9200" in /etc/nginx/nginx.conf:15

我知道nginx找不到使用他的别名的elasticsearch。但是我找不到问题。

有没有已经有这个问题的人?

谢谢。

最佳答案

您需要创建一个用户网络。

docker create network my_app

然后在该网络上运行两个容器。
docker run --name elasticsearch_5.2.1 \
-d --network my_app \
elasticsearch:5.2.1

docker run --name nginx_1.11.10 \
-p 8200:80 \
-l elasticsearch_5.2.1:elasticsearch \
--network my_app \
-v /my.conf:/etc/nginx/nginx.conf:ro \
-d \
nginx:1.11.10

然后,您应该能够像解析DNS名称一样正确解析名称。

关于nginx - 使用Nginx作为Docker的代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42544382/

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