質問編集履歴

2 エラーコードの追記

chikuwanabe

chikuwanabe score 12

2018/04/06 18:08  投稿

Dockerを利用したnginxで複数プロジェクトに別々のポートを設定して管理したい
vpsサーバ(centos7)にdocker-composeを使ってnginx(1.13.10),mysql(5.7)の環境を作りlaravelを動かしているのですが、
※既存のプロジェクトファイルは問題なく動いています。
DockerFileやDockercomposeの設定ファイルも変更する必要があるのでしょうか?
ご教示お願いします。
nginx/default.conf
```nginx
server {
   listen 80;
   server_name 133.242.162.205;
   root /var/www/project01/public;
   index index.php index.html index.htm;
   location / {
        try_files $uri $uri/ /index.php$is_args$args;
   }
   location ~ \.php$ {
       try_files $uri /index.php =404;
       fastcgi_pass php-upstream;
       fastcgi_index index.php;
       fastcgi_buffers 16 16k;
       fastcgi_buffer_size 32k;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       #fixes timeouts
       fastcgi_read_timeout 600;
       include fastcgi_params;
   }
   location ~ /\.ht {
       deny all;
   }
   location /.well-known/acme-challenge/ {
       root /var/www/letsencrypt/;
       log_not_found off;
   }
}
server {
   listen 8080;
   server_name 133.242.162.205;
   root /var/www/project02/public;
   index index.php index.html index.htm;
   location / {
        try_files $uri $uri/ /index.php$is_args$args;
   }
   location ~ \.php$ {
       try_files $uri /index.php =404;
       fastcgi_pass php-upstream;
       fastcgi_index index.php;
       fastcgi_buffers 16 16k;
       fastcgi_buffer_size 32k;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       #fixes timeouts
       fastcgi_read_timeout 600;
       include fastcgi_params;
   }
   location ~ /\.ht {
       deny all;
   }
   location /.well-known/acme-challenge/ {
       root /var/www/letsencrypt/;
       log_not_found off;
   }
}
```
docker-compose.yml
```
   nginx:
     build:
       context: ./nginx
       args:
         - PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER}
         - PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT}
     volumes_from:
       - applications
     volumes:
       - ${NGINX_HOST_LOG_PATH}:/var/log/nginx
       - ${NGINX_SITES_PATH}:/etc/nginx/sites-available
     ports:
       - "${NGINX_HOST_HTTP_PORT}:80"
       - "${NGINX_HOST_HTTPS_PORT}:443"
     depends_on:
       - php-fpm
     networks:
       - frontend
       - backend
```
Dockerfile
```
FROM nginx:alpine
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
ADD nginx.conf /etc/nginx/
# If you're in China, or you need to change sources, will be set CHANGE_SOURCE to true in .env.
ARG CHANGE_SOURCE=false
RUN if [ ${CHANGE_SOURCE} = true ]; then \
   # Change application source from dl-cdn.alpinelinux.org to aliyun source
   sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories \
;fi
RUN apk update \
   && apk upgrade \
   && apk add --no-cache bash \
   && adduser -D -H -u 1000 -s /bin/bash www-data
ARG PHP_UPSTREAM_CONTAINER=php-fpm
ARG PHP_UPSTREAM_PORT=9000
# Set upstream conf and remove the default conf
RUN echo "upstream php-upstream { server ${PHP_UPSTREAM_CONTAINER}:${PHP_UPSTREAM_PORT}; }" > /etc/nginx/conf.d/upstream.conf \
   && rm /etc/nginx/conf.d/default.conf
CMD ["nginx"]
EXPOSE 80 443
```
  • nginx

    1827 questions

    nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

  • Docker

    3283 questions

    Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

  • docker-compose

    1111 questions

    docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

1 docker-compose及びdockerファイルを追記しました。

chikuwanabe

chikuwanabe score 12

2018/04/05 01:47  投稿

