ホームページ 運用・保守 Nginx nginx はサードパーティのモジュールを追加します

nginx はサードパーティのモジュールを追加します

Oct 26, 2020 pm 04:23 PM
nginx

nginx はサードパーティのモジュールを追加します

#目的:

nginx-sticky-module を例として、サードパーティによって作成されたプラグインを追加します (以下、sticky と呼びます)

through/usr/local /nginx/sbin/nginx -V nginx のインストール済みモジュールの表示

(推奨チュートリアル:

nginx チュートリアル)

sticky モジュールと Ip_hash は両方とも負荷分散アルゴリズムに関連していますが、相違点があります。違いは次のとおりです:

1. IP ハッシュ、クライアントの IP に基づいてリクエストをさまざまなサーバーに割り当てます

2. スティッキー、サーバーによってクライアントに与えられる Cookie、クライアントが再度リクエストすると、この Cookie が取得され、nginx はこの Cookie を含むリクエストを Cookie を発行したサーバーに転送します。

注: コンピューターは 3 台あります。 LAN 内にあり、イントラネット IP は 3 つありますが、リクエストを開始すると、外部 IP は 1 つだけであり、通信事業者によって接続先のルーターに割り当てられます。ip_hash メソッドが使用される場合、Nginx はスティッキー モジュールが使用されている場合、次のことを達成するために Cookie を使用してリクエストをサーバーに分散します: イントラネット NAT ユーザーのバランス。これは iphash ではできないことです。

Sticky は機能します:

Sticky は Cookie に基づいた負荷分散ソリューションです。Cookie を配布して識別することにより、同じクライアントからのリクエストが同じサーバー上に分類されます。デフォルトの Cookie 識別名は、ルート:

1 です。クライアントが初めてアクセス リクエストを開始します。nginx がそれを受信すると、リクエスト ヘッダーに Cookie がないことがわかり、リクエストをポーリング方式でバックエンドサーバーに接続します。

2. バックエンド サーバーはリクエストを処理した後、応答データを nginx に返します。

3. このとき、nginx はルート付きの Cookie を生成し、クライアントに返します。 Route の値はバックエンド サーバーに対応し、プレーン テキストまたは md5 や sha1 などのハッシュ値にすることができます

4. クライアントはリクエストを受信し、ルートとともに Cookie を保存します。

5. クライアントが次回リクエストを送信するとき、ルートが取得され、nginx は受信した Cookie のルート値に基づいて、対応するバックエンド サーバーにそのルートを転送します。

Sticky公式サイトアドレス

公式アドレス:

https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/src
ログイン後にコピー

ダウンロードアドレス:

wget https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/master.tar.gz
ログイン後にコピー

Nginxのインストール Stickyモジュール

#1.下载的文件上传,解压
tar -xvzf nginx-goodies-nginx-sticky-module-ng-08a395c66e42.tar

#2.重命名为nginx-sticky-module
mv nginx-goodies-nginx-sticky-module-ng-08a395c66e42 /usr/local/nginx-sticky-module

#3.进入nginx源码目录进行编译
./configure --prefix=/usr/local/nginx --add-module=/usr/local/nginx-sticky-module --with-http_stub_status_module --with-http_ssl_module 

#4.安装
 1.停止nginx后进行安装:make && make install
 2.在线更新安装: make upgrade
ログイン後にコピー

インストールは完了したら、./sbin/nginx -V でコンパイル パラメータを確認します。スティッキー モジュールが nginx

[root@bogon nginx]# ./sbin/nginx -V
nginx version: nginx/1.16.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --add-module=/usr/local/nginx-sticky-module --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module
ログイン後にコピー

にコンパイルされていることがわかります。nginx.conf を変更し、スティッキー関数

upstream zyi {
    #使用sticky,不设置expires则浏览器关闭时结束会话
    sticky domain=zy.csxiuneng.com path=/;
    server localhost:9001;
}

