はじめに
以前 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 サイトの他の関連記事を参照してください。

NginxとApacheにはそれぞれ独自の利点と欠点があり、選択は特定のニーズに基づいている必要があります。 1.Nginxは、非同期の非ブロッキングアーキテクチャのため、高い並行性シナリオに適しています。 2。Apacheは、モジュラー設計のため、複雑な構成を必要とする低変動シナリオに適しています。

Nginxunitは、複数のプログラミング言語をサポートし、動的構成、ゼロダウンタイム更新、組み込みのロードバランシングなどの機能を提供するオープンソースアプリケーションサーバーです。 1。動的構成:再起動せずに構成を変更できます。 2。多言語サポート:Python、Go、Java、PHPなどと互換性があります。 4。ビルトインロードバランシング:リクエストは、複数のアプリケーションインスタンスに配布できます。

nginxunitは、多言語プロジェクトや動的な構成要件に適した、apachetomcat、gunicorn、node.jsビルトインHTTPサーバーよりも優れています。 1)複数のプログラミング言語をサポートします。2)動的な構成リロード、3)高いスケーラビリティと信頼性を必要とするプロジェクトに適した組み込みの負荷分散機能を提供します。

Nginxunitは、モジュラーアーキテクチャと動的な再構成機能により、アプリケーションのパフォーマンスと管理性を向上させます。 1)モジュラー設計には、マスタープロセス、ルーター、アプリケーションプロセスが含まれ、効率的な管理と拡張をサポートします。 2)動的再構成により、CI/CD環境に適した、実行時に構成をシームレスに更新できます。 3)多言語サポートは、言語ランタイムの動的なロードを通じて実装され、開発の柔軟性が向上します。 4)イベント駆動型モデルと非同期I/Oによって高性能が達成され、高い並行性の下でも効率的なままです。 5)申請プロセスを分離し、アプリケーション間の相互の影響を減らすことにより、セキュリティが改善されます。

nginxunitを使用して、アプリケーションを複数の言語で展開および管理できます。 1)nginxunitをインストールします。 2)PythonやPHPなどのさまざまなタイプのアプリケーションを実行するように構成します。 3)アプリケーション管理に動的構成関数を使用します。これらの手順を通じて、アプリケーションを効率的に展開および管理し、プロジェクトの効率を向上させることができます。

NGINXは、高い並行接続の処理に適していますが、Apacheは複雑な構成とモジュール拡張が必要なシナリオにより適しています。 1.Nginxは、高性能と低リソース消費で知られており、高い並行性に適しています。 2. Apacheは、その安定性とリッチモジュール拡張機能で知られています。これは、複雑な構成ニーズに適しています。

Nginxunitは、動的な構成と高性能アーキテクチャにより、アプリケーションの柔軟性とパフォーマンスを向上させます。 1.動的構成により、サーバーを再起動せずにアプリケーション構成を調整できます。 2.高性能は、イベント駆動型および非ブロッキングアーキテクチャおよびマルチプロセスモデルに反映され、同時接続を効率的に処理し、マルチコアCPUを利用できます。

NginxとApacheはどちらも強力なWebサーバーであり、それぞれがパフォーマンス、スケーラビリティ、効率の点で独自の利点と短所を備えています。 1)nginxは、静的なコンテンツを処理し、逆プロキシを逆にするときにうまく機能します。 2)Apacheは、動的コンテンツを処理するときにパフォーマンスが向上し、リッチモジュールサポートが必要なプロジェクトに適しています。サーバーの選択は、プロジェクトの要件とシナリオに基づいて決定する必要があります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

WebStorm Mac版
便利なJavaScript開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ホットトピック









