首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用“nginx-代理”对接器容器配置目标网站上的错误网关错误

使用“nginx-代理”对接器容器配置目标网站上的错误网关错误
EN

Stack Overflow用户
提问于 2015-11-24 14:23:09
回答 1查看 1.2K关注 0票数 1

我尝试使用伟大的接口容器在上解决latex.comnmodel.org上vps上的nginx-proxy 502网关错误。我在配置中迷失了方向,所以我把这个问题作为github中的一个问题,在这里寻找帮助。

我的docker0172.17.0.1docker -ps命令返回:

代码语言:javascript
复制
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                                      NAMES
dca0d15c69bf        sharelatex/sharelatex   "/sbin/my_init"          2 minutes ago       Up 2 minutes        0.0.0.0:5000->80/tcp                       sharelatex
55ebd6b84a6a        osixia/phpldapadmin     "/container/tool/run"    3 days ago          Up 3 days           80/tcp, 443/tcp                            sleepy_thompson
e8fe2bd50c3a        osixia/openldap         "/container/tool/run"    3 days ago          Up 3 days           389/tcp, 636/tcp                           dreamy_babbage
9597ef0cded5        jwilder/nginx-proxy     "/app/docker-entrypoi"   3 days ago          Up 3 days           0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   pensive_raman

我创建带和不带VIRTUAL_PORT选项的sharelatex映像:

代码语言:javascript
复制
sudo docker run -d -e "VIRTUAL_HOST=latex.comnmodel.org" -e "VIRTUAL_PORT=80" -v ~/sharelatex_data:/var/lib/sharelatex -p 5000:80 --name=sharelatex sharelatex/sharelatex

docker exec pensive_raman grep -vE '^\s*$' /etc/nginx/conf.d/default.conf返回

代码语言:javascript
复制
# If we receive X-Forwarded-Proto, pass it through; otherwise, pass along the
# scheme used to connect to this server
map $http_x_forwarded_proto $proxy_x_forwarded_proto {
  default $http_x_forwarded_proto;
  ''      $scheme;
}
# If we receive Upgrade, set Connection to "upgrade"; otherwise, delete any
# Connection header that may have been passed to this server
map $http_upgrade $proxy_connection {
  default upgrade;
  '' close;
}
gzip_types text/plain text/css application/javascript application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
log_format vhost '$host $remote_addr - $remote_user [$time_local] '
                 '"$request" $status $body_bytes_sent '
                 '"$http_referer" "$http_user_agent"';
access_log off;
# HTTP 1.1 support
proxy_http_version 1.1;
proxy_buffering off;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto;
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;
}
upstream latex.comnmodel.org {
                        # sharelatex
                        server 172.17.0.5:80;
}
server {
        server_name latex.comnmodel.org;
        listen 80 ;
        access_log /var/log/nginx/access.log vhost;
        location / {
                proxy_pass http://latex.comnmodel.org;
        }
}
upstream ldap.comnmodel.org {
                        # sleepy_thompson
                        server 172.17.0.4:80;
}
server {
        server_name ldap.comnmodel.org;
        listen 80 ;
        access_log /var/log/nginx/access.log vhost;
        location / {
                proxy_pass http://ldap.comnmodel.org;
        }
}

当我ping latex.comnmodel.org位于我的ip 51.255.47.40上时:

代码语言:javascript
复制
PING latex.comnmodel.org (51.255.47.40) 56(84) bytes of data.
64 bytes from 40.ip-51-255-47.eu (51.255.47.40): icmp_seq=1 ttl=50 time=14.6 ms
64 bytes from 40.ip-51-255-47.eu (51.255.47.40): icmp_seq=2 ttl=50 time=12.9 ms
64 bytes from 40.ip-51-255-47.eu (51.255.47.40): icmp_seq=3 ttl=50 time=13.6 ms

docker logs pensive_raman返回

代码语言:javascript
复制
nginx.1    | latex.comnmodel.org 81.64.146.124 - - [22/Nov/2015:22:40:23 +0000] "GET / HTTP/1.1" 502 181 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:42.0) Gecko/20100101 Firefox/42.0"
nginx.1    | latex.comnmodel.org 81.64.146.124 - - [22/Nov/2015:22:40:26 +0000] "GET / HTTP/1.1" 502 181 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:42.0) Gecko/20100101 Firefox/42.0"
nginx.1    | latex.comnmodel.org 81.64.146.124 - - [22/Nov/2015:22:40:32 +0000] "GET / HTTP/1.1" 502 181 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:42.0) Gecko/20100101 Firefox/42.0"

我试图连接到pensive_raman (nginx-代理映像的名称)和ping sharelatex容器172.0.17.5,但没有成功,我的网络配置有问题吗?

  • 我是否需要使用--link选项docker run来连接nginx代理容器和sharelatex容器?
  • 我在0.0.0.0上有两个80个端口,这可能是个问题,当我运行sharelatex映像时,我需要精确的ip 172.17.0.5?这不干净

网站latex.comnmodel.org返回一个502 bad gateway,我在这里想念什么,这是非常令人沮丧的:

更新1 :

文档说,如果--icc = false,命令sudo iptables -L -n命令包含一个DROP规则。情况似乎并非如此,因此icc选项采用缺省的真值。

代码语言:javascript
复制
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
f2b-sshd   tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 22

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
DOCKER     all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain DOCKER (1 references)
target     prot opt source               destination
ACCEPT     tcp  --  0.0.0.0/0            172.17.0.2           tcp dpt:443
ACCEPT     tcp  --  0.0.0.0/0            172.17.0.2           tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            172.17.0.5           tcp dpt:80

Chain f2b-sshd (1 references)
target     prot opt source               destination
RETURN     all  --  0.0.0.0/0            0.0.0.0/0
EN

回答 1

Stack Overflow用户

发布于 2015-11-24 19:01:07

检查您是否正在使用--icc=false (容器间通信)运行码头守护进程。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33896088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档