【Docker備忘録】nginxで複数ポートで複数サイトを設定する

コンテナ仮想化ソフト「Docker」を使って、その上で「nginx」を動かし、「Laravel」によるアプリケーション開発をしています。

Laravelアプリを複数開発する際、「laradock」の「.env」の「APP_CODE_PATH_HOST」をアプリ先に書き換え、nginxを再起動してましたが、面倒なので複数のポート(8888ポートを追加)にて運用する事にしました。

★環境
 ベースOS:Windows10
 仮想コンテナ:Docker
 ウェブサーバー:nginx

★現在のウェブサーバー
 ポート80:LaravelアプリA

★変更後のウェブサーバー
 ポート80:LaravelアプリA
 ポート8888:LaravelアプリB

目次

Dockerの設定変更

「laradock」にある「docker-compose.yml」の設定を変更します。

「nginx」の設定項目があるので、「– “8888:8888”」を追記します。

### NGINX Server #########################################
⌇
<中略>
⌇
      ports:
        - "${NGINX_HOST_HTTP_PORT}:80"
        - "8888:8888"
        - "${NGINX_HOST_HTTPS_PORT}:443"
        - "${VARNISH_BACKEND_PORT}:81"

nginxの設定変更

「laradock」にある「nginx」のconfを変更します。

まずは「laradock/nginx/sites/default.conf」にあるroot設定を変更します。

コメントアウト:#root /var/www/public;

追記:root /var/www/Laravel-appA/public;

server {

    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    server_name localhost;
    #root /var/www/public;
    root /var/www/Laravel-appA/public;
    index index.php index.html index.htm;

今度は 「laradock/nginx/sites/」 に新しいく追加するサイト設定を作成します。

基本的には「default.conf」の設定をコピーして、ポート番号を8888rootをLaravelアプリBにします。

server {

    listen 8888;
    listen [::]:8888 ipv6only=on;

    server_name localhost;
    root /var/www/Laravel-appB/public;
    index index.php index.html index.htm;

nginxのイメージを再起動する事で、ブラウザからアプリ毎アクセスが可能です。

■LaravelアプリA
 http://localhost/

■LaravelアプリB
 http://localhost:8888/

よかったらシェアしてね!
目次
閉じる