Docker nginxは1つのホストを実装して複数のサイトを展開します

Docker nginxは1つのホストを実装して複数のサイトを展開します

とあるサイトからレンタルした仮想マシンの有効期限が近づいており、更新料が200元以上かかります。Alibaba Cloudで新しいサーバーを購入しようと思っているので、これもそちらに移行した方が良いかもしれません。実際のドメイン名を使用しますので、私のウェブサイトをハッキングしないでください。ありがとうございます。

Alibaba Cloud は、ドメイン名 www.dcssn.com を使用して直接アクセスできるサイトを展開しています。私のアイデアは、www.xhxf119.com を使用してこのホストを指し示し、異なるドメイン名に基づいてさまざまなサービスにアクセスすることです。

初め

ドメイン名解決は、このホストの IP アドレスを指す必要があります。

それから

www.dcssn.comのサービスはポート8080を開きます。docker run -p 8080:80 weian

www.xhxf119.com サービスはポート 8081 を開きます。docker run -p 8081:80 xinhua

www.dcssn.com:8080はwww.xhxf119.com:8081にもアクセスできます

次に、nginxの設定ファイルを記述します

nginx.conf
ワーカープロセス 1;
イベント {
 ワーカー接続 1024;
}
http {
 mime.types を含めます。
 デフォルトタイプ アプリケーション/オクテットストリーム;
 ファイル送信オン;
 キープアライブタイムアウト65;
 サーバ
 {
  聞く 80;
  サーバー名 www.dcssn.com;
  位置 / {
  proxy_redirect オフ;
  proxy_set_header ホスト $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  プロキシパス http://47.92.69.112:8080;
  }
 }
 
 サーバ
 {
  聞く 80;
  サーバー名 www.xhxf119.com;
  位置 / {
  proxy_redirect オフ;
  proxy_set_header ホスト $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  プロキシパス http://47.92.69.112:8081;
  }
 }
}

次に、このファイルを/host/path/ディレクトリに保存します。

docker run --name my-custom-nginx-container -v /host/path/nginx.conf:/etc/nginx/nginx.conf:ro -d -p 80:80 nginx

一般的な手順は次のようになります。www.dcssn.comまたはwww.xhxf119.comに直接アクセスして訪問することができます。

追加知識: Dockerは、異なるプロジェクトディレクトリに対応する複数のサブドメインをサポートするようにnginxを構成します。

リバースプロキシ配布を受けるチャンスがある

具体的なPHPとnginxの設定については、私のブログの設定を参照してください。

/root/nginx/conf/conf.d をコピーします

vim 実行テストphp.conf

runoob-test-php.conf ファイルの内容は、実際にはサブドメインに対応するディレクトリです。

サーバー{
 聞く 80;
 サーバー名 www.liuyuanshan.top;

 位置 / {
  #プロキシパス http://106.52.36.65:80;
  ルート /usr/share/nginx/html;
  インデックス index.php index.html index.htm;
 }

 エラーページ 500 502 503 504 /50x.html;
 場所 = /50x.html {
  ルート /usr/share/nginx/html;
 }

 場所 ~ \.php$ {
  fastcgi_passphp:9000;
  fastcgi_index インデックス.php;
  fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
  fastcgi_params を含めます。
 }
}

サーバー{
 聞く 80;
 サーバー名 message.liuyuanshan.top;

 位置 / {
  ルート /usr/share/nginx/html/message/;
  インデックス index.php index.html index.htm;
 }

 エラーページ 500 502 503 504 /50x.html;
 場所 = /50x.html {
  ルート /usr/share/nginx/html;
 }
 場所 ~ \.php$ {
  fastcgi_passphp:9000;
  fastcgi_index インデックス.php;
  fastcgi_param SCRIPT_FILENAME /var/www/html/message/$fastcgi_script_name;
  fastcgi_params を含めます。
 }
}


