はじめに
以前 docker を紹介したとき、その利点の 1 つは、複数の環境を同じサーバー上に構築し、互いに分離できることであると述べました。昨日実際に運用してみたのですが、まさかこれほど落とし穴が多く、これまで一からサーバーを構築するよりも時間がかかるとは思いませんでした。何度か計画を変更してようやく解決したので、途中の悲しさは無視して操作方法についてお話します。
推奨チュートリアル: nginx チュートリアル
アーキテクチャ
laradock イメージはすでにサーバーに存在しており、laravel を実行できます。環境およびその他の PHP には、nginx、mysql、redis などが含まれます。
私のアイデアは、リバース プロキシ用に別の nginx コンテナを追加することです。サブドメイン名に従って配布します。これは、laradock またはその他のコンテナー (wordpress、python、java を含む) などに配布できます。
lradock を変更します
変更された場所は 1 つだけあり、nginx がリッスンするポートです。
1. laradock ディレクトリに入ります
2. .env ファイルを変更し、NGINX_HOST_HTTP_PORT 値を 80 から 8000 に変更します
3. nginx を停止し、docker-compose stop nginx
4. nginx を再インストールし、docker-compose build nginx
5. docker-compose up -d nginx
を起動します。現時点では、ブラウザーで正常にアクセスできません。 . nginx がポート 80 をリッスンしなくなったためです。
nginx コンテナーの追加
リバース プロキシ用の新しい nginx コンテナーを追加します。 laradockをインストールすると、すでにnginx:alpineのイメージが存在しており、コンテナを直接生成することができます。もちろん、新しいイメージを再度取得することもできます。 (Alpine バージョンを推奨します)
1. nginx イメージ ID を確認します (docker iamges)
2. 新しい nixn コンテナーを生成します (docker run --name proxy_nginx -p 80:80 -d [ nginx イメージ ID]。 -v パラメータを追加して構成ファイルをマップすることもできます。私の環境では変更が少なく、必要ありません。
3. この時点でブラウザでアクセスすると、nginx のデフォルト ページになるはずです。起動が成功したことを示します
4. 生成されたコンテナーを入力します docker exec -it proxy_nginx sh
5. vim をインストールし、apk vim を追加します
6. ホスト IP を確認します, /sbin/ip Route| awk '/default/ { print $3 }'
7. 次の内容を含む新しい構成ファイル laradock.conf を /etc/nginx/conf.d/ ディレクトリに追加します
server { listen 80; server_name you_site; location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://[宿主机IP]:8000; } }
1. コンテナを終了し、docker restart proxy_nginx
##2. ポート 8000 を開きます。こちらを参照してください##結論#この時間にアクセスすると、その中でlaradock nginxにプロキシできます。将来他のコンテナを追加したい場合は、proxy_nginx に新しいプロキシ ルールを追加するだけです。
以上がnginx を使用して複数の Docker コンテナをリバースプロキシするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。