マルチポートおよびマルチドメイン名アクセスのNginx構成の実装

マルチポートおよびマルチドメイン名アクセスのNginx構成の実装

サーバーに複数のサイトを展開するには、異なるサイトにアクセスするために複数のポートを開く必要があります。プロセスは非常に簡単です。デバッグには 2 時間かかりました。記録は次のとおりです。

メインドメイン名マルチポートアクセス

DNSネームサーバーにAレコードを設定する

www.xxx.comをサーバーのIPにポイントします

必要なポートを開き、nginx設定ファイルを変更します

たとえば、ポート 80 とポート 8080 でそれぞれ 2 つのサービスが開かれているとします。

iptable がある場合は、まずポートを開きます。

iptables -A 入力 -ptcp --dport 80 -j 受け入れる
iptables -A 入力 -ptcp --dport 8080 -j 受け入れる

設定ファイルを変更します。

#パス: /usr/local/nginx/conf/nginx.conf

サーバー{
聞く 80;
サーバー名 www.xxx.com;
access_log /data/www/log/33.33.33.33_nginx.log を結合します。
インデックス index.html index.htm index.php;
/usr/local/nginx/conf/rewrite/none.conf を含めます。
ルート /data/www/website/33.33.33.33:80;


場所 ~ [^/]\.php(/|$) {
  fastcgi_pass unix:/dev/shm/php-cgi.sock;
  fastcgi_index インデックス.php;
  fastcgi.conf をインクルードします。
  }
場所 ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
  有効期限は30日です。
  access_log オフ;
  }
場所 ~ .*\.(js|css)?$ {
  有効期限は7日です。
  access_log オフ;
  }
}
サーバー{
8080を聴く;
サーバー名 A.xxx.com;
access_log /data/www/log/33.33.33.33:8080_nginx.log を結合しました。
インデックス index.html index.htm index.php;
/usr/local/nginx/conf/rewrite/none.conf を含めます。
ルート /data/www/website/33.33.33.33:8080;


場所 ~ [^/]\.php(/|$) {
  fastcgi_pass unix:/dev/shm/php-cgi.sock;
  fastcgi_index インデックス.php;
  fastcgi.conf をインクルードします。
  }
場所 ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
  有効期限は30日です。
  access_log オフ;
  }
場所 ~ .*\.(js|css)?$ {
  有効期限は7日です。
  access_log オフ;
  }
}

鍵となるのは2つのサーバーセクションです。この2つのセクションを2つの構成ファイルに分割して、

nginx.conf は、

ディレクトリの下;

サブドメインマルチポートアクセス

この種のアクセスは無意味です。ポート 8080 へのアクセスは http://xxx.com:8080 の形式である必要があるためです。

また、2 つの異なる cgi がある場合、たとえば、ポート 80 は PHP Web サービスに対応し、ポート 8080 は nodejs Web サービスに対応します。nodejs には、すでにポート 8080 でリッスンしている Web サービスが付属している場合は、どうすればよいでしょうか。

この時点で、Nginxのリバースプロキシ機能が必要となり、DNSサーバーにAレコードを追加して最終的に実現します。

  • www.xxx.com はポート 80 にアクセスします
  • A.xxx.comはnginx転送を通じてポート8080にアクセスします

Aレコードを追加する

A.xxx.comをサーバーのIPにポイントする

Nginx 構成テンプレートは次のとおりです。

#パス: /usr/local/nginx/conf/nginx.conf

サーバー{
  聞く 80;
  サーバー名 www.xxx.com;
  access_log /data/www/log/33.33.33.33_nginx.log を結合します。
  インデックス index.html index.htm index.php;
  /usr/local/nginx/conf/rewrite/none.conf を含めます。
  ルート /data/www/website/33.33.33.33:80;


  場所 ~ [^/]\.php(/|$) {
    fastcgi_pass unix:/dev/shm/php-cgi.sock;
    fastcgi_index インデックス.php;
    fastcgi.conf をインクルードします。
    }
  場所 ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
    有効期限は30日です。
    access_log オフ;
    }
  場所 ~ .*\.(js|css)?$ {
    有効期限は7日です。
    access_log オフ;
    }
}

