Bộ nhớ đệm sử dụng wget


8

Tôi sử dụng drupal 7. Sau khi xóa bộ nhớ cache, tôi sử dụng wget như thế này để lưu lại tất cả các trang.

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

Sau khi hoàn thành, tôi kiểm tra cơ sở dữ liệu bảng cache_page và tất cả các trang dường như ở đó. Tuy nhiên, nếu tôi truy cập bất kỳ trang nào với trình duyệt, sẽ mất thời gian như thể nó không được lưu trước. Điều tôi cũng nhận thấy là sau khi truy cập trang trên trình duyệt, thời gian tải vào lần truy cập tiếp theo rất nhanh.

các vấn đề có thể là gì? Tôi đang sử dụng thành công phương pháp này trên trang 6 Drupal mà không gặp vấn đề gì. Nhật ký lỗi không hiển thị gì ngoại trừ favicon.ico không tồn tại.

Nhật ký truy cập cho các URL trông như sau:

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

Tôi chưa đăng nhập

EDIT: Tôi đã cập nhật phiên bản drupal 7.14 lên 7.19 nhưng không thay đổi. Sau khi xem xét bảng cache_page, tôi nhận thấy rằng tất cả các trang được truy cập bằng trình duyệt được tạo vì một số lý do lạ với _900 ở cuối như thế này: www.example.com/examplepath_900. Tôi đã không nhận thấy điều đó trước đây vì các đường dẫn không vừa trong các ô trong các bảng cơ sở dữ liệu. Vì vậy, đó là lý do tại sao các trang không được lưu trữ. Ngoài ra, tôi thiết lập cài đặt mới của drupal 7 trên cùng một máy chủ nơi bộ nhớ đệm sử dụng wget hoạt động như mong đợi mà không gặp vấn đề gì. Không thể có vấn đề trong các tập tin htaccess hoặc cài đặt. Có lẽ một số mô-đun cài đặt có thể gây ra điều này?


Bạn đang làm điều này từ đâu? Cùng một máy chủ, hoặc một máy chủ khác?
mpdon Arena

@MPD Tôi sử dụng thiết bị đầu cuối cygwin để chạy wget. Tuy nhiên, trang 7 drupal của tôi được lưu trữ với một nhà cung cấp khác rằng trang 6 drupal của tôi
loparr

Bạn có thể xem các tiêu đề HTTP không? Sau khi bạn chạy tập lệnh, hãy kiểm tra các tiêu đề và tìm kiếm một cái như "X-Drupal-Cache: Hit". Tôi quên tên tiêu đề chính xác, mặc dù.
mpdon Arena

@MPD Tôi đã xóa bộ đệm, chạy tập lệnh, bảng cache_page hiển thị tất cả các liên kết nhưng tôi thấy X-Drupal-Cache: MISS trong các tiêu đề của tất cả các trang mới truy cập.
loparr

Bạn đang thử nghiệm như một người dùng xác thực? Nếu vậy, bộ đệm trang sẽ không được nhấn.
David Thomas

Câu trả lời:


3

Tất cả các trình duyệt hiện đại đều gửi một số tiêu đề Chấp nhận mã hóa ~ 'gzip', vì vậy các mục được lưu trong bộ nhớ cache sẽ không được sử dụng nếu con nhện của bạn không sử dụng tiêu đề này (một phản hồi được tạo ra ở mặt sau được mã hóa bổ sung thêm một tiêu đề khác nhau: Chấp nhận mã hóa). Bạn cũng có thể xem xét tùy chọn --mirror của wget có thể hỗ trợ ở đây.


Nếu webkenny nói điều gì đó về hiệu suất của Drupal, thì tôi cho rằng đó là sự thật. +1.
Letharion

1
Đối với cốt lõi, tiêu đề gzip không quan trọng. drupal_serve_page_from_cache ()
mikeytown2

3

Lời khuyên của Kenny là vững chắc. Một ý tưởng khác là bạn có thể có một số tài sản đang được lưu trong bộ nhớ cache trong trình duyệt ở lần tải đầu tiên và sau đó không phải là tài sản thứ hai. Thay vì thực hiện kiểm tra trong cùng một trình duyệt, hãy thử thực hiện kiểm tra trong cửa sổ Ẩn danh Chrome, đóng cửa sổ đó và sau đó thực hiện lại. Điều đó sẽ giúp xác định xem đó có phải là lỗi của bộ đệm trang Drupal không thực hiện được yêu cầu (có thể do ý tưởng Gzip) chịu trách nhiệm cho sự chậm chạp hoặc nếu đó là bộ nhớ cache của trình duyệt khiến chúng không tải xuống nữa khiến yêu cầu thứ hai nhanh hơn.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.