目次
1. 動的リソースと静的リソース。リソース
クライアントによって要求されたページが静的 Web ページの場合、サーバーは静的 Web ページのコンテンツをクライアントに直接応答します。クライアントが動的 Web ページをリクエストした場合、サーバーはまず動的 Web ページを静的 Web ページに置き換えてから、変換された静的 Web ページにクライアントに応答する必要があります
基本的な考え方は、データ伝送の速度と安定性に影響を与える可能性のあるインターネット上のボトルネックやリンクを可能な限り回避し、コンテンツ伝送をより速く、より安定させることです。 CDN システムは、ネットワーク全体にノード サーバーを配置して、既存のインターネットに基づいたインテリジェントな仮想ネットワークの層を形成することで、ネットワーク トラフィック、各ノードの接続と負荷の状態、およびユーザーまでの距離をリアルタイムで分析できます。ユーザーのリクエストをユーザーに最も近いサービス ノードにリダイレクトするための応答時間などの包括的な情報。その目的は、ユーザーが必要なコンテンツを近くで入手できるようにし、インターネットネットワークの混雑状況を解消し、ユーザーのウェブサイトへのアクセスの応答速度を向上させることです。
5、クロスサイトアクセス
6. アンチホットリンク
2プロキシとしての Nginx サービス
param参数解释:
调度算法:
四、Nginx作为缓存服务
1、缓存的类型
2、常用缓存配置
2、清除指定缓存
3、如何让部分页面不缓存
4、大文件分片请求

Nginxシナリオの練習

May 07, 2018 am 11:05 AM
nginx シーン 練習する

この記事では主に Nginx に関する実践を紹介します。これを必要とする友人に共有します

1. 動的リソースと静的リソース。リソース

クライアントによって要求されたページが静的 Web ページの場合、サーバーは静的 Web ページのコンテンツをクライアントに直接応答します。クライアントが動的 Web ページをリクエストした場合、サーバーはまず動的 Web ページを静的 Web ページに置き換えてから、変換された静的 Web ページにクライアントに応答する必要があります

数種類の静的リソース

    ブラウザのレンダリング: HTML、CSS、JAVASCRIPT
  • 写真: JPEG、GIF、PNG...
  • ビデオ: FLV、MPEG...
  • ファイル: TXTなど、任意のダウンロードファイル
  • 2 , CDN(Content Delivery Network)コンテンツ配信ネットワーク

基本的な考え方は、データ伝送の速度と安定性に影響を与える可能性のあるインターネット上のボトルネックやリンクを可能な限り回避し、コンテンツ伝送をより速く、より安定させることです。 CDN システムは、ネットワーク全体にノード サーバーを配置して、既存のインターネットに基づいたインテリジェントな仮想ネットワークの層を形成することで、ネットワーク トラフィック、各ノードの接続と負荷の状態、およびユーザーまでの距離をリアルタイムで分析できます。ユーザーのリクエストをユーザーに最も近いサービス ノードにリダイレクトするための応答時間などの包括的な情報。その目的は、ユーザーが必要なコンテンツを近くで入手できるようにし、インターネットネットワークの混雑状況を解消し、ユーザーのウェブサイトへのアクセスの応答速度を向上させることです。

3. 設定構文

    sendfile (ファイル読み取り)
    設定構文: sendfile on|off;
  • デフォルト: なし
  • コンテキスト: http、サーバー、場所 (場所にある場合)
