目次
Nginx の主なアプリケーション シナリオ
静的 Web サイトの展開
3.负载均衡器
4.缓存服务器
5.反向代理服务器
6.WebSocket服务器
ホームページ 運用・保守 Nginx Nginx の主なアプリケーション シナリオは何ですか?

Nginx の主なアプリケーション シナリオは何ですか?

May 16, 2023 pm 02:55 PM
nginx

    Nginx の主なアプリケーション シナリオ

    静的 Web サイトの展開

    nginx は、サーバー上に静的ファイルを保存できる http Web サーバーです。 (html、css、画像) は、HTTP プロトコルを通じてブラウザ クライアントに返されます。

    例: 静的リソースのindex.htmlをサーバーにデプロイします

    Nginx の主なアプリケーション シナリオは何ですか?

    index.htmlをLinux /opt/www/test

    にアップロードします

    Nginx の主なアプリケーション シナリオは何ですか?

    #nginx.conf を変更し、/test のリクエストをインターセプトする場所を追加します。root に対応する /opt/www パスは、/test の前の /slash であるルート パスを表します。

    location /test {
                root   /opt/www;
                index  index.html;
            }
    ログイン後にコピー

    nginx を開始するか、nginx をリロードします

    Nginx の主なアプリケーション シナリオは何ですか?

    アクセスしてみましょう: http://192.168.253.130/test/

    Nginx の主なアプリケーション シナリオは何ですか?

    ロード バランシング

    ロード バランシングは、ハードウェア ロード バランシングとソフトウェア ロード バランシングに分類できます

    F5、Sangfor、Array などのハードウェア ロード バランシングには利点があります。メーカーの専門チームによるサポートを受けられる 安定したパフォーマンス; 欠点は高価であることです

    #Nginx、LVS、HAProxy などのソフトウェア負荷分散。利点は、無料でオープンソースであることです。低コスト

    ポーリング方式: リクエストを順番に割り当てます。バックエンド サーバーでは、サーバーへの実際の接続数や現在のシステム負荷に関係なく、各バックエンド サーバーが平等に扱われます。

    http {
        upstream test{
        ##后端实际服务器 nginx在轮询访问以下几台服务器
            server 10.100.30.1:8080;
            server 10.100.30.2:8080;
            server 10.100.30.3:8080;
            server 10.100.30.4:8080;
        }
        server {
        ##前端拦截入口
            listen 80;
            server_name www.test.com;
            location / { 
                proxy_pass http://test;
            }
        }
    }
    ログイン後にコピー

    加重ポーリング方式: バックエンド サーバーが異なればマシン構成や現在のシステム負荷も異なる可能性があるため、耐圧性も異なります。

    高構成かつ低負荷のマシンにはより多くのリクエストを処理できるように高い重みを割り当て、低構成かつ高負荷のマシンには低い重みを割り当ててシステム負荷を軽減します。この問題は非常にうまく解決され、リクエストを順番に、重みに従ってバックエンドに分散します。

    http {
        upstream test{
        ##后端实际服务器 nginx在轮询访问以下几台服务器
            server 10.100.30.1:8080 weight=1;
            server 10.100.30.2:8080 weight=3;
            server 10.100.30.3:8080 weight=1;
            server 10.100.30.4:8080 weight=1;
        }
        server {
        ##前端拦截入口
            listen 80;
            server_name www.test.com;
            location / { 
                proxy_pass http://test;
            }
        }
    }
    ログイン後にコピー

    ソース アドレス ハッシュ方式: クライアントの IP アドレスに従って、ハッシュ関数を通じて値が計算され、その値を使用してサーバー リストのサイズのモジュロ演算が実行されます。取得されるのはクライアント要求であり、サーバーにアクセスするためのシリアル番号です。

    負荷分散にソース アドレス ハッシュ方式を使用すると、バックエンド サーバーのリストが変更されない限り、同じ IP アドレスを持つクライアントは毎回同じバックエンド サーバーにマッピングされてアクセスします。

    upstream test{
            ip_hash;
            server 10.100.30.1:8080 weight=1;
            server 10.100.30.2:8080 weight=3;
            server 10.100.30.3:8080 weight=1;
            server 10.100.30.4:8080 weight=1;
        }
    ログイン後にコピー

    最小接続数の方法: バックエンド サーバーの構成が異なるため、リクエストの処理が速くなったり、遅くなったりする可能性があります。最小接続数の方法では、現在のバックログに基づいて現在のバックログが動的に選択されます。バックエンド サーバーの接続ステータス。接続数が最も少ないサーバーが現在のリクエストを処理し、バックエンド サービスの利用効率を可能な限り向上させ、各サーバーへの責任を合理的に分散します。

    upstream test{
            least_conn;
            server 10.100.30.1:8080;
            server 10.100.30.2:8080;
            server 10.100.30.3:8080;
            server 10.100.30.4:8080;
        }
    ログイン後にコピー

    down: 特定のサービスの停止を示します

    upstream test{
            server 10.100.30.1:8080 down;
            server 10.100.30.2:8080;
            server 10.100.30.3:8080;
            server 10.100.30.4:8080;
        }
    ログイン後にコピー

    backup: バックアップサーバーを指定します 通常、他のサーバーが正常にアクセスできる限り、バックアップサーバーにはアクセスされません。他のサーバーのみ。スタンバイ サーバーは、すべてがダウンしている場合にのみ使用されるため、この方法は通常、ホット デプロイメントの実装に使用されます。コードは最初にスタンバイ サーバーに更新され、その後、通常のサーバーが停止されます。通常のサーバーのデプロイメント後完了、スタンバイ サーバーが再び待機中というステータスの場合、展開プロセス全体でユーザーはダウンタイムを経験することはありません。

    upstream test{
            server 10.100.30.1:8080 backup;
            server 10.100.30.2:8080 backup;
            server 10.100.30.3:8080;
            server 10.100.30.4:8080;
        }
    ログイン後にコピー

    • 静的プロキシ

    • ##動的と静的の分離
    • #仮想ホスト
    • Nginx の使用シナリオと例
    Nginx は、高性能、高同時実行性の HTTP サーバーであり、その逆も可能です。プロキシサーバーは、静的リソースサーバー、ロードバランサー、リバースプロキシ、キャッシュサーバー、Webサーバーなど、さまざまなシーンで利用できます。

    以下はいくつかの使用シナリオと例です:

    1. 静的リソース サーバー

    Nginx を静的リソース サーバーとして使用する場合、Nginx は要求されたファイルを直接返します。 Webサーバーの負荷を軽減します。このシナリオは通常、静的ファイルのダウンロードやビデオなどの大きなファイルへのアクセスを提供するために使用されます。

    以下は Nginx 構成の例です:

    server {
        listen       80;
        server_name  example.com;
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
        location /images/ {
            alias /var/www/images/;
        }
        location /downloads/ {
            alias /var/www/downloads/;
        }
    }
    ログイン後にコピー

    上記の構成では、Nginx はルート ディレクトリ (/) にアクセスするリクエストを /usr/share/nginx/html ディレクトリにマップします。要求されたファイルが /images/ ディレクトリ内のファイルである場合、Nginx はそれを /var/www/images/ ディレクトリにマッピングします。要求されたファイルが /downloads/ ディレクトリ内のファイルである場合、Nginx はそれをマッピングします。 /var/www/downloads/ ディレクトリに移動します。

    2. リバースプロキシ

    Nginx をリバース プロキシ サーバーとして使用する場合、Nginx はリクエストを Web サーバーに転送して処理し、処理結果をクライアントに返します。

    このシナリオは通常、負荷分散の実現、Web サーバーのセキュリティの向上、Web サーバーの実際の IP の隠蔽などに使用されます。

    以下は Nginx 構成のサンプルです:

    upstream backend {
        server backend1.example.com:8080 weight=3;
        server backend2.example.com:8080;
    }
    server {
        listen 80;
        server_name example.com;
        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    ログイン後にコピー

    上述配置中,Nginx会将访问根目录(/)的请求转发给后端的Web服务器(backend1.example.com和backend2.example.com),其中backend1.example.com的权重为3,backend2.example.com的权重为1,表示backend1.example.com的处理能力更强。

    在转发请求时,Nginx还会设置HTTP头信息中的Host和X-Real-IP字段,从而隐藏Web服务器的真实IP。

    3.负载均衡器

    在使用Nginx作为负载均衡器时,Nginx会将请求均衡地分发到多个Web服务器上,从而实现高并发、高可用的服务。这种场景通常用于Web应用程序的集群部署、分布式系统的部署等。下面是一个示例Nginx配置:

    upstream backend {
        server backend1.example.com:8080;
        server backend2.example.com:8080;
        server backend3.example.com:8080;
    }
    server {
        listen 80;
        server_name example.com;
        location / {
        proxy_pass http://backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        }
    }
    ログイン後にコピー

    上述配置中,Nginx会将请求均衡地分发到三个Web服务器(backend1.example.com、backend2.example.com和backend3.example.com)上,从而实现负载均衡。

    在转发请求时,Nginx还会设置HTTP头信息中的Host和X-Real-IP字段,从而隐藏Web服务器的真实IP。

    4.缓存服务器

    在使用Nginx作为缓存服务器时,Nginx会缓存Web服务器返回的响应,从而减少对Web服务器的请求。这种场景通常用于提高Web应用程序的性能、降低Web服务器的负载等。下面是一个示例Nginx配置:

    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
    server {
    listen 80;
    server_name example.com;
        location / {
            proxy_cache my_cache;
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    ログイン後にコピー

    上述配置中,Nginx会将Web服务器返回的响应缓存到/var/cache/nginx/my_cache目录下,并设置缓存有效期为60分钟。在缓存命中时,Nginx会直接返回缓存的响应,从而减少对Web服务器的请求。

    总之,Nginx具有很强的可扩展性和灵活性,可以根据不同的需求配置不同的使用场景。以上仅是一些示例,实际应用中还有很多其他的使用场景。

    5.反向代理服务器

    在使用Nginx作为反向代理服务器时,Nginx会将客户端请求转发到后端的Web服务器上,并将后端服务器返回的响应转发给客户端。这种场景通常用于隐藏后端服务器的真实IP、提高Web应用程序的可用性等。下面是一个示例Nginx配置:

    server {
        listen 80;
        server_name example.com;
        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    ログイン後にコピー

    上述配置中,Nginx会将客户端请求转发到http://backend上,并设置HTTP头信息中的Host和X-Real-IP字段,从而隐藏后端服务器的真实IP。

    6.WebSocket服务器

    在使用Nginx作为WebSocket服务器时,Nginx会将客户端请求转发到后端的WebSocket服务器上,并实现WebSocket协议的连接管理。这种场景通常用于实时通信、游戏等应用程序。

    下面是一个示例Nginx配置:

    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }
    server {
        listen 80;
        server_name example.com;
        location / {
            proxy_pass http://backend;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    ログイン後にコピー

    上述配置中,Nginx会将WebSocket请求转发到http://backend上,并设置HTTP头信息中的Upgrade、Connection、Host和X-Real-IP字段,从而实现WebSocket协议的连接管理。

    总之,Nginx具有很多的使用场景,可以根据不同的需求配置不同的服务器功能。以上仅是一些示例,实际应用中还有很多其他的使用场景。

    以上が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:48 PM

    Linuxでは、次のコマンドを使用して、nginxが起動されるかどうかを確認します。SystemCTLステータスNGINXコマンド出力に基づいて、「アクティブ:アクティブ(実行)」が表示された場合、NGINXが開始されます。 「アクティブ:非アクティブ(dead)」が表示されると、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にアクセスして、デフォルトのウェルカムページを表示します。

    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にアクセスできます

    Nginxクロスドメインの問題を解決する方法 Nginxクロスドメインの問題を解決する方法 Apr 14, 2025 am 10:15 AM

    Nginxクロスドメインの問題を解決するには2つの方法があります。クロスドメイン応答ヘッダーの変更:ディレクティブを追加して、クロスドメイン要求を許可し、許可されたメソッドとヘッダーを指定し、キャッシュ時間を設定します。 CORSモジュールを使用します。モジュールを有効にし、CORSルールを構成して、ドメインクロスリクエスト、メソッド、ヘッダー、キャッシュ時間を許可します。

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

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

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

    サーバーには、要求されたリソースにアクセスする許可がなく、NGINX 403エラーが発生します。ソリューションには以下が含まれます。ファイル許可を確認します。 .htaccess構成を確認してください。 nginx構成を確認してください。 SELINUXアクセス許可を構成します。ファイアウォールルールを確認してください。ブラウザの問題、サーバーの障害、その他の可能なエラーなど、他の原因をトラブルシューティングします。

    See all articles