首頁  >  文章  >  後端開發  >  docker nginx 多網域設定問題

docker nginx 多網域設定問題

WBOY
WBOY原創
2016-12-05 13:44:212080瀏覽

嘗試配置dockers官方nginx鏡像nginx.conf配置失敗,對其知之甚少基本靠找教程。
以下是我嘗試的流程:
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>

現在問題是如何透過單一設定檔完成多個網域指向多個容器的問題
想了解還有沒有其他的解決方法
如何針對單容器的不同子目錄多個主網域指向

回覆內容:

嘗試配置dockers官方nginx鏡像nginx.conf配置失敗,對其知之甚少基本靠找教程。
以下是我嘗試的流程:
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>

現在問題是如何透過單一設定檔完成多個網域指向多個容器的問題
想了解還有沒有其他的解決方法
如何針對單容器的不同子目錄多個主網域指向

可以在本機配置對應的設定檔在conf/上,例conf/api.app2.com.conf,建立容器時加入容器, dockerfile 程式碼如下

<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 代理分發,指向本機不同連接埠

  2. CDN分發,指向伺服器不同連接埠

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn