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 永続統計の詳細な説明

推薦する

Navicat for Mysql 接続エラー 1251 (接続失敗) の問題を解決する

以前書いた内容が詳細さに欠けていたため、今回は修正・補足しました。ただし、以前の MySQL バージ...

MySQL Limitクエリのパフォーマンスを向上させる方法

MySQL データベース操作では、一部のクエリを実行するときにデータベース エンジンが完全なテーブル...

vue3+vite プロジェクトで svg を使用する方法の詳細なグラフィック説明

今日、vue3+viteプロジェクトの実践で、svgを使用する場合、以前の記述方法が使用できないこと...

MySQL 8.0.20 インストール チュートリアル (画像とテキスト付き) (Windows 64 ビット)

1: mysql公式サイトからダウンロードhttps://dev.mysql.com/downlo...

CSSは高さと幅を固定した要素の比例表示効果を実現します

padding-top パーセンテージを使用すると、固定幅と比例した高さの表示を実現できます。現在の...

Javascriptはセキュリティ検証に整合性属性を使用します

目次1. スクリプトタグを使用してファイルをインポートする1. ローカルファイルをインポートする2....

Baidu デッドリンクファイルを作成する方法

Baidu によって定義されているデッドリンク形式には 2 種類あります。 1: XML形式のデッド...

Vueデータ監視の原理の詳細な説明

<本文> <div id="ルート"> <h1&...

珍しいけれど役に立つJSテクニックをいくつか紹介します

序文プログラミング言語には通常、さまざまな隠されたトリックが含まれており、これらのトリックを上手に使...

VUE+SpringBootはページング機能を実装します

この記事では主に、Vue + SpringBoot でページ分割されたリストデータを実装する方法を紹...

JavaScript 上級プログラミング: 変数とスコープ

目次1. 元の値と参照値2. インスタンス3. 範囲1. 元の値と参照値6 つの単純なデータ型の値は...

impress.js プレゼンテーション層フレームワーク (デモツール) - 初めての体験

半年もブログを書いていなかったので、少し恥ずかしいです... 正月休みは、Dota をプレイしたり ...

キャンバスはスクラッチカード効果を描画します

この記事では、キャンバスでスクラッチカード効果を描画するための具体的なコードを参考までに共有します。...

Web 開発チュートリアル クロスドメイン ソリューションの詳細な説明

序文この記事では、主にWeb開発のためのクロスドメインソリューションを紹介し、参考と学習のために共有...

Eclipse は Tomcat を構成しますが、Tomcat には無効なポート解決策があります

目次1. EclipseがTomcatを構成する2. Tomcat の無効なポートの解決方法方法1:...