序文 add_header は、headers モジュールで定義されたディレクティブです。名前が示すように、http 応答ヘッダーを追加するために使用されます。ただし、これは単に「追加」されただけであり、書き直されたわけではないことに注意してください。したがって、ヘッダーがすでに存在する場合、add_header を使用すると問題が発生します。さらに、nginx の以前のバージョンでは、add_header はエラー ページでの使用をサポートしていません。 これは多くの落とし穴があるコマンドです。処理段階は location 処理より後になります。location に書き込むことはできますが、別の location を書き換えると、前の location で処理されなかった add_header は失われます。例えば: 場所 = /a { add_headerに1を追加します。 //b を書き換えます。 } 場所 = /b { ヘッダーを追加します b 2; 204を返します。 } 頭に1はないですよね?これは落とし穴だ! もう 1 つの落とし穴は、冒頭で述べた重複の問題です。たとえば、コンテンツに Content-Type を設定したいのですが、default_type がグローバルに設定されているため、重複してしまいます。 デフォルトタイプ 'text/plain'; 場所 = /a { ヘッダーコンテンツタイプ application/json を追加します。 200 '"OK"' を返します。 } もちろん、この場所の default_type を空のままにしたり、add_header を使用せずにこの場所の default_type を直接変更するなど、多くの解決策があります。 最後の大きな落とし穴は、エラー ページでは機能しないことですが、これもドキュメントで明確に定義されています。たとえば、次の例をご覧ください。 場所 = /a { ヘッダーコンテンツタイプ application/json を追加します。 404 '"見つかりません"' を返します。 } JSONで応答したいのですが、ステータスコードが404なので、ここでのadd_headerは効果がありません。 この例では default_type の問題を解決できますが、他のヘッダーの場合はどうなるでしょうか?たとえば、Access-Control-Allow-Origin では何をすればよいでしょうか?その場合、Lua またはその他のサードパーティ モジュールを使用する以外に解決策はありません。もちろん、nginx はこの問題を認識しているため、ドキュメントには、always と呼ばれるパラメータがバージョン 1.7.5 以降でサポートされていることも記載されています。 nginx 自体はこの問題を解決しますが、1.6.2 ベースの tengine では問題が発生します。 要約する 上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。 以下もご興味があるかもしれません:
|
<<: MySQL ページング中にオフセットが大きすぎる場合の SQL 最適化の経験の共有
>>: Svelte の Defer Transition を Vue で実装する方法
目次1. Redisイメージを取得する2. 6つのRedisコンテナを作成する3. Redisコンテ...
インデックス集約を使用しない MySQL クエリご存知のとおり、インデックスを追加することはクエリ速...
本日の投稿では、Web デザインで使用される円形要素の優れた例をいくつか挙げ、美しい丸いボタン、メニ...
成果を達成する コードhtml <div class="css-slideshow&...
最近、プロジェクトではラベルやボタンなどの断片的な画像をたくさん使用する必要があります。また、CSS...
VMware が異常シャットダウンした後、再起動すると「この構成ファイルを排他的にロックできませんで...
問題を見つける最近、仕事で問題が発生しました。InnoDB タイプの SQL ファイルを実行すると、...
背景docker とアイデアを使用して、Java Web の開発、展開、運用までのプロセス全体を実現...
/usr/local/nginx/conf と入力する sudo cd /usr/local/ngi...
この記事では主に CentOS 上で MySQL マスタースレーブサーバーを構築する方法を紹介します...
データをコピーリモートでデータをコピーする場合、通常は rsync コマンドを使用しますが、小さなフ...
1: mysql公式サイトからダウンロードhttps://dev.mysql.com/downlo...
ほとんどの人は、サーバーサイド レンダリング (SSR と呼んでいます) の概念について聞いたことが...
1: syslog.conf の概要異なるタイプの Unix の場合、標準の UnixLog システ...
序文誰もが日常業務で SQL の最適化を経験したことがあると思います。したがって、最適化の前に、遅い...