はじめに
ご存知のとおり、nginx 構成ファイルは add_header ディレクティブを使用して応答ヘッダーを設定します。
curl を使用してサイトの情報を確認し、返されたヘッダーが予期したものと異なることを確認します:
http/2 200 date: thu, 07 feb 2019 04:26:38 gmt content-type: text/html; charset=utf-8 vary: accept-encoding, cookie cache-control: max-age=3, must-revalidate last-modified: thu, 07 feb 2019 03:54:54 gmt x-cache: miss server: cloudflare ...
メイン サイトは nginx.conf で hst とその他のヘッダーを構成しました:
add_header strict-transport-security "max-age=63072000; preload"; add_header x-frame-options sameorigin; add_header x-content-type-options nosniff; add_header x-xss-protection "1; mode=block";
しかし、応答ヘッダーにはこれらのヘッダーがありません。通常のヘッダーに加えて、その場所にはヘッダー X キャッシュが 1 つだけ構成されています。
第一印象は、CDN がこれらのヘッダーをフィルタリングしているということでしょうか?そこで、cloudflare のドキュメントを探しましたが、これらを処理できるものは見つかりませんでした。そこで考えたのですが、CDN はこれらをフィルタリングするために何をしているのでしょうか?食べた後は満腹ですか?彼らは検閲なんてやってないよ!
問題はnginxの設定に移ります。 Google を開いて「nginx location add_header」を検索すると、多くの欠陥が見つかります。公式 Web サイトの add_header ドキュメントをクリックすると、次の説明があります (他の情報は省略されています):
there might be some add_header directives. これらのディレクティブは、次の場合にのみ前のレベルから継承されます。現在のレベルに add_header ディレクティブが定義されていません。
「現在のレベルに add_header ディレクティブが定義されていない場合に限り、これらのディレクティブは前のレベルから継承される」ことに注目してください。つまり、親設定は、現在のレベルに add_header ディレクティブがない場合にのみ継承されます。したがって、私の質問は明確です。場所に add_header があり、nginx.conf の設定は破棄されます。
これは nginx の意図的な動作であり、バグまたは落とし穴であるとは言えません。しかし、この文を深く理解すると、最新の add_header のみが機能するという、より興味深い現象に気づくでしょう。 add_header は http、server、location で設定できますが、最も近い設定が有効になり、上記の設定はすべて無効になります。
しかし、問題はそれだけではありません。場所が別の場所に書き換えられた場合、最終結果には 2 番目のヘッダーのみが表示されます。例:
location /foo1 { add_header foo1 1; rewrite / /foo2; } location /foo2 { add_header foo2 1; return 200 "ok"; }
/foo1 または /foo2 のリクエストに関係なく、最終ヘッダーは foo2 のみです:
これは理にかなっていますが、これは通常の動作です。 、しかし、それは常に人々を引き起こします。少し強制的で不快な感じがします。サーバーは http 構成を失い、場所はサーバー構成を失いますが、2 つの場所は同じレベルにあります。
親設定を継承できず、現在のブロックで命令を繰り返したくない場合は、include 命令を使用すると解決できます。
以上がNginx add_header命令の分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Nginxunitは、複数のプログラミング言語をサポートし、動的構成、ゼロダウンタイム更新、組み込みのロードバランシングなどの機能を提供するオープンソースアプリケーションサーバーです。 1。動的構成:再起動せずに構成を変更できます。 2。多言語サポート:Python、Go、Java、PHPなどと互換性があります。 4。ビルトインロードバランシング:リクエストは、複数のアプリケーションインスタンスに配布できます。

nginxunitは、多言語プロジェクトや動的な構成要件に適した、apachetomcat、gunicorn、node.jsビルトインHTTPサーバーよりも優れています。 1)複数のプログラミング言語をサポートします。2)動的な構成リロード、3)高いスケーラビリティと信頼性を必要とするプロジェクトに適した組み込みの負荷分散機能を提供します。

Nginxunitは、モジュラーアーキテクチャと動的な再構成機能により、アプリケーションのパフォーマンスと管理性を向上させます。 1)モジュラー設計には、マスタープロセス、ルーター、アプリケーションプロセスが含まれ、効率的な管理と拡張をサポートします。 2)動的再構成により、CI/CD環境に適した、実行時に構成をシームレスに更新できます。 3)多言語サポートは、言語ランタイムの動的なロードを通じて実装され、開発の柔軟性が向上します。 4)イベント駆動型モデルと非同期I/Oによって高性能が達成され、高い並行性の下でも効率的なままです。 5)申請プロセスを分離し、アプリケーション間の相互の影響を減らすことにより、セキュリティが改善されます。

nginxunitを使用して、アプリケーションを複数の言語で展開および管理できます。 1)nginxunitをインストールします。 2)PythonやPHPなどのさまざまなタイプのアプリケーションを実行するように構成します。 3)アプリケーション管理に動的構成関数を使用します。これらの手順を通じて、アプリケーションを効率的に展開および管理し、プロジェクトの効率を向上させることができます。

NGINXは、高い並行接続の処理に適していますが、Apacheは複雑な構成とモジュール拡張が必要なシナリオにより適しています。 1.Nginxは、高性能と低リソース消費で知られており、高い並行性に適しています。 2. Apacheは、その安定性とリッチモジュール拡張機能で知られています。これは、複雑な構成ニーズに適しています。

Nginxunitは、動的な構成と高性能アーキテクチャにより、アプリケーションの柔軟性とパフォーマンスを向上させます。 1.動的構成により、サーバーを再起動せずにアプリケーション構成を調整できます。 2.高性能は、イベント駆動型および非ブロッキングアーキテクチャおよびマルチプロセスモデルに反映され、同時接続を効率的に処理し、マルチコアCPUを利用できます。

NginxとApacheはどちらも強力なWebサーバーであり、それぞれがパフォーマンス、スケーラビリティ、効率の点で独自の利点と短所を備えています。 1)nginxは、静的なコンテンツを処理し、逆プロキシを逆にするときにうまく機能します。 2)Apacheは、動的コンテンツを処理するときにパフォーマンスが向上し、リッチモジュールサポートが必要なプロジェクトに適しています。サーバーの選択は、プロジェクトの要件とシナリオに基づいて決定する必要があります。

Nginxは、高い並行リクエストの処理に適していますが、Apacheは複雑な構成と機能的拡張が必要なシナリオに適しています。 1.Nginxは、イベント駆動型の非ブロッキングアーキテクチャを採用しており、高電流環境に適しています。 2。Apacheはプロセスまたはスレッドモデルを採用して、複雑な構成のニーズに適したリッチモジュールエコシステムを提供します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ホットトピック









