我正在我的Ubuntu服务器上设置一些容器。我用这种方式创建了两个简单的图像:
Dockerfile:static-site
FROM nginx:alpine
COPY ./site/ /usr/share/nginx/htmlDockerfile:static-content
FROM nginx:alpine
COPY ./assets/ /usr/share/nginx/htmlDockerfile位于不同的位置
在这里之前一点问题都没有。我安装了nginx代理并使用VIRTUAL_HOST运行它们:
docker run -d -p 80 -e VIRTUAL_HOST=mysite.com static-site
docker run -d -p 80 -e VIRTUAL_HOST=static.mysite.com static-content结果是,无论我在浏览器中输入了什么地址,它总是将我重定向到mysite.com。
我做错了什么?
另外,我有这样的DNS记录:
*.mysite.com 86400 A 0 xxx.xxx.xx.xx (the ip of mysite.com)会不会是问题所在?
发布于 2020-02-23 15:35:47
您不能将两个容器绑定到同一个端口("80")。最有可能是第二个容器死了(您可以通过运行docker ps来验证这一点)。或者它使用自动分配的端口运行。
docker ps --format " {{.Image}} ==> {{.Ports}}"
nginx ==> 0.0.0.0:32769->80/tcp
nginx ==> 0.0.0.0:32768->80/tcp要解决此问题,您可以为容器使用不同的端口,并将DNS配置为链接到负载均衡器(因此您可以配置目标端口),或者切换到具有多个服务器定义的单个Nginx。
Dockerfile:
FROM nginx:alpine
COPY ./site/ /usr/share/nginx/site_html
COPY ./assets/ /usr/share/nginx/assets_html
COPY ./site.conf /etc/nginx/conf.d/default.confNginx Config:
server {
listen 80;
server_name mysite.com;
root /usr/share/nginx/site_html;
}
server {
listen 80;
server_name static.mysite.com;
root /usr/share/nginx/static_html;
}https://stackoverflow.com/questions/60361553
复制相似问题