GNU/Linux >> Linux の 問題 >  >> Linux

何もキャッシュしないキャッシュプロキシとしてのnginx

バックエンドが Set-Cookie を返さないことを確認してください ヘッダ。 Nginx がそれを認識した場合、キャッシングを無効にします。

このような場合、最善の選択肢はバックエンドを修正することです。バックエンドを修正できない場合は、Nginx に Set-Cookie を無視するように指示することができます。 ヘッダー

proxy_ignore_headers "Set-Cookie";
proxy_hide_header "Set-Cookie";

ドキュメントを見る

proxy_ignore_header キャッシュが確実に行われるようにします。 proxy_hide_header Cookie ペイロードがキャッシュされたペイロードに含まれないようにします。これは、NGINX キャッシュを介した Cookie のリークを避けるために重要です。


複数の構成オプションと組み合わせにより、Nginx でプロキシ キャッシングを無効にできることを追加したいと思います。残念ながら、これは十分に文書化されていません。

私の構成では、 proxy_buffering on を設定しました 期待どおりにキャッシュが有効になりました。


複数の回答とコメントを確認した後、この構成が最終的に機能することがわかりました:

10m =10mb キーキャッシュ、max_size 2GB へ 、 inactive=120m (非アクティブの 120 分後にソースから更新)、use_temp_path=off (ioを減らすため)

proxy_cache_valid - 200 のキャッシュ ステータス と 302 60分間

proxy_cache_path /tmp/cache levels=1:2 keys_zone=default_cache:10m max_size=2g
                 inactive=120m use_temp_path=off;
proxy_cache_key "$scheme$request_method$host$request_uri";
proxy_cache_valid 200 302 60m;

server {
    listen       80;
    server_name  example.com;

    # https://www.nginx.com/blog/nginx-caching-guide
    location / {
        proxy_cache default_cache;
        proxy_buffering on;
        proxy_ignore_headers Expires;
        proxy_ignore_headers X-Accel-Expires;
        proxy_ignore_headers Cache-Control;
        proxy_ignore_headers Set-Cookie;

        proxy_hide_header X-Accel-Expires;
        proxy_hide_header Expires;
        proxy_hide_header Cache-Control;
        proxy_hide_header Pragma;

        add_header X-Proxy-Cache $upstream_cache_status;
        proxy_pass http://ip-of-host:80;

        #set            $memcached_key "$uri?$args";
        #memcached_pass 127.0.0.1:11211;
        # error_page     404 502 504 = @fallback;
    }
}

Linux
  1. nginx-413リクエストエンティティが大きすぎます

  2. 「tail-f| Iconv -fsjis」は何も出力しませんか?

  3. ソックスではなく、ssh 経由の http プロキシ

  1. MySQLデータベースのキャッシュを改善する

  2. dd を強制的にキャッシュしないようにするか、キャッシュから読み取らないようにする

  3. SSLターミネーションなしのNginxリバースプロキシ

  1. Nginxリバースプロキシを設定する方法

  2. Nginxを使用したリバースプロキシ:ステップバイステップのセットアップガイド

  3. Ubuntu 18.04でWordPressを高速化するためにRedisキャッシングを構成するにはどうすればよいですか?