Nginxの初期設定方法

WBOY
リリース: 2023-05-19 15:22:42
転載
1680 人が閲覧しました

基本概念

nginx の最も一般的な用途は、リバース プロキシ サービスを提供することです。では、リバース プロキシとは何でしょうか?この魔法の国では、本土の多くの同胞がフォワード プロキシを使用したことがあると思いますが、その原理は大まかに次のとおりです:

Nginxの初期設定方法

プロキシ サーバーは、クライアント側の仲介者としてリクエストを受け取ります。 、実際のクライアントを非表示にし、サーバーからリソースを取得します。プロキシ サーバーが万里の長城の外にある場合、万里の長城を越えるという目的を達成するのにも役立ちます。リバースプロキシとはその名のとおり、プロキシサーバーを逆にサーバーの仲介として利用し、実際にサービスを提供するサーバーを隠蔽するもので、原理は大まかに以下のとおりです。もちろんこれは万里の長城を迂回するためではなく、セキュリティや負荷分散などの一連の機能を実現するために行われます。いわゆるセキュリティとは、クライアントのリクエストがイントラネット サーバーに直接送信されるのではなく、プロキシを介して転送されることを意味し、この層ではセキュリティ フィルタリング、フロー制御、DDoS 防止などの一連の戦略を実装できます。負荷分散とは、バックエンドで実際にサービスを提供するサーバーの数を水平方向に拡張し、エージェントがルールに従ってリクエストを各サーバーに転送することで、各サーバーの負荷がほぼ均衡するようにすることを意味します。

そして、nginx は非常に人気のあるリバース プロキシ サービスです。 Nginxの初期設定方法

ubuntu では、コンパイルとインストールのプロセスをスキップして、直接 apt-get

コードをコピーします。コードは次のとおりです。

sudo apt-get install nginx

インストール後、次の方法で nginx サービスを直接開始できます。

コードをコピーします。 コードは次のとおりです。

sudo service nginx start

、nginx はデフォルトで設定されています。ポート 80 の転送については、ブラウザで http://locallhost にアクセスすることで確認できます。

初期設定

nginx のデフォルト設定ファイルは、

にあります。コードをコピーします。コードは次のとおりです。

/etc/nginx /nginx.conf

設定を学ぶための最良の方法は、例から始めることです。最初に他の設定を見るのではなく、nginx のデフォルト ページに関連する設定を直接見てみましょう。設定ファイルに次の行があります:

コードをコピーします コードは次のとおりです:

include /etc/nginx/sites-enabled/*;

この行は、外部構成ファイルの場合、サイト対応フォルダーにはデフォルト ファイルが 1 つだけあります。この外部構成ファイルは、nginx のデフォルト プロキシを担当します。構成コンテンツを縮小すると、次の行が表示されます。

コードをコピー コードは次のとおりです。

server {

server_name localhost;

listen 80default_server;

listen [::]:80default_server ipv6only=on;


root /usr/share/nginx/html;
indexindex.htmlindex.htm;

location/ {

try_files $uri $uri/ =404;

}
}


大規模な Web サイトには通常、多くの下位サイトがあり、それぞれに対応するサービスを提供する独自のサーバーがあります。これらの異なるサービス構成は、上記の構成におけるサーバーの意味である仮想ホストと呼ばれる概念を通じて分離できます。たとえば、Google には翻訳とアカデミックの 2 つの製品があります。nginx 構成ファイルで 2 つのサーバーを構成できます。サーバー名はそれぞれ、translate.google.com とAcademic.google.com です。このようにして、異なる URL リクエストが対応します。 nginx の対応する設定に転送し、別のバックエンド サーバーに転送します。ここでのサーバー名は、クライアントの http リクエストのホスト行と一致します。

この例では、server_name は localhost であるため、ブラウザーで localhost を介してページ設定にアクセスできます。次の 2 つの listen は、それぞれ ipv4 および ipv6 の listen ポートに対応します。8080 に設定すると、localhost:8080 経由でのみデフォルト ページにアクセスできます。

default_server は、他の http リクエストのホストが nginx に存在しない場合、このサーバーの設定を使用して処理することを意味します。たとえば、127.0.0.1 にアクセスすると、このサーバーに転送されて処理されます。

各 URL リクエストは、nginx が処理して転送するサービス (ローカル ファイル パスまたは他のサーバーのサービス パス) に対応します。このパスの照合は、位置を通じて実行されます。サーバーはドメイン名に対応する構成、場所はドメイン名の下でのより詳細なパスの構成と考えることができます。

ここでは、/ に一致する場所、つまりローカルホストの /xxx または /yyy で始まるすべてのリクエストは、次の構成を通過する必要があります。この単純かつ大雑把な一致に加えて、nginx は通常の完全な等価性やその他の細かい一致もサポートしています。マッチング方法。また、tryfiles は、nginx が次の順序でファイルにアクセスし、最初に一致したファイルを返すことを意味します。たとえば、localhost/test をリクエストすると、/test ファイルが検索され、見つからない場合は /test/ が検索され、見つからない場合は 404 が返されます。さらに、ロケーション設定で proxypass を使用してリバース プロキシと負荷分散を実装することもできますが、この最も単純な設定には

が含まれていません。ここで、root はローカル フォルダをすべての URL リクエスト パスのルートとして参照します。たとえば、ユーザーが localhost/test をリクエストした場合、nginx は /usr/share/nginx/html フォルダーでテスト ファイルを検索して返します。

index はデフォルトのアクセスページで、localhost にアクセスすると、ルートファイルパスにあるindex.htmlとindex.htmを順に自動的に検索し、最初に見つかった結果を返します。

場所高度な構成
上記の構成は、ユーザーの URL をローカル ファイルにマップするだけであり、伝説的なリバース プロキシと負荷分散は実装しません (もちろん、nginx は静的ディストリビューションを実行します)。ファイルの数も非常に印象的です)、さらに場所を設定して、それを実現する方法を見てみましょう。

設定は非常に簡単です。たとえば、実際にサービスを提供するマシンのポート 8080 にすべてのリクエストを転送したい場合は、次のようにするだけです:

コードをコピーします。コードは次のとおりです。

location / {
proxy_pass 123.34.56.67:8080;
}

このようにして、すべてのリクエストは 123.34.56.67 へのリバース プロキシになります。このようにして、リバース プロキシ機能が実装されましたが、サーバーにプロキシできる場合、どのように負荷分散を行うことができるでしょうか?これには、nginx のアップストリーム モジュールが必要です。

コードをコピーします。コードは次のとおりです:


アップストリーム バックエンド {
ip_hash;
サーバー バックエンド 1.example.com;
サーバー バックエンド 2。 example.com ;
サーバー backend3.example.com;
サーバー backend4.example.com;
}
location / {
proxy_pass http://backend;
}

上流のマシンのグループを指定し、このグループに backend という名前を付けました。このように、proxypass では、リクエストが上流のバックエンドに転送される限り、リバース プロキシと 4 台の負荷分散を実現できます。機械。 iphash は、ユーザーの IP アドレスに従って割り当てを行うバランスのとれた方法であることを示します。

設定を有効にするには、nginx を再起動する必要はなく、設定をリロードするだけで済みます。

コードをコピーします。コードは次のとおりです。

sudo service nginx reload

以上がNginxの初期設定方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!