Nginx をインストールして複数のドメイン名を設定する方法

Nginx をインストールして複数のドメイン名を設定する方法

Nginx のインストール

CentOS 6.x yum にはデフォルトで nginx ソフトウェア パッケージが含まれていません

インストール方法:

nginxのダウンロードページhttp://nginx.org/en/linux_packages.html#stableにアクセスし、CENTOS 6用のnginxソフトウェアソースインストールパッケージをコピーします。

次のコマンドを実行します: wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

rpmパッケージをインストールします。yum install nginx-release-centos-6-0.el6.ngx.noarch.rpm -y。この手順では、実際にはnginxパッケージソースのみが追加されます。

yum install nginx -y を実行して nginx をインストールします。

デフォルトでは、nginx は Linux サービスとしてインストールされるため、service nginx start、stop、restart、try-restart、reload、force-reload、status を使用して nginx を操作できます。

Nginx 設定ファイル

nginx 構成ファイルは、デフォルトで /etc/nginx/nginx.conf ファイルを読み取ります。

もちろん、次のコマンドを使用して、使用される conf パスを変更することもできます。

./nginx -c confファイルの場所

相対パスまたは絶対パスを指定できます。

Linux サーバー環境に慣れていない場合は、次のコマンドを使用して nginx.conf ファイルをすばやく見つけることができます。

sudo find / -name "nginx.conf"

次のコマンドを使用することもできます

nginx を -t で実行します。

使用中の構成ファイルを出力するには:

nginx: 設定ファイル /data/nginx/conf/nginx.conf の構文は正常です
nginx: 設定ファイル /data/nginx/conf/nginx.conf のテストが成功しました

Nginx の設定は、単純な命令またはブロック命令で構成されるディレクティブで構成されています。

簡単なコマンド: listen 80;

ブロック命令は {} で囲まれ、ブロック命令には複数の単純命令とブロック命令を含めることができます。

http {
 サーバー{
 }
}

複数のドメイン名の設定

ドメイン名管理コントロールパネルでIPに対応するドメイン名を設定する場合、IPのみ設定でき、ポートまで詳細に設定することはできないことは誰もが知っています。サーバーが複数の Web アプリケーションを展開し、異なるポートを使用して起動する場合、マッピングに Nginx を使用できます。

たとえば、私のドメイン名は www.525.life です。

ドメイン名は、admin.525.life のような第 2 レベルのドメイン名に分割することもできます。

ドメイン名コントロール パネルで、両方のドメイン名をサーバーのパブリック IP 123.123.123.123 に指定しました。

この時点で、ドメイン名 www.525.life および admin.525.life へのアクセスは、ポート 80 (デフォルト) を使用する Web プログラムにのみ対応していることがわかりました。

ポート 81 でアプリケーションにアクセスする場合は、次のポートのみを使用できます。

www.525.life:81 または admin.525.life:81。

しかし、これは非常に不便です。ポートを削除してもアクセスできるようにするには、Nginx を使用してポートをマッピングする必要があります。

www.525.life はポート 8880 にアクセスし、admin.525.life はポート 8881 にアクセスすることが想定されます。次のように設定します。

 サーバ
{
 聞く 80;
 サーバー名 www.525.life;
 位置 / {
  #....
  proxy_pass http://localhost:8880;
 }
 ##### その他のディレクティブ
}
サーバ
{
 聞く 80;
 サーバー名 admin.525.life;
 位置 / {
  #....
  proxy_pass http://localhost:8881;
 }
 ##### その他のディレクティブ
}

設定に必要なのはこれだけです。 8880 と 8881 の両方をリスナー ポート 80 にマップします。

nginx を有効にするには、reload コマンドを使用します。

sudo nginx -s リロード

有効にするには、次のコマンドを使用して nginx を再起動します。

/etc/init.d/nginx を再起動

この方法では、www.525.life を使用してポート 8880 にアクセスし、admin.525.life を使用してポート 8881 にアクセスできます。

ドメイン名ごとに conf を 1 つ記述する方法

上記の例では、複数のドメイン名を持つファイルを使用しました。つまり、1 つの conf のみが使用され、サーバーが継続的に追加されました。この方法は非常に直感的ですが、ドメイン名が多すぎると管理が難しくなります。

Nginx はインポートの使用をサポートしています。つまり、最初に別の場所に新しい conf ファイルを作成することができ、conf ファイルに記録されるサーバーの情報は次のとおりです。

admin.conf の内容は次のとおりです。

サーバ
{
 聞く 80;
 サーバー名 admin.525.life;
 位置 / {
  #....
  proxy_pass http://localhost:8881;
 }
 ##### その他のディレクティブ
}

www.conf の内容は次のとおりです。

サーバ
{
 聞く 80;
 サーバー名 www.525.life;
 位置 / {
  #....
  proxy_pass http://localhost:8880;
 }
 ##### その他のディレクティブ
}