サーバー{
 聞く 80;
 サーバー名 wordpress.liuyuanshan.top;

 位置 / {
  ルート /usr/share/nginx/html/wordpress/;
  インデックス index.php index.html index.htm;
 }

 エラーページ 500 502 503 504 /50x.html;
 場所 = /50x.html {
  ルート /usr/share/nginx/html;
 }
 場所 ~ \.php$ {
  fastcgi_passphp:9000;
  fastcgi_index インデックス.php;
  fastcgi_param SCRIPT_FILENAME /var/www/html/wordpress/$fastcgi_script_name;
  fastcgi_params を含めます。
 }
}

Dockerのnginxコンテナを再起動する

docker nginx を再起動

docker nginx を使用して 1 つのホストに複数のサイトを展開する方法に関する上記の記事が、私が皆さんに共有できるすべてです。これが皆さんの参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • 3つのDocker Nginxログの処理の詳細な説明
  • 負荷分散と動的および静的分離操作を実現するDocker NginxコンテナとTomcatコンテナ
  • Dockerはnginxをデプロイし、フォルダとファイル操作をマウントします
  • Docker デプロイメント nginx 実装プロセスのグラフィックとテキストによる詳細な説明
  • Docker イメージ + nginx を使用して Vue プロジェクトをデプロイする方法
  • Docker ベースの nginx ファイル サーバーを構築する方法と手順
  • Docker で Nginx イメージ サーバーを構築する方法
  • Docker Nginxコンテナの制作と展開の実装方法

<<:  Vue で AES.js を使用する詳細な手順

>>:  MySQL 永続統計の詳細な説明

推薦する

角丸四角形の HTML+CSS 実装コード

退屈していたので、突然角丸四角形の実装を思いつきました。しかし、私たちはこの話題についてあまりにも長...

HTML テーブルタグについての簡単な説明

主にその構造といくつかの重要な特性について説明します。少しずつ改善しながら紹介していきます。 1) ...

ページ要素の絶対位置と相対位置に関するある程度の理解

今日から、定期的にちょっとした豆知識を整理していきます。簡単なものもあるかもしれませんが、どれも役に...

MySQL mysqldump の使い方の詳しい説明

1. mysqldump の紹介mysqldump は、MySQL に付属する論理バックアップ ツー...

HTML テーブル マークアップ チュートリアル (28): セルの境界線の色属性 BORDERCOLOR

テーブルを美しくするために、セルごとに異なる境界線の色を設定できます。基本的な構文<TD 境界...

ボリュームを使用してホストと Docker コンテナ間でファイルを転送する方法

以前、Docker コンテナとローカル マシン間のファイル転送に関する記事を書きました。しかし、この...

Ubuntu環境でのPHP関連のパスと変更方法

Ubuntu環境におけるPHP関連パスPHP パス /usr/bin/php phpize5 /us...

html-cssタグのスタイル設定が機能しない2つの理由

1 セミコロン「;」のない CSS スタイル2 タグが閉じられておらず、「>」がありません...

JavaScriptの動作メカニズムの詳細な説明とイベントループについての簡単な説明

目次1. JavaScript がシングルスレッドなのはなぜですか? 2. タスクキュー3. イベン...

ラジオボタンと複数選択ボタンは画像を使用してスタイル設定されます

ラジオ ボタンや複数選択ボタンにスタイルを追加する方法や、ボタンを大きくする方法を尋ねる人を以前見か...

CSS はスクロールバーを非表示にしてコンテンツをスクロールする効果を実現します (3 つの方法)

フロントエンド開発では、スクロールバーを非表示にしながらスクロールをサポートしなければならないという...

SQL 文で OR と AND を混在させる場合のヒント

現在、このような要件があります。ログインした人がカスタマー サービス担当者である場合、注文は「このカ...

LinuxにMySQLデータベース5.6のソースコードをインストールし、ログインユーザーのパスワードを変更する

この記事では、主に Linux で MYSQL データベースをインストールする方法について説明し、M...

良い広告にはどのような特徴が必要ですか?

広告業は人間であることに似ていると言う人がいます。これは本当です。優れた広告には、優れた人間と同じよ...

dockerfile における ENTRYPOINT と CMD の組み合わせと違い

前回の記事【dockerコンテナのためのdockerfileを詳しく解説】では、dockerfile...