Caching menggunakan wget

8

Saya menggunakan drupal 7. Setelah membersihkan cache, saya menggunakan wget seperti ini untuk menyimpan semua halaman di cache.

wget --quiet http://xxx.xxx/sitemap.xml --output-document - | egrep -o "http://xxx.xxx[^<]+" | wget -q --delete-after -i -

Setelah selesai, saya memeriksa database tabel cache_page, dan semua halaman tampaknya ada di sana. Namun, jika saya mengunjungi halaman apa pun dengan browser, itu membutuhkan waktu seolah-olah itu tidak di-cache. Apa yang saya perhatikan juga adalah bahwa setelah mengunjungi halaman di browser, waktu pemuatan pada kunjungan berikutnya sangat cepat sebagaimana mestinya.

Apa masalahnya? Saya berhasil menggunakan metode ini pada halaman 6 Drupal tanpa masalah. Log kesalahan tidak menunjukkan apa pun kecuali favicon.ico tidak ada.

Log akses untuk URL terlihat seperti berikut:

www.xxx.sk 11.116.206.232 - - [01 / Jan / 2013: 18: 09: 12 +0100] "DAPATKAN / myurl HTTP / 1.1" 200 31532 "-" "Wget / 1.13.4 (cygwin)"

Saya TIDAK masuk

EDIT: Saya memperbarui versi drupal 7.14 hingga 7.19 tetapi tidak ada perubahan. Setelah melihat ke dalam tabel cache_page saya perhatikan bahwa semua halaman yang dikunjungi menggunakan browser dihasilkan untuk beberapa alasan aneh dengan _900 pada akhirnya seperti ini: www.example.com/examplepath_900. Saya tidak menyadarinya sebelumnya karena jalur tidak muat di dalam sel dalam tabel database. Jadi itu sebabnya halaman tidak di-cache. Saya juga menyiapkan instalasi baru drupal 7 pada host yang sama di mana caching menggunakan wget berfungsi seperti yang diharapkan tanpa masalah. Tidak ada masalah dalam htaccess atau file pengaturan juga. Mungkin beberapa modul yang diinstal dapat menyebabkan ini?

loparr
sumber
Dari mana Anda melakukan ini? Server yang sama, atau server lain?
mpdonadio
@MPD Saya menggunakan terminal cygwin untuk menjalankan wget. Namun, halaman drupal 7 saya di-host dengan penyedia lain yang situs drupal 6 saya
loparr
Bisakah Anda melihat tajuk HTTP? Setelah Anda menjalankan skrip, periksa header dan cari yang seperti "X-Drupal-Cache: Hit". Saya lupa nama header yang tepat.
mpdonadio
@ MPD Saya membersihkan cache, menjalankan skrip, tabel cache_page menunjukkan semua tautan tapi saya menemukan X-Drupal-Cache: MISS di header dari semua halaman yang baru dikunjungi.
loparr
Apakah Anda menguji sebagai pengguna yang diautentikasi? Jika demikian, cache halaman tidak akan terkena.
David Thomas

Jawaban:

3

Semua peramban modern mengirim tajuk Terima-Pengkodean ~ 'gzip', jadi entri yang di-cache tidak akan digunakan jika spider Anda tidak menggunakan yang ini (respons gzip back-end yang layak menambahkan variasi yang berbeda: tajuk Penyandian-Pengkodean). Anda juga dapat melihat opsi --mir dari wget yang dapat membantu di sini.

webkenny
sumber
Jika webkenny mengatakan sesuatu tentang kinerja Drupal, saya berasumsi itu benar. +1.
Letharion
1
Untuk inti, header gzip seharusnya tidak masalah. drupal_serve_page_from_cache ()
mikeytown2
3

Nasihat Kenny solid. Satu gagasan lain adalah Anda mungkin memiliki beberapa aset yang sedang di-cache di browser pada pemuatan pertama dan kemudian bukan yang kedua. Alih-alih melakukan tes di browser yang sama, coba lakukan tes di jendela Chrome Incognito, tutup jendela itu, dan kemudian lakukan lagi. Itu seharusnya membantu menentukan apakah itu kegagalan cache halaman Drupal untuk memenuhi permintaan (mungkin karena ide Gzip) yang bertanggung jawab atas kelambatan atau apakah itu cache browser dari file yang menyebabkan mereka tidak mengunduh lagi yang membuat permintaan kedua lebih cepat.

Greggles
sumber