server {
     listen       80;
     server_name  zy.csxiuneng.com;
     access_log  logs/zy.access.log  main;
     location / {
        
         proxy_pass http://zyi;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header Host $host;
         client_max_body_size 10m;
         client_body_buffer_size 256k;
         proxy_connect_timeout 90;
         proxy_send_timeout 90;
         proxy_buffer_size 4k;
         proxy_buffers 4 32k;
     }
ログイン後にコピー

を有効にします。 Sticky 構文:

sticky [name=route] [domain=.foo.bar] [path=/] [expires=1h] 
       [hash=index|md5|sha1] [no_fallback] [secure] [httponly];
    [name=route]       设置用来记录会话的cookie名称
    [domain=.foo.bar]    设置cookie作用的域名
    [path=/]          设置cookie作用的URL路径,默认根目录
    [expires=1h]        设置cookie的生存期,默认不设置,浏览器关闭即失效
    [hash=index|md5|sha1]   设置cookie中服务器的标识是用明文还是使用md5值,默认使用md5
    [no_fallback]       设置该项,当sticky的后端机器挂了以后,nginx返回502 (Bad Gateway or Proxy Error) ,而不转发到其他服务器,不建议设置
    [secure]          设置启用安全的cookie,需要HTTPS支持
    [httponly]         允许cookie不通过JS泄漏,没用过
ログイン後にコピー

Nginx を再起動します: ./sbin/nginx -s reload

アクセス: zy.csxiuneng.com、Cookie の 1 つが Route

## であることがわかります。

nginx はサードパーティのモジュールを追加します#注:

1. 同じクライアントが起動時に複数のリクエストを同時に開始すると、異なるバックエンド サーバーに転送される可能性があります

2。 Cookie は最初にサーバーによって配置されます。クライアントが Cookie を無効にすると、Cookie は有効になりません。

3. クライアントは Cookie を持ち込まない可能性があります。Android クライアントがリクエストを送信するとき、通常、すべての Cookie が持ち込まれるわけではありません。どの Cookie が持ち込まれるかを明確に指定する必要があります。負荷分散に Sticky を使用したい場合は、Android 開発に Cookie を追加してください。
4. Cookie 名は、ビジネスで使用される Cookie と同じ名前であってはなりません。 Sticky のデフォルトの Cookie 名は、route ですが、任意の値に変更できます (##5)。クライアントによって送信される最初のリクエストには Cookie が含まれません。サーバーによって発行された Cookie は、クライアントの次のリクエストでのみ有効になります。
6.Nginx スティッキー モジュールは ip_hash と同時に使用できません

複数のサードパーティ モジュールを追加する場合は、複数の --add-module 命令を使用します:

./configure --prefix=/usr/local/nginx --add-module=/usr/local/nginx-sticky-module/ --add-module=/usr/local/nginx-http-concat-1.2.2/
ログイン後にコピー

以上がnginx はサードパーティのモジュールを追加しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Nginxが開始されるかどうかを確認する方法 Nginxが開始されるかどうかを確認する方法 Apr 14, 2025 pm 01:03 PM

nginxが開始されるかどうかを確認する方法:1。コマンドラインを使用します:SystemCTLステータスnginx(Linux/unix)、netstat -ano | FindStr 80(Windows); 2。ポート80が開いているかどうかを確認します。 3.システムログのnginx起動メッセージを確認します。 4. Nagios、Zabbix、Icingaなどのサードパーティツールを使用します。

Windowsでnginxを構成する方法 Windowsでnginxを構成する方法 Apr 14, 2025 pm 12:57 PM

Windowsでnginxを構成する方法は? nginxをインストールし、仮想ホスト構成を作成します。メイン構成ファイルを変更し、仮想ホスト構成を含めます。 nginxを起動またはリロードします。構成をテストし、Webサイトを表示します。 SSLを選択的に有効にし、SSL証明書を構成します。ファイアウォールを選択的に設定して、ポート80および443のトラフィックを許可します。

nginxでクラウドサーバードメイン名を構成する方法 nginxでクラウドサーバードメイン名を構成する方法 Apr 14, 2025 pm 12:18 PM

クラウドサーバーでnginxドメイン名を構成する方法:クラウドサーバーのパブリックIPアドレスを指すレコードを作成します。 NGINX構成ファイルに仮想ホストブロックを追加し、リスニングポート、ドメイン名、およびWebサイトルートディレクトリを指定します。 nginxを再起動して変更を適用します。ドメイン名のテスト構成にアクセスします。その他のメモ:SSL証明書をインストールしてHTTPSを有効にし、ファイアウォールがポート80トラフィックを許可し、DNS解像度が有効になることを確認します。

Nginxが起動されているかどうかを確認する方法は? Nginxが起動されているかどうかを確認する方法は? Apr 14, 2025 pm 12:48 PM

Linuxでは、次のコマンドを使用して、nginxが起動されるかどうかを確認します。SystemCTLステータスNGINXコマンド出力に基づいて、「アクティブ:アクティブ(実行)」が表示された場合、NGINXが開始されます。 「アクティブ:非アクティブ(dead)」が表示されると、nginxが停止します。

nginxサーバーを開始する方法 nginxサーバーを開始する方法 Apr 14, 2025 pm 12:27 PM

NGINXサーバーを起動するには、異なるオペレーティングシステムに従って異なる手順が必要です。Linux/UNIXシステム:NGINXパッケージをインストールします(たとえば、APT-GetまたはYumを使用)。 SystemCtlを使用して、NGINXサービスを開始します(たとえば、Sudo SystemCtl Start NGinx)。 Windowsシステム:Windowsバイナリファイルをダウンロードしてインストールします。 nginx.exe実行可能ファイルを使用してnginxを開始します(たとえば、nginx.exe -c conf \ nginx.conf)。どのオペレーティングシステムを使用しても、サーバーIPにアクセスできます

nginx304エラーを解く方法 nginx304エラーを解く方法 Apr 14, 2025 pm 12:45 PM

質問への回答:304変更されていないエラーは、ブラウザがクライアントリクエストの最新リソースバージョンをキャッシュしたことを示しています。解決策:1。ブラウザのキャッシュをクリアします。 2.ブラウザキャッシュを無効にします。 3.クライアントキャッシュを許可するようにnginxを構成します。 4.ファイル許可を確認します。 5.ファイルハッシュを確認します。 6. CDNまたは逆プロキシキャッシュを無効にします。 7。nginxを再起動します。

Linuxでnginxを開始する方法 Linuxでnginxを開始する方法 Apr 14, 2025 pm 12:51 PM

Linuxでnginxを開始する手順:nginxがインストールされているかどうかを確認します。 systemctlを使用して、nginxを開始してnginxサービスを開始します。 SystemCTLを使用して、NGINXがシステムスタートアップでNGINXの自動起動を有効にすることができます。 SystemCTLステータスNGINXを使用して、スタートアップが成功していることを確認します。 Webブラウザのhttp:// localhostにアクセスして、デフォルトのウェルカムページを表示します。

nginx403を解く方法 nginx403を解く方法 Apr 14, 2025 am 10:33 AM

Nginx 403禁止エラーを修正する方法は?ファイルまたはディレクトリの許可を確認します。 2。HTACCESSファイルを確認します。 3. nginx構成ファイルを確認します。 4。nginxを再起動します。他の考えられる原因には、ファイアウォールルール、Selinux設定、またはアプリケーションの問題が含まれます。

See all articles