サーバー{
  聞く 80;
  聞く [::]:80;

  サーバー名 A.XXX.com;

  proxy_connect_timeout 300秒;
  proxy_send_timeout 300秒;
  proxy_read_timeout 300秒;
  fastcgi_send_timeout 300秒;
  fastcgi_read_timeout 300秒;

  位置 / {
    プロキシパス http://127.0.0.1:3000;
    プロキシ_http_バージョン 1.1;
    proxy_set_header アップグレード $http_upgrade;
    proxy_set_header 接続 'アップグレード';
    proxy_set_header ホスト $host;
    proxy_cache_bypass $http_upgrade;
    try_files $uri $uri/ =404;
  }
}

nginxは設定ファイルを再読み込みします

nginx -s リロード

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • nginx での tp5 の設定アクセスを変更する問題を解決する
  • 同じ IP のアクセス頻度を制限するように nginx を設定する方法
  • nginx ssl を設定して https アクセスを実装する手順 (初心者向け)
  • 異なるドメイン名への PC または携帯電話のアクセスを区別するように Nginx を構成する方法
  • Nginxのアクセス制限設定の詳細な説明
  • SSL モジュール構成を使用して HTTPS アクセスをサポートする nginx の詳細な説明
  • nginx を使用して wgcloud へのアクセスを構成する方法

<<:  React リストバーとショッピングカートコンポーネントの使用の詳細な説明

>>:  MySQLデータベースの追加、削除、変更操作の詳細な説明

推薦する

autoconfを使用してMakefileを生成し、プロジェクトをコンパイルする手順

序文Linux では、コンパイルとリンクには Makefile を使用する必要がありますが、適切な ...

ウェブデザインにおける円形要素の使用例 25 選

本日の投稿では、Web デザインで使用される円形要素の優れた例をいくつか挙げ、美しい丸いボタン、メニ...

Centos7.3 Nginx をインストールして展開し、https を設定する方法

設置環境1. gccのインストールnginxをインストールするには、まず公式サイトからダウンロードし...

vue+element を使用した Google プラグインの開発プロセス全体

シンプルな機能: ブラウザの右上隅にあるプラグイン アイコンをクリックすると小さなポップアップ ウィ...

MySQLデュアルマスター(マスターマスター)アーキテクチャ構成ソリューション

企業では、データベースの高可用性は常に最優先事項です。多くの中小企業は、MySQL マスター スレー...

HTTPS の原則の説明

HTTPS ウェブサイトの構築コストが下がるにつれて、ほとんどのウェブサイトが HTTPS プロトコ...

Windows で mysql-8.0.18-winx64 をインストールするチュートリアル (画像とテキスト付き)

1. インストールパッケージをダウンロードするインストール パッケージは次の場所にあります:参考:...

Docker Compose ネットワーク設定の説明

基本概念デフォルトでは、Compose はアプリケーション用のネットワークを作成し、サービスの各コン...

nginx がドメイン名アクセス用に設定されている場合にドメイン名の後に 2 つのスラッシュ // が表示される問題の解決方法

最近、個人のウェブサイトを書き直しました。Alibaba Cloudで新しいサーバーを購入しました。...

VMware ワークステーションの仮想マシンの互換性の問題に対する解決策

VMware ワークステーションの仮想マシンの互換性の問題を解決するにはどうすればよいですか?ノート...

RHEL8 で静的 IP アドレスを設定するさまざまな方法の簡単な分析

Linux サーバーで作業している場合、ネットワーク カード/イーサネット カードに静的 IP アド...

すべてのブラウザとの完全な互換性を実現するために最適なプリセットを選択してください

各ブラウザの select タグのプロパティと各ブラウザのサポートが多少異なるため、各ブラウザでの選...

Vue エクスポート Excel 機能の全プロセス記録

目次1. フロントエンドのリーディングプロセス: 2. プラグインの使用と初期化2.1 vue-ad...

MySQLで現在の時間間隔の前日のデータをクエリする

1. 背景実際のプロジェクトでは、分散スケジュールされたタスク実行の状況に遭遇することがあります。ス...

MySQLの実行原理、論理階層化、データベース処理エンジンの変更について詳しく説明します

長い間 MySQL を使ってきたので、SQL 文はすでに覚えていると思います。そこで、その実行原理を...