2017-01-21 2 views
0

Serve ich muss mehrere Websites mit meinem Docker-Maschine in Zukunft hosten, aber ich versuche, es auf localhost zu starten.Wie paar Container mit Domain-Namen mit Docker NGINX Image

Der Hauptzweck ist sicher Seite zu bekommen, natürlich muss ich mit meiner /etc/hosts Datei auf OS X starten, unten ist die Liste:

127.0.0.1 localhost 
255.255.255.255 broadcasthost 

127.0.0.1  dev.proling.ru 
127.0.0.1  dev.vshvetsov.ru 

Diese Konfiguration ist für mich bieten Zugriff auf Websites mit ausgewählten Bereichen unabhängig von DNS-Einstellungen. Jetzt werde ich zeigen meine 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: 

Beide Baustellencontainer funktioniert perfekt auf localhost:8000 und localhost:8003 und unten ist mein nginx/volume Ordnerstruktur:

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 

So ist die einzige Art und Weise auf meine NGINX Konfiguration zu beeinflussen ist .conf Dateien in conf.d Verzeichnis zu setzen und unten sind beide:

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; 
     } 
} 

Und 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; 
    } 
} 

Antwort

0

Das Problem ist gelöst mit Umbenennungs nginx Konfigurationsdateien in conf.d. Sie müssen mit .conf Erweiterung enden, weil nginx.conf diese Zeichenfolge standardmäßig haben:

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

Natürlich steige ich oder unsere Config kopieren, wenn es praktisch ist, aber ich ziehe Standardpfad.

Verwandte Themen