J'ai besoin d'héberger plusieurs sites avec ma docker-machine à l'avenir, mais je sais que je suis en train de le lancer sur localhost.Comment servir des conteneurs de couple avec des noms de domaine avec l'image Docker NGINX
Le but principal est d'obtenir certain site, bien sûr, je dois commencer par mon fichier /etc/hosts
sur OS X, ci-dessous est l'annonce:
127.0.0.1 localhost
255.255.255.255 broadcasthost
127.0.0.1 dev.proling.ru
127.0.0.1 dev.vshvetsov.ru
Cette configuration offre pour moi l'accès aux sites avec des domaines choisis indépendamment des paramètres DNS. Maintenant, je vais vous montrer mes 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:
Les deux conteneurs de site fonctionne parfaitement sur localhost:8000
et localhost:8003
et ci-dessous est mon arbre nginx/volume
dossier:
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
La seule façon d'avoir un impact sur ma configuration nginx est de mettre .conf
fichiers dans le répertoire et conf.d
ci-dessous sont tous les deux:
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;
}
}
Et 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;
}
}