以NGINX为代理的多个docker容器(域)
我有一个服务器,一个IP和多个网站。
我试图做的是隔离所有的网站,每个网站在它自己的docker集装箱。
我需要的是,其NGINX作为代理,每个网站都有一个Docker容器。
我试过类似的东西(作为服务器上的根):
/ etc / hosts:
127.0.0.1 example.com
NGINXconfiguration:
http { upstream app-a { server 127.0.0.1:3000; } server { listen 80; server_name example.com www.example.com; location / { proxy_pass http://app-a; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; } } }
泊坞窗:
docker run -d -p 3000:80 coreos/apache /usr/sbin/apache2ctl -D FOREGROUND
curl example.com
:
<title>Welcome to nginx!</title>
为什么我得到NGINX响应,而不是Apache服务器响应?
如果我在Docker容器上连接,Apache服务器启动:
sudo docker exec -i -t ID /bin/bash
curl 127.0.0.1
:
<html><body><h1>It works!</h1>
另外,在远程计算机(我的电脑)上,我有test.com指向我的服务器的公共IP。 如果我访问example.com,我会得到相同的NGINX响应。
还有一个问题:这是一个好办法,隔离/运行docker集装箱上的实时网站? 还是应该寻找另一个虚拟机解决scheme?
提前致谢。
编辑:问题是在我的NGINXconfiguration文件。 奇怪的是,我从NGINX服务器没有得到任何错误。
从更改
location \ {
至
location / {
现在工作正常。 谢谢@Oliver Charlesworth。