tcp_nopush (sendfileがオンになっている場合のネットワークパケットの送信効率を向上させます)
    • 設定構文: tcp_nopush on|off;
    • デフォルト: なし
    • コンテキスト: http、サーバー、 location
    tcp_nolay (キープアライブ接続下で、ネットワークパケットのリアルタイム送信を改善します)
    • 設定構文: tcp_nodely on|off;
    • デフォルト: None
    • Conテキスト: http、サーバー、Locationigzip (圧縮)
    設定文法: gzip オン | オフ
  • デフォルト: いいえ
    • コンテキスト: http、サーバー、ローカルの場合
    • gizp_comp_level (圧縮率)
    • 設定構文: gzip_comp_level レベル;

    デフォルト: なし;
  • コンテキスト: http、サーバー、場所
    • gzip_http_version(gzip_comp_level) p)
    • 設定構文: gzip_http_version 1.0|1.1;
    • デフォルト: なし
  • コンテキスト: http、サーバー、場所
    • gzip_static (先読みgzip関数)
    • 設定構文: gzip_static on|オフ|常に;
    • デフォルト: gzip_static off;
  • コンテキスト: http、サーバー、場所
    • 4. ブラウザキャッシュ
    • HTTP プロトコルによって定義されたキャッシュメカニズム (有効期限、キャッシュ制御など) .)

    • ブラウザキャッシュなし:

    ブラウザリクエスト→キャッシュなし→WEBサーバーリクエスト→リクエスト応答、ネゴシエート→提示

      クライアントはキャッシュあり
      • ブラウザリクエスト→キャッシュ→有効期限の検証 → 提示
      検証有効期限の仕組み
      • 検証方法

      • 対応するヘッダ情報
    有効期限が切れているかどうかを検証 Expires,年齢)Etag
    プロトコル内のEtagヘッダー情報検証
    Last-Modifiedには情報検証があります Last-Modified
    • 最初のリクエスト:

    Nginxシナリオの練習

    • 2番目のリクエスト:

    Nginxシナリオの練習

    • -Control、Expires)

      • 設定構文: [変更された] 時間の期限切れ; エポックの期限切れ |max |off;

      • デフォルト: 期限切れ;

      • コンテキスト: http、サーバー、場所 (場所にある場合)

    5、クロスサイトアクセス

    方法Nginx はクロスサイト アクセスを可能にしますか? Access-Controller-Allow-Origin
    • add_header

      • 設定構文: add_header name value [always];

      • デフォルト: なし

      • コンテキスト: http、サーバー、場所(場所にある場合)

    name は、Access-Controller-Allow-Origin および Access-Controller-Allow-Method にすることができます

    6. アンチホットリンク

    http_refer アンチホットリンク構成モジュールに基づく
    • 構成構文: valid_referers none|blocked |server_names| 文字列...;

    • デフォルト: なし

    • コンテキスト: サーバー、場所

    valid_referers none blocked IP
    if($invalid_referer) {
        return 403;
    }
    ログイン後にコピー

    リマインダー: 構成された反リーチングをテストするには、curl を使用できます: curl -e "http:www.baidu.com" -I IP


    2プロキシとしての Nginx サービス

    • フォワードプロキシ

      • オブジェクトはクライアントです(たとえば、外部ネットワークにアクセスしたい場合は、プロキシサーバーをプロキシアドレスに設定すると、クライアントは任意のWebサイトにアクセスできます) )

    • リバースプロキシ

      • オブジェクトはサーバーです (アクセスしているサーバーを気にする必要はありません。リバースプロキシはサーバー上に配置されます。リバースプロキシはリクエストの処理に役立ちます) )

    • proxy_pass

      • 設定 構文: proxy_pass URL;

      • デフォルト: なし

      • コンテキスト: location、locationの場合はlimit_excel

    他のプロキシの構文補足:
    • proxy_buffering(buffer)

      • 構文設定: proxy_buffering on | off
      • デフォルト: なし;
      • コンテキスト: http、サーバー、場所
      • 拡張機能: proxy_buffer_size、 proxy_buffers、proxy_busy_buffers_size
      proxy_redirect(jump Redirect)
      • 設定構文: proxy_redirect デフォルト;proxy_redirect オフ;proxy_redirect リダイレクトの置換;
      • デフォルト: none
      • コンテキスト: http、サーバー、場所
      proxy_set_header (ヘッダー情報)
      • 設定構文: proxy_set_header ファイル値;
      • デフォルト: proxy_set_header ホスト $proxy_host;proxy_set_header 接続終了;
      • コンテキスト: http、サーバー、場所
      • 拡張子: proxy_hide_header 、 proxy_set_body
      proxy_connect_timeout (タイムアウト)
      • 設定構文: proxy_connect_timeout time;
      • デフォルト: なし
      • コンテキスト: http、サーバー、場所
      • 拡張子: proxy_read_timeout、proxy_send _timeout
      設定ファイル 例:
    proxy_pass http://127.0.0.1:8080;
    proxy_redirect default;
    
    proxy_set_header HOST $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    
    proxy_connect_timeout 30;
    proxy_send_timeout 60;
    proxy_read_timeout 60;
    
    proxy_buffer_size 32k;
    proxy_buffering on;
    proxy_buffers 4 128k;
    proxy_busy_buffers_size 256k;
    proxy_max_temp_file_size 256k;
    ログイン後にコピー
    3. 負荷分散サービスとしての Nginx

    負荷分散
    : 既存のネットワーク構造上に構築されており、安価で効果的かつ透過的な拡張方法を提供します。ネットワーク デバイスとサーバーの帯域幅を拡張し、スループット容量を向上させ、ネットワーク データ処理機能を強化し、ネットワークの柔軟性と可用性を向上させます。 負荷分散 (英語名は Load Balance) は、作業タスクを共同で完了するために、Web サーバー、FTP サーバー、エンタープライズ キー アプリケーション サーバー、その他のミッションクリティカルなサーバーなどの複数のオペレーティング ユニットに実行を割り当てることを意味します。
    • アップストリーム语 設定文法: アップストリーム名 {...}

      • デフォルト: いいえ
      • コンテキスト: HTTP
      • 簡単な設定例

        :
      • upstream ronaldo {
                server ip:port [param];
                server ip:port [param];
                server ip:port [param];
        }
        server {
            location / {
                proxy_pass http://ronaldo;
            }
        }
        ログイン後にコピー

        param参数解释:

        param意义
        down当前的server暂时不参与负载均衡
        weight=num权重,num越大,轮询到的概率越大
        backup预留的备份服务器
        max_fails允许请求失败的次数
        fail_timeout经过max_fails失败后,服务暂停的时间(默认是10s)
        max_conns限制最大的接收的连接数

        调度算法:

        算法意义
        轮询按时间顺序逐一分配到不同的后端服务器
        加权轮询weight值越大,分配到的访问几率越高
        ip_hash每个请求按访问IP的hash结果分配,这样来自同一个IP就固定访问同一个后端服务器
        least_conn最少连接数,哪个服务器连接数少就分发
        url_hash按照访问的URL的hash结果来分配请求,是每个URL定向到同一个后端服务器
        hash关键字值hash自定义的key
        • ip_hash:

          • 只需要在upstream中加入 ip_hash; 即可

          • 缺陷:如果走代理,那么remote_addr就不是用户真实的ip

        • url_hash(1.7.2版本以后可用):

          • 配置语法:hash key [consistent];

          • 默认:无

          • Context:upstream

        key可以是$request_uri,根据url进行hash

        四、Nginx作为缓存服务

        1、缓存的类型

        • 服务端缓存。例:memcache、reids

        • 代理缓存。例:Nginx缓存服务端的数据

        • 客户端缓存。

        Nginxシナリオの練習

        2、常用缓存配置

        • proxy_cache_path

          • 配置语法proxy_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time] [max_size] [use_temp_path]...

          • 默认:无

          • Context:http

        • proxy_cache

          • 配置语法:proxy_cache zone | off;

          • 默认:proxy_cache off;

          • Context:http,server,location

        • proxy_cache_valid(缓存过期周期)

          • 配置语法:proxy_cache_valid [code...] time

          • 默认:无

          • Context:http、server、location

        • proxy_cache_key(缓存的维度)

          • 配置语法:proxy_cache_key string;

          • 默认:proxy_cache_key $scheme$proxy_host$request_uri;

          • Context:http、server、location

        常见配置:

        proxy_cache_path cache_path levels=1:2 keys_zone=key_name:10m max_size=10g inactive=60m use_temp_path=off;
        
        server {
            loaction / {
                proxy_pass http://ronaldo;
                proxy_cache key_name;
                proxy_cache_valid 200 304 12h;
                proxy_cache_valid any 10m;
                proxy_cache_key $host$uri$is_args$args;
                add_header Nginx-Cache "$upstream_cache_status";
        
                proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
            }
        }
        ログイン後にコピー

        2、清除指定缓存

        • rm -rf 缓存目录内容

        • 第三方扩展模块:ngx_cache_purge

        3、如何让部分页面不缓存

        • proxy_no_cache

          • 配置语法:proxy_no_cache string ...;

          • 默认:无

          • Context:http,server,location

        简单示例

        if ($request_uri ~ ^/(url_3|login|register|password\/reset)) {
            set $cookie_nocache 1;
        }
        
        location / {
            proxy_no_cache $cookie_nocache;
        }
        ログイン後にコピー

        4、大文件分片请求

        • slice

          • 语法配置:slice size;

          • 默认:slice 0;

          • Context:http、server,location

        优势:每个子请求收到的数据都会形成一个独立的文件,一个请求断了,其他请求不受影响。
        缺点:当文件很大或者slice很小的时候,可能会导致文件描述符耗尽等待情况。

        相关推荐:

        关于Nginx的基础内容

        Nginx编译安装Lua模块

    以上が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などのサードパーティツールを使用します。

    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にアクセスして、デフォルトのウェルカムページを表示します。

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

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

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

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

    サーバーIPにnginxアクセスアドレスを設定する方法 サーバーIPにnginxアクセスアドレスを設定する方法 Apr 14, 2025 am 11:36 AM

    nginxでサーバーIPにアクセスアドレスを設定するには、サーバーブロックを構成するか、リスニングアドレス(リッスン192.168.1.10:80など)を設定するサーバー名(server_name example.com www.example.comなど)を設定するか、サーバーIPとリロードNginxにアクセスして変更を適用するために空白のままにしておきます。

    nginxの実行ステータスを確認する方法 nginxの実行ステータスを確認する方法 Apr 14, 2025 am 11:48 AM

    nginxの実行ステータスを表示する方法は次のとおりです。PSコマンドを使用してプロセスステータスを表示します。 nginx configuration file /etc/nginx/nginx.confを表示します。 NGINXステータスモジュールを使用して、ステータスエンドポイントを有効にします。 Prometheus、Zabbix、Nagiosなどの監視ツールを使用します。

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

    See all articles