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

推薦する

ES6のシンボルデータ型について詳しく説明します

目次シンボルデータタイプシンボルが表示される理由シンボルの特徴シンボルの応用rbオブジェクトにupメ...

Windows 10 での MySQL 8.0.12 解凍バージョンのインストール グラフィック チュートリアル

この記事は、MySQL 8.0.12解凍版のインストールグラフィックチュートリアルを記録しています。...

LinuxのバックグラウンドでPythonプログラムを実行するいくつかの方法

1. 最初の方法は、unhup コマンドを直接使用してプログラムをバックグラウンドで実行することです...

LinuxサーバのSSHクラッキング防止方法(推奨)

1. Linuxサーバーは、/etc/hosts.denyを設定して、相手のIPがSSH経由でサー...

MycliはMySQLコマンドライン愛好家にとって必須のツールです

マイクリMyCLI は、自動補完と構文の強調表示を備えた MySQL、MariaDB、および Per...

JavaScript で文字列内の最長の単語を見つける 3 つの方法 (推奨)

この記事は、Free Code Camp の基本アルゴリズム スクリプト「文字列内の最長の単語を見つ...

webpackでHMRを手動で実装するいくつかの方法

目次1. はじめに2. GitHub 3. 基本構成プロジェクトディレクトリパッケージ.json c...

特定の MySQL テーブルの完全データと増分データをメッセージ キューに同期する - ソリューション

目次1. 当初の需要2. 解決策3. 運河の導入と設置運河の仕組み建築インストール4. 検証1. 当...

Vueでショッピングカートのすべての機能を実装する簡単な方法

主な機能は次のとおりです。製品情報を追加する製品情報を変更する単一の製品を削除する複数の製品を削除す...

Docker+Jenkinsを使用して自動的にビルドおよびデプロイする

この記事では、Docker+Jenkins の自動ビルドデプロイメントを紹介し、皆さんと共有します。...

WebpackはTypeScriptコードをパッケージ化するためのスキャフォールディングを構築します

フォルダを作成するディレクトリ構造: dabaots npm init -yを初期化して packa...

CSS3で実装されたスライドメニュー

結果:実装コード: <!DOCTYPE html><html class=&quo...

Vue は div の高さをドラッグ可能にします

この記事では、divのドラッグ可能な高さを実現するためのVueの具体的なコードを参考までに共有します...

vuexの強制リフレッシュによるデータ損失問題の分析

vuex 永続状態基本原則: すべての vuex データをローカルストレージに保存し、ページが更新さ...

HTMLファイルとは何ですか?HTMLファイルを開く方法

HTML は Hypertext Markup Language の略です。現在、ほとんどの Web...