Heim >Backend-Entwicklung >PHP-Tutorial >Probleme bei der Konfiguration mehrerer Domainnamen bei Docker Nginx

Probleme bei der Konfiguration mehrerer Domainnamen bei Docker Nginx

WBOY
WBOYOriginal
2016-12-05 13:44:212136Durchsuche

Der Versuch, die offizielle Nginx-Image-Konfiguration von Docker zu konfigurieren, ist fehlgeschlagen. Ich weiß sehr wenig darüber und verlasse mich im Wesentlichen auf Tutorials.
Hier ist der Prozess, den ich ausprobiert habe:
YBa

<code>docker run -d   --name YBa --restart=always  -v /Storage/Volumes/App/YBa:/usr/src/myapp php
</code>

YBb

<code>docker run -d   --name YBa --restart=always  -v /Storage/Volumes/App/YBb:/usr/src/myapp php
</code>

Nginx

<code>docker run -d -p 80:80 --name Nginx  --link YBa:yba  --link YBb:ybb  -v /Storage/Volumes/Services/Nginx/Conf/nginx.conf/nginx.conf:/etc/nginx/nginx.conf:ro --restart=always nginx</code>

Nginx.conf

<code>    user nobody nogroup;
events { 

  worker_connections 512; 
}
http { 

  upstream yba {
    server yba; 

  }
  upstream ybb {
    server ybb; 

  }
  server {
    listen *:80; 

    server_name http://app1.com; 
    location / { 

      proxy_pass http://yba/; 

      proxy_set_header   X-Real_IP $remote_addr;
      proxy_set_header   Host      $http_host;
    }
    
  }
}
  server {
    listen *:80; 

    server_name http://app2.com; 
    location / { 

      proxy_pass http://ybb/; 

      proxy_set_header   X-Real_IP $remote_addr;
      proxy_set_header   Host      $http_host;
    }
    
  }
} 
         </code>

Das Problem besteht nun darin, wie man mehrere Domänen über eine einzige Konfigurationsdatei auf mehrere Container verweisen kann.
Ich möchte wissen, ob es andere Lösungen gibt.
Wie man auf mehrere primäre Domänennamen für verschiedene Unterverzeichnisse eines einzelnen verweisen kann Behälter

Antwortinhalt:

Der Versuch, die offizielle Nginx-Image-Konfiguration von Docker zu konfigurieren, ist fehlgeschlagen. Ich weiß sehr wenig darüber und verlasse mich im Wesentlichen auf Tutorials.
Hier ist der Prozess, den ich ausprobiert habe:
YBa

<code>docker run -d   --name YBa --restart=always  -v /Storage/Volumes/App/YBa:/usr/src/myapp php
</code>

YBb

<code>docker run -d   --name YBa --restart=always  -v /Storage/Volumes/App/YBb:/usr/src/myapp php
</code>

Nginx

<code>docker run -d -p 80:80 --name Nginx  --link YBa:yba  --link YBb:ybb  -v /Storage/Volumes/Services/Nginx/Conf/nginx.conf/nginx.conf:/etc/nginx/nginx.conf:ro --restart=always nginx</code>

Nginx.conf

<code>    user nobody nogroup;
events { 

  worker_connections 512; 
}
http { 

  upstream yba {
    server yba; 

  }
  upstream ybb {
    server ybb; 

  }
  server {
    listen *:80; 

    server_name http://app1.com; 
    location / { 

      proxy_pass http://yba/; 

      proxy_set_header   X-Real_IP $remote_addr;
      proxy_set_header   Host      $http_host;
    }
    
  }
}
  server {
    listen *:80; 

    server_name http://app2.com; 
    location / { 

      proxy_pass http://ybb/; 

      proxy_set_header   X-Real_IP $remote_addr;
      proxy_set_header   Host      $http_host;
    }
    
  }
} 
         </code>

Das Problem besteht nun darin, wie man mehrere Domänen über eine einzige Konfigurationsdatei auf mehrere Container verweisen kann.
Ich möchte wissen, ob es andere Lösungen gibt.
Wie man auf mehrere primäre Domänennamen für verschiedene Unterverzeichnisse eines einzelnen verweisen kann Behälter

Sie können die entsprechende Konfigurationsdatei lokal auf conf/ konfigurieren, zum Beispiel conf/api.app2.com.conf, und sie beim Erstellen des Containers zum Container hinzufügen. Der Dockerfile-Code lautet wie folgt

<code>From nginx:1.9
MAINTAINER terry.dawu@gmail.com
ADD nginx.conf /etc/nginx/nginx.conf
ADD conf/* /etc/nginx/conf.d/
RUN mkdir /opt/www && mkdir /opt/log
RUN chmod -R 755 /opt/log /opt/www
VOLUME ["/opt"]</code>

  1. Nginx-Proxy-Verteilung, die auf verschiedene Ports dieser Maschine verweist

  2. CDN-Verteilung, die auf verschiedene Ports des Servers verweist

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn