【发布时间】:2019-12-17 03:44:16
【问题描述】:
您好,我使用 nginx 运行 docker 容器并收到以下错误:
2019/08/09 11:37:18 [emerg] 1#1:参数数量无效 /etc/nginx/conf.d/default.conf:61 nginx 中的“上游”指令: [emerg] “上游”指令中的参数数量无效 /etc/nginx/conf.d/default.conf:61
我的 docker compose 看起来像这样:
# @version 2018-01-15
# @author -----
version: "3.7"
networks:
proxy:
external: true
volumes:
# curl https://raw.githubusercontent.com/jwilder/nginx-proxy/master/nginx.tmpl > /var/lib/docker/volumes/proxy_tmpl/_data/nginx.tmpl
conf:
vhost:
certs:
html:
tmpl:
services:
# Nginx proxy
nginx:
image: nginx
networks:
- proxy
ports:
- 80:80
- 443:443
volumes:
- conf:/etc/nginx/conf.d # nginx config
- vhost:/etc/nginx/vhost.d # changed configuration of vhosts (needed by Let's Encrypt)
- html:/usr/share/nginx/html # challenge files
- certs:/etc/nginx/certs:ro # Let's Encrypt certificates
- /var/run/docker.sock:/tmp/docker.sock:ro # docker service
environment:
- ENABLE_IPV6=true
deploy:
mode: global
placement:
constraints: [node.role == manager]
restart_policy:
condition: on-failure
max_attempts: 5
window: 120s
resources:
limits:
memory: 256M
reservations:
memory: 32M
labels:
de.blubbbbb.meta.description: "Nginx"
de.blubbbbb.meta.maintainer: "-----"
de.blubbbbb.meta.version: "2018-01-15"
com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: ""
# see also: https://wiki.ssdt-ohio.org/display/rtd/Adjusting+nginx-proxy+Timeout+Configuration
# Docker-gen
dockergen:
# https://hub.docker.com/r/helder/docker-gen
image: helder/docker-gen
networks:
- proxy
volumes:
- conf:/etc/nginx/conf.d
- vhost:/etc/nginx/vhost.d
- html:/usr/share/nginx/html
- certs:/etc/nginx/certs:ro
- tmpl:/etc/docker-gen/templates:ro # docker-gen templates
- /var/run/docker.sock:/tmp/docker.sock:ro # docker service
environment:
ENABLE_IPV6: ""
command: -notify "docker-label-sighup com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy" -watch -wait 10s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf
deploy:
mode: global
placement:
constraints: [node.role == manager]
restart_policy:
condition: on-failure
max_attempts: 5
window: 120s
resources:
limits:
memory: 256M
reservations:
memory: 32M
labels:
de.blubbbbb.meta.description: "Docker-gen"
de.blubbbbb.meta.maintainer: "-----"
de.blubbbbb.meta.version: "2018-01-15"
com.github.jrcs.letsencrypt_nginx_proxy_companion.docker_gen: ""
# Lets Encrypt
letsencrypt:
image: jrcs/letsencrypt-nginx-proxy-companion
networks:
- proxy
volumes:
- conf:/etc/nginx/conf.d
- vhost:/etc/nginx/vhost.d
- html:/usr/share/nginx/html
- certs:/etc/nginx/certs:rw
- /var/run/docker.sock:/var/run/docker.sock:ro
deploy:
mode: global
placement:
constraints: [node.role == manager]
restart_policy:
condition: on-failure
max_attempts: 5
window: 120s
resources:
limits:
memory: 256M
reservations:
memory: 32M
labels:
de.blubbbbb.meta.description: "Letsencrypt Nginx Proxy Companion"
de.blubbbbb.meta.maintainer: "-----"
de.blubbbbb.meta.version: "2018-01-15"
我是这样运行的:
docker stack deploy proxy -c docker-compose.yml
可能是什么问题?提前致谢。
来自conf的上游部分
upstream {
# Cannot connect to network of this container
server 127.0.0.1 down;
# Cannot connect to network of this container
server 127.0.0.1 down;
# Cannot connect to network of this container
server 127.0.0.1 down;
## Can be connected with "proxy" network
# tools_adminer.1.n1j3poc9mo507somuhyf7adrd
server 10.0.35.3:8080;
# Cannot connect to network of this container
server 127.0.0.1 down;
# Cannot connect to network of this container
server 127.0.0.1 down;
}
【问题讨论】:
-
你需要显示你的 nginx 配置 /etc/nginx/conf.d/default.conf
-
手动运行 nginx 容器并测试 nginx 配置是否正常。可能会帮助你找出问题所在。看起来像是 nginx conf 中的问题
-
@ScottStensland 我认为是自动生成的文件
-
当我手动运行容器时,它会在启动时立即停止。和 compose 一样