Мне нужно разместить несколько сайтов с моей док-машиной в будущем, но знаю, что я пытаюсь запустить его на localhost.Как обслуживать пару контейнеров с именами доменов с Docker NGINX image
Основная цель состоит в том, чтобы получить определенный сайт, я, конечно, нужно начать с моей /etc/hosts
файла на OS X, ниже списка:
127.0.0.1 localhost
255.255.255.255 broadcasthost
127.0.0.1 dev.proling.ru
127.0.0.1 dev.vshvetsov.ru
Эта конфигурация обеспечит мне доступ к сайтам с выбранными доменами независимо настроек DNS. Теперь я покажу мои docker-compose.yml
:
version: '2'
services:
mysql:
build: mysql/
restart: always
volumes:
- mysql_data:/var/lib/mysql
container_name: mysql
vshvetsov:
depends_on:
- mysql
build: vshvetsov/
ports:
- 8000:80
restart: always
container_name: vshvetsov
proling:
depends_on:
- mysql
build: proling/
ports:
- 8003:80
restart: always
container_name: proling
nginx:
depends_on:
- proling
- vshvetsov
image: nginx
restart: always
ports:
- "80:80"
volumes:
- ./nginx/volume:/etc/nginx
container_name: nginx
volumes:
mysql_data:
Оба сайта контейнеров отлично работает на localhost:8000
и localhost:8003
и ниже мой nginx/volume
дерево папок:
volume
├── conf.d
│ ├── default.conf
│ ├── proling.ru
│ └── vshvetsov.ru
├── fastcgi_params
├── koi-utf
├── koi-win
├── mime.types
├── modules -> /usr/lib/nginx/modules
├── nginx.conf
├── scgi_params
├── uwsgi_params
└── win-utf
Таким образом, единственным способ воздействия на моей конфигурации Nginx является поместить .conf
файлы в каталоге conf.d
и ниже оба из них:
dev.proling.ru
server {
listen 80;
server_name www.proling.ru;
rewrite^http://proling.ru$request_uri? permanent; #301 redirect
}
server {
listen 80;
server_name proling.ru *.proling.ru;
location/{
proxy_pass http://proling;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
access_log /var/log/nginx/proling.ru-access.log;
}
}
И dev.vshvetsov.ru
server {
listen 80;
server_name www.vshvetsov.ru vshvetsov.ru dev.vshvetsov.ru;
location/{
proxy_pass http://vshvetsov;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
access_log /var/log/nginx/vshvetsov.ru-access.log;
}
}