2017-01-21 2 views
0

Мне нужно разместить несколько сайтов с моей док-машиной в будущем, но знаю, что я пытаюсь запустить его на 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; 
    } 
} 

ответ

0

Проблема решается с файлами конфигурации Nginx переименования в conf.d. Они должны заканчиваться .conf расширения, потому что nginx.conf есть эта строка по умолчанию:

include /etc/nginx/conf.d/*.conf; 

Конечно, я могу смонтировать или скопировать наш конфиг, если это более удобно, но я предпочитаю по умолчанию пути.

Смежные вопросы