admin.conf と www.conf は両方とも /data/nginx/conf/vhost ディレクトリに配置されます。

次に、nginx.conf で import コマンドを使用します。

/data/nginx/conf/vhost/*.conf を含めます。

それでおしまい。

このコマンドは、

http{
}

中括弧で囲みます。

include コマンドは、導入されたコードをすべて nginx.conf に記述することと同じだからです。

301 リダイレクト

私たちは、多くの場合、www なしで Web サイトにアクセスできることに気付きました。これは、Nginx を通じても実現できます。上記の構成と同じように、次のように別のサーバーを追加します。

サーバ
{
 聞く 80;
 サーバー名 525.life;
 位置 / {
  #....
   proxy_pass http://localhost:8880;
 }
 ##### その他のディレクティブ
}

または301リダイレクトを行う

サーバ
{
聞く 80;
サーバー名 525.life;
書き換え^/(.*) http://www.525.life/$1 永久的;
}

404 ページを追加

404 Web ページを追加するには、次のように直接追加できます。

サーバ
{
聞く 80;
server_name www.web126.com; #ドメイン名をバインド error_page 404 /404.html;
}

直接IPアクセスを禁止する

最後に、注意が必要な別の方法があります。IP がポート 80 に直接アクセスすることを禁止したり、非ローカル ドメイン名が IP にバインドすることを禁止したりする必要がある場合があります。この場合、次のように処理して最初のサーバーに配置する必要があります。

サーバ{
listen 80 デフォルト;
サーバー名_;
403 を返します。
}

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

以下もご興味があるかもしれません:
  • nginxシグナルセットケースの詳細な説明
  • Nginx ログ管理の概要
  • CentOS の Nginx 公式 Yum ソースの設定を詳しく解説
  • Linux 上の Nginx に複数のバージョンの PHP をインストールする
  • Centos7 に PHP と Nginx をインストールする詳細なチュートリアル
  • リバースプロキシ設定を実装するためのユニバーサルnginxインターフェース
  • Vue プロジェクト nginx を非ルート ディレクトリにデプロイするときに空白が更新される問題を解決する
  • Nginxがオンになっていると、ポートが占有され、「アドレスは既に使用されています」というメッセージが表示されます。
  • 実行後にdocker nginxにアクセスできない問題の解決策
  • nginx ロードバランシングを介して https にリダイレクトする方法
  • Nginx シグナル制御

<<:  Vue v-model 関連の知識のまとめ

>>:  MySQL 学習ノート ヘルプ ドキュメント

推薦する

Angularフレームワークのビュー抽象定義の詳細な説明

序文「大規模なフロントエンド プロジェクト向け」に設計されたフロントエンド フレームワークである A...

JavaベースのMySQLバックアップテーブル操作

コアはmysqldumpとランタイムです操作は実際にはそれほど難しくありません。バックアップ操作を実...

MySQL での %% のようなファジークエリの実装

1、%: 0 個以上の任意の文字を表します。あらゆるタイプと長さの文字に一致します。場合によっては、...

jQueryはキャンバスタグを使用して検証コードを描画します

<canvas> 要素は、クライアント側のベクター グラフィックス用に設計されています。...

CSSはマウスが画像に移動したときにマスク効果を実現します

1.マスクレイヤーのHTMLコードと画像をdivに配置する.img_div に入れました。 <...

ユニアプリプロジェクトでのウォーターフォールレイアウトの実装

GitHubアドレス、気に入ったらスターを付けてくださいプラグインのプレビューチュートリアル1. プ...

Linux での mysql8.018 のインストールと設定のプロセスの詳細な説明

Windowsでのインストールの紹介:こちらもご覧ください –》WindowsでのMySQL 8.0...

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

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

複数のドメイン名に対する Nginx リバース プロキシを使用した HTTP および HTTPS サービスの実装

現在、Nginx は、Web サービスを提供するために、Windows ベースの IIS と Lin...

Vue.js プロジェクトの開始方法

目次1. Node.jsとVue 2. ローカル開発環境でフロントエンドのVueプロジェクトを実行す...

MySQL 5.7 のルートパスワードログイン問題の解決策

前回の記事でMySQLサービスが起動しない問題が解決したと分かった後、パスワードなしでrootユーザ...

mysqlはエクスポートされたデータのsqlファイルから指定されたテーブルのみをインポートすることを実装します

シナリオ昨日、システムは dbAll.sql.gz という名前の特定のデータベースのすべてのテーブル...

JavaScriptは4桁のランダム検証コードの生成を実装します

この記事の例では、JavaScriptで4桁のランダムな検証コードを生成する具体的なコードを参考まで...

Pure CSS3はdivの出入りを順番に実現します

この記事は主に、純粋な CSS3 を使用して div が順番に出入りする効果を紹介します。一定の参考...

4つのReactコンポーネントにおけるDOMスタイル設定の詳細な説明

1. インラインスタイル仮想DOMにインラインスタイルを追加するには、式を使用してスタイルオブジェク...