Saya menggunakan nginx sebagai server depan, saya telah memodifikasi file CSS, tetapi nginx masih melayani yang lama.
Saya telah mencoba untuk me-restart nginx, tidak berhasil dan saya telah Googled, tetapi tidak menemukan cara yang valid untuk menghapusnya.
Beberapa artikel mengatakan kami hanya dapat menghapus direktori cache:, var/cache/nginx
tetapi tidak ada direktori seperti itu di server saya.
Apa yang harus saya lakukan sekarang?
proxy_cache
?cache
, tidak menemukannya di file konfigurasiJawaban:
Saya memiliki masalah yang sama persis - saya menjalankan nginx saya di Virtualbox. Caching saya tidak dihidupkan. Tapi tampak seperti
sendfile
ditetapkan untukon
dinginx.conf
dan yang menyebabkan masalah. @ Kolbyjack menyebutkannya di atas dalam komentar.Ketika saya mematikan
sendfile
- itu bekerja dengan baik.Hal ini karena:
Ini terkait dengan bug ini: https://www.virtualbox.org/ticket/12597
sumber
Anda juga dapat mem-by-cache menggunakan file per file
dan sebagai bonus Anda dapat mengembalikan tajuk ini untuk melihat apakah Anda mendapatkannya dari cache (akan mengembalikan 'HIT') atau dari server konten (akan mengembalikan 'BYPASS').
untuk kedaluwarsa / menyegarkan file yang di-cache, gunakan curl atau klien lainnya untuk membuat permintaan ke halaman yang di-cache.
ini akan mengembalikan salinan item yang baru dan juga akan menggantikan apa yang ada di cache.
sumber
Kecuali Anda mengkonfigurasi zona cache melalui proxy_cache_path dan kemudian menggunakannya (misalnya di blok lokasi), melalui: proxy_cache tidak ada yang akan di-cache.
Namun, jika Anda melakukannya, maka menurut penulis nginx , cukup menghapus semua file dari direktori cache sudah cukup.
Cara termudah:
find /path/to/your/cache -type f -delete
sumber
[crit] 1640#0: unlink() "/path/to/cache/85/1cc5328db278b328f2c200c65179ad85" failed (2: No such file or directory)
Anda dapat menghapus direktori cache nginx atau Anda dapat mencari file tertentu:
Dan hapus hanya satu file untuk menyegarkan nginx mereka.
sumber
grep -lr 'http://mydomain.pl/css/myedited.css$' /var/nginx/cache/*
grep: /var/nginx/cache/*: No such file or directory
saya menggunakan Ubuntu 14.04.3 LTS dan nginx / 1.8.1. Ada ide?sudo find /var/nginx/cache -type f -exec grep -l '/css/myedited.css' {} \;
Ada dua jawaban dalam pertanyaan ini.
Menggunakan:
MISALNYA:
sumber
Saya menemukan ini berguna
Cari, dan jika ditemukan maka hapus.
sumber
Di instal nginx saya, saya harus pergi ke:
dan
dalam direktori itu. Jika Anda tahu jalur untuk menginstal nginx Anda dan dapat menemukan direktori cache, hal yang sama juga berlaku untuk Anda. Berhati -hatilah dengan
rm -rf
perintah tersebut, jika Anda berada di direktori yang salah, Anda dapat menghapus seluruh hard drive Anda.sumber
Saya menjalankan skrip bash yang sangat sederhana yang membutuhkan waktu 10 detik untuk melakukan pekerjaan itu dan mengirimkan saya surat setelah selesai.
sumber
Saya punya masalah ini juga.
Domain saya menggunakan cloudflare.com untuk DNS (layanan hebat!). Aha! Itu dia:
cloudflare.com -> caching -> Purge Cache (Saya membersihkan semuanya) Itu menyelesaikan masalah saya!
sumber
Kami memiliki cache nginx yang sangat besar (gigabytes) yang kadang-kadang perlu kami hapus. Saya telah membuat skrip yang secara instan menghapus cache (sejauh yang menyangkut Nginx) dan kemudian menghapus direktori cache tanpa membuat kelaparan aplikasi utama untuk disk I / O.
Singkatnya:
Berikut skripnya, yang dirancang untuk Ubuntu 16.04 LTS, dengan cache terletak di
/mnt/nginx-cache
:Dan jika itu membantu, inilah konfigurasi Nginx yang kami gunakan:
sumber
Bagi mereka yang solusi lain tidak berfungsi, periksa apakah Anda menggunakan layanan DNS seperti CloudFlare . Dalam hal itu aktifkan "Mode Pengembangan" atau gunakan alat "Bersihkan Cache".
sumber
Harap perhatikan bahwa proxy_cache_bypass dapat memberi Anda dunia yang terluka jika aplikasi Anda tidak mengembalikan respons yang dapat di-cache untuk permintaan spesifik tempat Anda memicu itu.
Jika misalnya aplikasi Anda mengirim cookie dengan setiap permintaan pertama, maka skrip yang memicu proxy_pass_bypass melalui curl mungkin akan mendapatkan cookie itu dalam jawabannya, dan nginx tidak akan menggunakan respons itu untuk menyegarkan item yang di-cache.
sumber
Berhati-hatilah untuk menentukan jalur yang benar dengan benar.
sumber
Bagi mereka yang telah mencoba menghapus file cache nginx, dan itu tidak berhasil atau telah bekerja sebentar-sebentar, lihat pengaturan Anda untuk open_file_cache. Jika ini diaktifkan dan dikonfigurasi untuk menyimpan cache deskriptor file untuk waktu yang lama, maka Nginx mungkin masih melihat versi file yang di-cache, bahkan setelah Anda menghapusnya dari disk. Saya harus mengurangi open_file_cache_valid menjadi 1s (Saya tidak yakin apakah ini pada dasarnya sama dengan menonaktifkan cache file sepenuhnya).
sumber
Di server saya, folder cache nginx berada di
/data/nginx/cache/
Jadi saya menghapusnya saja:
sudo rm -rf /data/nginx/cache/
Semoga ini bisa membantu siapa saja.
sumber
Jika Anda ingin menghapus cache file tertentu maka Anda dapat menggunakan
proxy_cache_bypass
arahan. Ini adalah bagaimana Anda melakukannyaSekarang jika Anda ingin memotong cache Anda mengakses file dengan melewati parameter nocache
http://www.example.com/app.css?nocache=true
sumber
app.css?nocache=true
) sementara file asli (tanpa permintaan) tetap di cache (app.css
)?Anda dapat menambahkan konfigurasi di nginx.conf seperti berikut ini.
Dari atas, folder bernama "nginx_cache" secara dinamis dibuat di / tmp / untuk menyimpan konten yang di-cache.
sumber
Ada satu metode yang tepat untuk menghapus hanya file cache, yang cocok dengan KUNCI apa pun. Sebagai contoh:
Ini menghapus semua file cache, yang cocok dengan KEY "yahoo / *", jika di nginx.conf disetel:
sumber
Kami menggunakan nginx untuk menyimpan banyak hal. Ada puluhan ribu item di direktori cache. Untuk menemukan item dan menghapusnya, kami telah mengembangkan beberapa skrip untuk menyederhanakan proses ini. Anda dapat menemukan repositori untuk skrip ini di bawah:
https://github.com/zafergurel/nginx-cache-cleaner
Idenya sederhana. Untuk membuat indeks cache (dengan kunci cache dan file cache yang sesuai) dan cari di dalam file indeks ini. Itu benar-benar membantu kami untuk mempercepat menemukan item (dari menit ke detik) dan menghapusnya.
sumber
Dalam kasus saya,
touch
file Css itu, membuatnya tampak seperti sumber daya berubah (sebenarnyatouch
tidak melakukan apa pun pada file, kecuali mengubah waktu modifikasi terakhir), jadi browser dan nginx akan menerapkan sumber daya terbarusumber
Saya mengalami sejenis masalah serupa:
Pengaturan dan Masalah Sistem: (Di virtualbox saya hosting web menggunakan ubuntu dan nginx - PHP menyegarkan halaman web tidak mencerminkan perubahan pada file css eksternal). Saya mengembangkan situs web di mesin windows dan mentransfer file ke nginx melalui folder bersama. Tampaknya nginx tidak menerima perubahan pada file css (menyegarkan dengan cara apa pun tidak membantu. Mengubah nama file css adalah satu-satunya hal yang berhasil)
Solusi: Pada VM temukan file bersama (file css dalam kasus saya). Buka dengan nano dan bandingkan dengan file di windows share (mereka tampak identik). Di VM, simpan file bersama dengan nano. Semua perubahan sekarang tercermin di browser. Tidak yakin mengapa ini berhasil tetapi itu terjadi pada saya.
UPDATE: Setelah reboot server VM masalah kembali. Mengikuti instruksi di bawah Solution membuat css responsif terhadap pembaruan lagi
sumber
Dalam kasus saya itu adalah opcache yang diaktifkan di /etc/php/7.2/fpm/php.ini (Ubuntu):
Pengaturan ke 0 membuat server memuat versi terbaru (php) file.
sumber