docker nginx连接被拒绝,同时连接到上游

我使用shiny的服务器来build立一个端口3838的networking应用程序,当我在我的服务器使用nginx它运作良好。 但是当我在我的服务器上停止nginx并尝试使用docker nginx时,我发现该站点出现'502-Bad Gate Way'错误,nginx日志显示:

2016/04/28 18:51:15 [error] 8#8: *1 connect() failed (111: Connection refused) while connecting to upstream, ... 

我用这个命令安装docker-nginx:

 sudo docker pull nginx 

我的docker命令行是类似的(清除我添加一些缩进):

 sudo docker run --name docker-nginx -p 80:80 -v ~/docker-nginx/default.conf:/etc/nginx/conf.d/default.conf -v /usr/share/nginx/html:/usr/share/nginx/html nginx 

我在我的家目录中创build一个文件夹名称“docker-nginx”,将我的nginx conf文件移动到这个文件夹中,然后删除我的原始conf在etc / nginx目录中以防万一。

我的nginx conf文件看起来像这样:

 server { listen 80 default_server; # listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.html index.htm; # Make site accessible from http://localhost/ server_name localhost; location / { proxy_pass http://127.0.0.1:3838/; proxy_redirect http://127.0.0.1:3838/ $scheme://$host/; auth_basic "Username and Password are required"; auth_basic_user_file /etc/nginx/.htpasswd; # enhance the performance proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; } } 

你必须定义upstrem指令。 目前你的nginx无法代理到你的web应用程序。

http://nginx.org/en/docs/http/ngx_http_upstream_module.html

 upstream backend { server backend1.example.com weight=5; server backend2.example.com:8080; server unix:/tmp/backend3; server backup1.example.com:8080 backup; server backup2.example.com:8080 backup; } server { location / { proxy_pass http://backend; } }