首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将nginx与docker中的重影链接

问无法将nginx与docker中的重影链接
EN

Stack Overflow用户
提问于 2015-05-03 18:12:53
回答 2查看 291关注 0票数 1

我正在digitalocean上部署一个ghost服务器,默认端口为2368。

代码语言:javascript
复制
docker run -d --name ghost ghost

我还部署了一个nginx服务器。

代码语言:javascript
复制
docker run -d -p 80:80 -p 443:443 --name nginx --link ghost:ghost -v /home/abc/nginx/sites-enabled:/etc/nginx/sites-enabled nginx

在/home/abc/nginx/sites enabled路径下,我有一个配置文件,名为ghost

代码语言:javascript
复制
server {
  listen 0.0.0.0:80;
  server_name mydomain; 
  access_log /var/log/nginx/mydomain.com.log; 

  location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header HOST $http_host;
      proxy_set_header X-NginX-Proxy true;

      proxy_pass http://ghost:2368;
      proxy_redirect off;
  }
}

最后

代码语言:javascript
复制
docker restart nginx,ghost

我可以清楚地看到nginx和ghost容器运行良好,并转到服务器的IP地址,我可以看到nginx的欢迎页面,上面写着

代码语言:javascript
复制
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

但是转到域名,它无法找到服务器,有时也会显示nginx欢迎页面

EN

回答 2

Stack Overflow用户

发布于 2015-05-04 10:22:55

首先,卷映射应该是-v /home/abc/nginx/sites-enabled:/etc/nginx/conf.d,而不是site-enabled。

其次,因为Nginx在启动时加载DNS条目,并且从不更新,所以在ghost重启后,Nginx将无法定位您的ghost容器(从而获得一个新的IP地址)。一种快速修复方法是运行docker restart ghost nginx而不是docker restart nginx ghost。

票数 0
EN

Stack Overflow用户

发布于 2016-07-27 15:40:12

试试这个预先设置好的nginx代理https://github.com/jwilder/nginx-proxy

按照说明运行nginx代理:

代码语言:javascript
复制
docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy

然后,您可以简单地运行这个幽灵docker,如下所示:

代码语言:javascript
复制
docker run --name some-blog -d -p 80:2368 -e VIRTUAL_HOST=domain.com -v /home/ghost/someblog/:/var/lib/ghost --restart unless-stopped ghost

我有多个重影容器,如下所示。

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

https://stackoverflow.com/questions/30012628

复制
相关文章

相似问题

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