gpt4 book ai didi

amazon-web-services - AWS ECS jwilder/nginx-proxy无法在上游内部生成服务器

转载 作者:行者123 更新时间:2023-12-02 21:14:45 24 4
gpt4 key购买 nike

我正在尝试将jwilder/nginx-proxy设置为反向代理,以将请求代理到公开VIRTUAL_HOST = example.com环境变量的各种容器。

如果容器是直接从ec2群集主机上启动的,则安装将起作用,但会失败,并显示以下错误:“错误运行通知命令:nginx -s reload,退出状态1”(如果从ECS产生)。

运行jwilder / nginx-proxy容器的容器的docker日志:
WARNING: /etc/nginx/dhparam/dhparam.pem was not found. A pre-generated dhparam.pem will be used for now while a new one
is being generated in the background. Once the new dhparam.pem is in place, nginx will be reloaded.
forego | starting dockergen.1 on port 5000
forego | starting nginx.1 on port 5100
dockergen.1 | 2018/08/19 10:43:37 Generated '/etc/nginx/conf.d/default.conf' from 4 containers
dockergen.1 | 2018/08/19 10:43:37 Running 'nginx -s reload'
dockergen.1 | 2018/08/19 10:43:37 **Error running notify command: nginx -s reload, exit status 1**
dockergen.1 | 2018/08/19 10:43:37 Watching docker events
dockergen.1 | 2018/08/19 10:43:37 Contents of /etc/nginx/conf.d/default.conf did not change. Skipping notification 'nginx -s reload'
2018/08/19 10:48:23 [emerg] 38#38: no servers are inside upstream in /etc/nginx/conf.d/default.conf:55
nginx: [emerg] no servers are inside upstream in /etc/nginx/conf.d/default.conf:55
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
dhparam generation complete, reloading nginx

环境配置如下:

services: 
- name: proxy
*volumes*:
Name: docker-socket
Source Path: /var/run/docker.sock
*containers*:
- name: proxy
image: jwilder/nginx-proxy
port: 80:80
Mount Points:
Container Path: /tmp/docker.sock
Source Volume: docker-socket
Read only: true
- name: site
*containers*:
- name: site
image: nginx
port: 0:80
environment:
- VIRTUAL_HOST=example.com

测试命令:
curl -H "Host: example.com" localhost:80   

现在它会返回默认的nginx页面,因为nginx配置文件由于上游主机丢失而无法生成有效的配置。

生成的无效的nginx配置
proxy_set_header Proxy "";
server {
server_name _; # This is just an invalid value which will never trigger on a real hostname.
listen 80;
access_log /var/log/nginx/access.log vhost;
return 503;
}
# example.com
upstream example.com {
}
server {
server_name example.com;
listen 80 ;
access_log /var/log/nginx/access.log vhost;
location / {
proxy_pass http://example.com
}
}

如果使用以下命令,则代理将按预期工作:
docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy

如果运行以上命令,它将给出以下输出:
WARNING: /etc/nginx/dhparam/dhparam.pem was not found. A pre-generated dhparam.pem will be used for now while a new one
is being generated in the background. Once the new dhparam.pem is in place, nginx will be reloaded.
forego | starting dockergen.1 on port 5000
forego | starting nginx.1 on port 5100
dockergen.1 | 2018/08/19 10:18:48 Generated '/etc/nginx/conf.d/default.conf' from 10 containers
dockergen.1 | 2018/08/19 10:18:48 Running 'nginx -s reload'
dockergen.1 | 2018/08/19 10:18:48 Watching docker events
dockergen.1 | 2018/08/19 10:18:48 Contents of /etc/nginx/conf.d/default.conf did not change. Skipping notification 'nginx -s reload'
2018/08/19 10:19:09 [notice] 40#40: signal process started
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
dhparam generation complete, reloading nginx
生成的有效nginx配置:
proxy_set_header Proxy "";
server {
server_name _; # This is just an invalid value which will never trigger on a real hostname.
listen 80;
access_log /var/log/nginx/access.log vhost;
return 503;
}
# example.com
upstream example.com {
## Can be connected with "bridge" network
# ecs-site-site-add8hjasd
server 172.17.0.3:80;
}
server {
server_name example.com;
listen 80 ;
access_log /var/log/nginx/access.log vhost;
location / {
proxy_pass http://example.com;
}
}

我的问题是:为什么这不起作用,是因为权限还是挂载到Docker套接字?

最佳答案

3天前,我们的团队遇到了这个问题。我们为此花费了很多时间。

问题原因应该在AWS ecs-agent中(我们有2个环境,一个ecs-agent的版本是1.21,另一个是1.24)

昨天,我们解决了此问题:使用AWS控制台将ecs-agent更新到最新版本:1.34,然后重新启动ecs-agent(docker contianer),然后解决了此问题。

只需将此解决方案粘贴在这里。希望对其他人有帮助!

关于amazon-web-services - AWS ECS jwilder/nginx-proxy无法在上游内部生成服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51917518/

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