1. nginx とは何ですか?nginx は、メモリをほとんど消費せず、強力な同時実行性を備えた高性能な http およびリバース プロキシ Web サーバーです。 nginx は最大 50,000 の同時接続に達することができるという報告があります。 2. nginx で何ができるのか?
2.1 フォワードプロキシとは何ですか?クライアント (ブラウザ) はプロキシ サーバーを設定し、プロキシ サーバーを介してインターネットにアクセスします。 2.2 リバースプロキシとは何ですか?クライアントはリバース プロキシ サーバーに要求を送信し、リバース プロキシ サーバーはデータを取得してクライアントに返します。 2.3 負荷分散クライアントはサーバーに複数のリクエストを送信します。サーバーはリクエストを処理し、一部のデータを取得するためにデータベースとやり取りする必要があります。サーバーは処理を完了すると、結果をクライアントに返します。 単一のサーバーで問題を解決できない場合は、サーバークラスターを構築して 2.4 静的と動的の分離ウェブサイトの解析速度を向上させるために、動的ページと静的ページは異なるサーバーによって解析され、元の単一サーバーへの負荷が軽減されます。 3. nginxの基本操作1. 使用する前に、nginxディレクトリに入ります ./nginx -v 3. nginxを起動する ./nginx 4. nginxをシャットダウンする ./nginx -s 停止 5. nginxをリロードする ./nginx -s リロード 6. nginxのステータスを確認する ps -ef | grep nginx 3.1 nginx 設定ファイル nginx/conf/nginx.conf 1. グローバルブロック 構成ファイルからイベント ブロックへのコンテンツ。 2. イベントブロック events ブロック ディレクティブは、主に nginx サーバーとユーザー間のネットワーク接続に影響します。ワーカー接続でサポートされる接続の最大数は 1024 です。 3.httpブロック 3.2 ファイアウォール設定// 開いているポート番号を表示するfirewall-cmd --list-all // 開いているポート番号を設定します。firewall-cmd --add-service=http –permanent // ファイアウォールで http サービスを永続的に開きます。firewall-cmd --add-port=80/tcp --permanent // ファイアウォールでポート 80 を永続的に開きます。// ファイアウォールを再起動します。firewall-cmd –reload IV. リバースプロキシの実装例4.1.Nginxリバースプロキシ実装例1効果: アドレスを入力してTomcatのホームページにジャンプします Nginxはリバースプロキシを設定し、主にproxy_pass設定を通じてリクエストを転送します。 1. Hostsファイルのドメイン名の設定Windows システムのホスト ファイル (C ドライブの Windods/System32/driver/etc/hosts) でドメイン名と IP の対応を設定します。 2. nginxでのリクエスト転送の設定(リバースプロキシ設定) nginx.conf主に server_name と proxy_pass の設定を変更します。
テスト成功 4.2Nginxリバースプロキシ実装事例2nginxリバースプロキシを使用して、アクセスパスに応じて異なるサービスポートにジャンプします。nginxのリスニングポートは9001です。 1. 準備 tomcat 8080をデプロイする tomcat8081をデプロイする Tomcat のデフォルトのポート番号は 8080 であるため、Tomcat のポート番号を設定する場合は、server.xml でいくつかのポートを変更して Tomcat を起動する必要があります。 2 つの tomcat ファイルで webapps を見つけ、そのディレクトリに edu と vod の 2 つのファイルを作成し、その中に html ページを配置して、ページに正常にアクセスできるかどうかをテストします。 2. nginx設定ファイルnginx.confを見つける サーバー{ 9001を聴く; サーバー名 192.168.25.101; 場所 ~ /edu/ { プロキシパス http://127.0.0.1:8080; } 場所 ~ /vod/ { プロキシパス http://127.0.0.1:8081; } } 3. アクセスポート8080 8081 9001を開きます。そうしないとアクセスできなくなります。 4. nginxを再起動してテストする 5. 負荷分散の実装例1. 成果を達成する ブラウザのアドレスに http://192.168.17.129/edu/a.html と入力すると、負荷分散効果がポート 8080 と 8081 に均等に分散されます。 2. 準備 1. tomcat 8080をデプロイし、tomcat 8081をデプロイする 2. 2つのTomcatのWebappsディレクトリにeduという名前のフォルダを作成し、そのフォルダにテスト用の2つのページa.htmlを作成します。 3. nginx設定ファイルで対応する設定を行い、httpで設定します。 アップストリーム myserver{ //サーバー名を追加します server 192.168.17.129;8080; サーバー 192.168.17.129;8081; } 次に、サーバーとロケーションを設定します。 サーバー名 192.168.17.129: 位置 /{ proxy_pass http://myserver; } 5.1nginx 負荷分散戦略
各リクエストは時系列順に異なるバックエンド サーバーに割り当てられます。バックエンド サーバーがダウンした場合は、自動的に削除されます。
重みは重みを表します。デフォルト値は1です。重みが高いほど、割り当てられるクライアントの数が多くなります。 使用: アップストリーム myserver{ //サーバー名を追加します。サーバー 192.168.17.129;8080 重み =10; サーバー 192.168.17.129;8081 重み = 20; }
各リクエストはアクセスIPのハッシュ結果に従って割り当てられ、固定バックエンドサーバーへの後続のアクセスが可能になります。
応答時間に基づいて割り当てます。 アップストリーム myserver{ //サーバー名を追加します server 192.168.17.129;8080; サーバー 192.168.17.129;8081; 公平; } 6. nginx の動的および静的分離6.1 実装プロセス異なるリクエスト転送を実現するには、場所ごとに異なるサフィックスを指定します。 expires パラメータを設定することで、ブラウザ キャッシュの有効期限を設定し、サーバーとサーバー間のリクエストとトラフィックを削減できます。 6.2 例1. 静的リソースを準備する 2. 具体的な構成
7. Nginx 構成の高可用性7.1 Nginx の高可用性とは何ですか?図からわかるように、従来の動作モードでは、nginx が 1 つしかない場合、ユーザーのリクエストは nginx を介して異なる tomcat に転送されます。 nginx の 1 つがダウンすると、サービス転送が失敗します。 そのため、nginx クラスターを構築することで、メイン サーバーの nginx がダウンしたときに、バックアップ サーバーの ngnix がユーザーのリクエストを tomcat に再転送し、高可用性を確保します。 7.2. Nginx 構成の高可用性の準備
yum インストール キープアライブ -y 7.3 高可用性構成キープアライブ設定を完了し、キープアライブ設定ファイルkeepalive.confを見つけます。 (1)/etc/keepalived/keepalivec.conf設定ファイルを変更する グローバル定義 { 通知メール{ メールアドレス フェイルオーバー@firewall.loc [email protected] } 通知メール送信者 [email protected] SMTPサーバー 192.168.17.129 SMTP_接続タイムアウト 30 ルータID LVS_DEVEL } vrrp_script chk_http_port { スクリプト "/usr/local/src/nginx_check.sh" 間隔 2 # (検出スクリプトの実行間隔) 重量2 } vrrp_インスタンス VI_1 { state BACKUP # バックアップサーバでMASTERをBACKUPに変更する interface ens33 //ネットワークカード virtual_router_id 51 # マスターマシンとバックアップマシンの virtual_router_id は同じである必要があります priority 90 # マスターマシンとバックアップマシンの優先度は異なります。マスターの値は大きく、バックアップの値は小さくなります advert_int 1 認証 認証タイプ PASS 認証パスワード 1111 } 仮想IPアドレス{ 192.168.17.50 // VRRP H 仮想アドレス } } (2)/usr/local/srcに検出スクリプトを追加する A=`ps -C nginx –no-header |wc -l` [ $A -eq 0 ]の場合 ローカル 睡眠2 if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then キルオールキープアライブ フィ フィ (3)両サーバーでnginxとkeepalivedを起動します。nginxを起動します:./nginx 7.4 テスト1). ブラウザアドレスに仮想IPアドレスを入力します: 192.168.17.50 直接アクセスできます 2) メインサーバーのnginxとkeepalivedが停止している場合でも、仮想アドレスを再度入力するとページにアクセスできます。 8. nginxの動作原理マスターとワーカー 8.1. 1人のマスターと複数のワーカーには利点がある
8.2 ワーカーは何人設定すればよいですか?
8.3. 接続数worker_connectionまず、リクエストの送信によってワーカーの接続がいくつ占有されるか?
nginx の基礎を学ぶこの記事はこれで終わりです。より関連性の高い nginx の基本コンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Web デザインにおける Less と More について語る (写真)
>>: MySQL の垂直テーブルを水平テーブルに変換する方法と最適化のチュートリアル
Web ページを作成するときに、特定のフォントを使用したい場合は、 @font-faceを介して参照...
Linux や Unix の cut コマンドは、ファイルの各行から一部を切り取って標準出力に出力す...
Dockerfileを初期化するプロジェクトの名前が express であると仮定して、expres...
MySQLで重複データを削除する詳細な例重複レコードには 2 つの意味があります。1 つは完全に重複...
最近、WeChatアプレットを書いていたとき、WeChatアプレットではすべてのリクエストインターフ...
VMware で仮想マシンを作成し、Redhat Linux オペレーティング システムをインスト...
需要背景ビジネス テーブル tb_image のデータの一部は次のとおりです。id は一意ですが、i...
この記事は主に、Nginx 7 層負荷分散のいくつかのスケジューリング アルゴリズムを紹介します。こ...
目次1. はじめに2. 使用1. @コンポーネント2. 計算、データ、方法3. @props 4. ...
ログイン + セッションストレージエフェクト表示ログインに成功すると、ユーザー ID がフロントエン...
目次ノードはMysqlに接続しますMySQLモジュールをインストールするMySQLに接続するよく使わ...
(I) 方法 1: 事前にスクリプト タグ内に直接定義します。この HTML ファイルにのみ適用され...
この記事では、MySQL の自動作成時刻と変更時刻を設定する方法について説明します。ご参考までに、詳...
MySQL交換パーティションの詳細な例序文exchange パーティションを紹介する前に、まず my...
1. Linuxグループの基本紹介Linux では、すべてのユーザーはグループに所属する必要があり、...