Dockerを利用したnginxで複数プロジェクトに別々のポートを設定して管理したい
vpsサーバ(centos7)にdocker-composeを使ってnginx(1.13.10),mysql(5.7)の環境を作りlaravelを動かしているのですが、
プロジェクトを増やさなければならなくなり、新しいプロジェクトファイル設置後にnginxの設定ファイルを色々変更してみてはいるのですが、上手く表示する事が出来ません。
※既存のプロジェクトファイルは問題なく動いています。
DockerFileやDockercomposeの設定ファイルも変更する必要があるのでしょうか?
ご教示お願いします。
nginx/default.conf
```nginx
server {
   listen 80;
   server_name 133.242.162.205;
   root /var/www/project01/public;
   index index.php index.html index.htm;
   location / {
        try_files $uri $uri/ /index.php$is_args$args;
   }
   location ~ \.php$ {
       try_files $uri /index.php =404;
       fastcgi_pass php-upstream;
       fastcgi_index index.php;
       fastcgi_buffers 16 16k;
       fastcgi_buffer_size 32k;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       #fixes timeouts
       fastcgi_read_timeout 600;
       include fastcgi_params;
   }
   location ~ /\.ht {
       deny all;
   }
   location /.well-known/acme-challenge/ {
       root /var/www/letsencrypt/;
       log_not_found off;
   }
}
server {
   listen 8080;
   server_name 133.242.162.205;
   root /var/www/project02/public;
   index index.php index.html index.htm;
   location / {
        try_files $uri $uri/ /index.php$is_args$args;
   }
   location ~ \.php$ {
       try_files $uri /index.php =404;
       fastcgi_pass php-upstream;
       fastcgi_index index.php;
       fastcgi_buffers 16 16k;
       fastcgi_buffer_size 32k;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       #fixes timeouts
       fastcgi_read_timeout 600;
       include fastcgi_params;
   }
   location ~ /\.ht {
       deny all;
   }
   location /.well-known/acme-challenge/ {
       root /var/www/letsencrypt/;
       log_not_found off;
   }
}
```  
 
docker-compose.yml  
```  
   nginx:  
     build:  
       context: ./nginx  
       args:  
         - PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER}  
         - PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT}  
     volumes_from:  
       - applications  
     volumes:  
       - ${NGINX_HOST_LOG_PATH}:/var/log/nginx  
       - ${NGINX_SITES_PATH}:/etc/nginx/sites-available  
     ports:  
       - "${NGINX_HOST_HTTP_PORT}:80"  
       - "${NGINX_HOST_HTTPS_PORT}:443"  
     depends_on:  
       - php-fpm  
     networks:  
       - frontend  
       - backend  
```  
Dockerfile  
```  
FROM nginx:alpine  
 
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>  
 
ADD nginx.conf /etc/nginx/  
 
# If you're in China, or you need to change sources, will be set CHANGE_SOURCE to true in .env.  
 
ARG CHANGE_SOURCE=false  
RUN if [ ${CHANGE_SOURCE} = true ]; then \  
   # Change application source from dl-cdn.alpinelinux.org to aliyun source  
   sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories \  
;fi  
 
RUN apk update \  
   && apk upgrade \  
   && apk add --no-cache bash \  
   && adduser -D -H -u 1000 -s /bin/bash www-data  
 
ARG PHP_UPSTREAM_CONTAINER=php-fpm  
ARG PHP_UPSTREAM_PORT=9000  
 
# Set upstream conf and remove the default conf  
RUN echo "upstream php-upstream { server ${PHP_UPSTREAM_CONTAINER}:${PHP_UPSTREAM_PORT}; }" > /etc/nginx/conf.d/upstream.conf \  
   && rm /etc/nginx/conf.d/default.conf  
 
CMD ["nginx"]  
 
EXPOSE 80 443  
 
```
  • nginx

    1827 questions

    nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

  • Docker

    3283 questions

    Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

  • docker-compose

    1111 questions

    docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る