GNU/Linux >> Belajar Linux >  >> Linux

nginx sebagai proxy cache tidak menyimpan apa pun

Pastikan backend Anda tidak menampilkan Set-Cookie tajuk. Jika Nginx melihatnya, itu akan menonaktifkan caching.

Jika ini kasus Anda, opsi terbaik adalah memperbaiki backend Anda. Saat memperbaiki backend bukanlah suatu opsi, Nginx dapat diinstruksikan untuk mengabaikan Set-Cookie tajuk

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

Lihat dokumentasinya

proxy_ignore_header akan memastikan bahwa caching berlangsung. proxy_hide_header akan memastikan muatan Cookie tidak termasuk dalam muatan yang di-cache. Ini penting untuk menghindari kebocoran cookie melalui cache NGINX.


Saya ingin menambahkan bahwa beberapa opsi dan kombinasi konfigurasi dapat menonaktifkan caching proxy di Nginx. Sayangnya ini tidak didokumentasikan dengan baik.

Dalam konfigurasi saya, saya menyetel proxy_buffering on dan mengaktifkan caching seperti yang diharapkan.


setelah melalui banyak jawaban dan komentar, saya menemukan konfigurasi ini akhirnya berfungsi:

10m =10mb cache kunci, max_size ke 2GB , inactive=120m (segarkan dari sumber setelah 120 menit tidak aktif), use_temp_path=off (untuk mengurangi io)

proxy_cache_valid - status cache dari 200 dan 302 selama 60 menit

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. Cara Mengatur Proksi Terbalik Nginx

  2. “ekor -f | Iconv -fsjis” Tidak Mengeluarkan Apa Pun?

  3. Bagaimana Cara Mengonfigurasi Redis Caching untuk Mempercepat WordPress di Ubuntu 18.04?

  1. Tingkatkan caching Database MySQL

  2. nginx - 413 Permintaan Entitas Terlalu Besar

  3. proxy http melalui ssh, bukan kaus kaki

  1. Reverse Proxy dengan Nginx:Panduan Pengaturan Langkah-demi-Langkah

  2. Linux:modpost tidak membangun apa pun

  3. Paksa dd untuk tidak melakukan cache atau tidak membaca dari cache