我有一个带有 2 个容器的 docker,用于为单个站点和 jwilder/nginx-proxy 提供服务。
但是我只得到了默认的 nginx 页面,所以虚拟主机没有正确路由。
我使用https://www.rent-a-hero.de/wp/2017/06/09/use-j-wilders-nginx-proxy-for-multiple-docker-compose-projects/作为指导让自己开始做这件事,因为我想建立一个代理网络。
每个服务的 nxinx 容器都有一个 vhost 文件,并使用第四个共享 php 容器(两个 nginx 容器中的代码相同)。
$ docker run -d \
--name nginx-proxy \
-p 80:80 \
--network=nginx-proxy \
-v /var/run/docker.sock:/tmp/docker.sock:ro \
jwilder/nginx-proxy
/docker-compose.yml
version: '2'
services:
app-admin:
image: nginx:latest
container_name: app-admin
environment:
VIRTUAL_HOST: admin.app.local
VIRTUAL_PORT: 80
volumes:
- .:/var/www/html
- admin.app.conf:/etc/nginx/vhost.d/admin.app.local:ro
links:
- php
php:
image: php:7-fpm
container_name: php
volumes:
- .:/var/www/html
networks:
default:
external:
name: nginx-proxy
/admin.app.conf:
server {
server_name admin.app.local
listen 80;
listen [::]:80;
root /var/www/html;
index index.html index.php;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location / {
try_files $uri /index.php$is_args$args;
}
location ~ /\.ht {
deny all;
}
}
app.conf 在这个测试阶段基本上是相同的......结果相同
为帮助简化问题而编辑的原始文件(删除的文件基本上只是设置了所需的 nginx-proxy 容器和网络,我已经删除了示例第二个 nginx 容器)