vps上docker容器上输出端口的nginx/apache重定向



我是一个linux noob,在VPS上使用apache或nginx管理docker容器。

我使用了一个OVH经典的Vps(4go ram,25Go SSD),已经安装了ubuntu 15.04+docker的映像。

docker容器的安装真的很容易,在我的情况下,我安装镜像sharelatex没有问题。

docker run -d 
  -v ~/sharelatex_data:/var/lib/sharelatex 
  -p 5000:80 
  --name=sharelatex 
  sharelatex/sharelatex

http://51.255.47.40:5000端口的VPS的IP上可以访问该站点,这表明该站点工作没有任何问题。

我已经有一个子域(tools.sebastiereneycoyrehourcq.fr)被配置为在服务器ip vps上运行(51.255.47.40在网络面板中路由到外部),不工作,不明白为什么。

我在51.255.47.40上安装了一个apache服务器,但我想最好的选择可能是安装nginx或apache的docker镜像?你能就这一点给我建议吗?在那之后,我如何重定向到链接到我的子域的apache或nginx的经典80端口上的docker映像的5000端口?

以前的答案可能涵盖了大多数问题,尤其是在域名存在重定向问题的情况下。

为了完全便携并使用docker的所有可能性,我的建议是使用Nginx官方docker映像,使其成为唯一可以从外部访问的映像(随着端口的开放),并使用--link来管理您的Nginx容器和其他容器之间的连接。

我在类似的情况下也这样做过,效果很好。以下是我对你的处境所做的初步翻译。

您在没有指定任何外部端口的情况下启动共享乳胶容器:

docker run -d 
  -v ~/sharelatex_data:/var/lib/sharelatex 
  --name=sharelatex 
  sharelatex/sharelatex

您为shareLatex服务器准备了一个nginx conf文件,放置在$HOME/nginx/conf中,看起来像

upstream sharelatex {
     # this will refer to the name you pass as link to the nginx container
     server sharelatex; 
}
server {
        listen 80;
        server_name tools.sebastienreycoyrehourcq.fr;
        location  ^~ / {
              proxy_pass http://sharelatex/;
        }
}

然后用适当的卷链接和容器链接启动nginxdocker容器:

docker run -d --link sharelatex:sharelatex --name NginxMain -v $HOME/nginx/conf:/etc/nginx/sites-available -v -p 80:80 kekev76/nginx

ps:这是用我们自己的kekev76/nginx镜像完成的,它在github和docker上是公开的,但你可以将原理调整为官方的nginx镜像。

nginx-proxy(https://github.com/jwilder/nginx-proxy)然后在VIRTUAL_HOST设置为tools.sebastienrycoyrehourcq.fr的情况下运行sharelatex就足够了。

例如

docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy

然后是

docker run -d 
-e VIRTUAL_HOST=tools.sebastienreycoyrehourcq.fr 
-v ~/sharelatex_data:/var/lib/sharelatex 
-p 5000:80 
--name=sharelatex 
sharelatex/sharelatex

子域tools.sebastienreycoyrehourcq.fr配置不正确。它不解析到任何IP地址,这就是它不工作的原因。

配置子域后,您可以使用以下命令在端口80上运行sharelatex容器:

docker run -d 
  -v ~/sharelatex_data:/var/lib/sharelatex 
  -p 80:80 
  --name=sharelatex 
  sharelatex/sharelatex

通过这种方式,您可以访问http://tools.sebastienreycoyrehourcq.fr

最新更新