Squid cache - phần 2

Squid không chỉ là một dịch vụ proxy và bộ nhớ cache, nó có thể làm được nhiều hơn thế: quản lý acl (danh sách truy cập), lọc nội dung, thậm chí nó có thể thực hiện lọc ssl ngay cả trong chế độ trong suốt (phương pháp proxy - mà không cần phải cấu hình trong cài đặt proxy từ trình duyệt của họ, nó giống như người đàn ông ở giữa, không ai biết nó ở đó). Vì vậy, tôi thường thấy tiềm năng đầy đủ của ứng dụng này bị lãng phí như thế nào do không biết cách cấu hình từng bộ phận của nó.

Bây giờ điều thú vị mà con mực làm là bộ nhớ cache (theo ý kiến ​​của tôi). Bạn sẽ cho tôi biết tại sao lại sử dụng bộ nhớ cache? Lý do rất đơn giản, quản lý tốt hơn việc sử dụng tốc độ và băng thông của bạn là điều chính. Hãy suy nghĩ kỹ, cứ 1000 phút lại có 5 người trong công ty của bạn tư vấn, các trang thông dụng, Google, Hotmail, Gmail, v.v ... để bạn tải đi tải lại hình ảnh, banner, quảng cáo, nội dung html, tất cả đều là những thứ tĩnh, không chúng thay đổi rất thường xuyên, tốt hơn nên lưu trữ chúng trong mạng cục bộ của bạn và bạn cung cấp một bản sao mà bạn cho là gần đây trong các cấu hình mà bạn đã cân nhắc.

Làm thế nào để làm điều đó? Đơn giản với câu sau:

refresh_pattern [-i] regex min percent max [options]

Như tôi luôn nói, đừng tin vào mọi thứ, vì vậy tôi mời bạn đọc từ nguồn chính thức. Tôi khuyên bạn nên đọc hướng dẫn sử dụng cho câu này ĐÂY

Kết án refresh_potype Nó sẽ luôn là nhãn của chúng tôi để thêm các tham số mới vào bộ nhớ cache.

Quan trọng, danh sách bộ nhớ cache của bạn phải tuần tự, vì một khi nó khớp với danh sách đầu tiên khớp với đối tượng, nó sẽ không tiếp tục đọc các quy tắc khác của bạn

Biểu thức chính quy phân biệt chữ hoa chữ thường, do đó flv không giống như FLV, nhưng bạn có thể tránh điều này nếu muốn bằng cách sử dụng tùy chọn -i . Sau đó, nó sẽ giống như thế này refresh_potype -i

'Tối thiểu': Đó là thời gian (phút) trong đó một đối tượng sẽ được coi là "gần đây hoặc mới" và nếu nó không có nhãn rõ ràng là "đã hết hạn". Theo mặc định, mực khuyến nghị rằng nó là 0, vì lý do một số ứng dụng động có thể hoạt động lạ, blah blah blah, thực sự giá trị này phải là một con số mà bạn cho là hữu ích và hiệu quả đối với các phần tử bạn muốn lưu vào bộ nhớ cache, Ví dụ: jpg, 1440 phút (một ngày) đối với tôi có vẻ ổn, sẽ không giống như nếu hình ảnh của một bài đăng thay đổi cứ sau 5 phút trên một trang.

'Phần trăm' Đó là phần trăm tuổi của một đối tượng (kể từ lần sửa đổi cuối cùng) sẽ được coi là «gần đây hoặc mới». Hãy để tôi giải thích, có thể thực hiện tải lại hoặc làm mới liên tục để xem các sửa đổi cuối cùng được thực hiện cho một trang web, mực có thể xem xét nếu nó đã có, chẳng hạn như 50% thời gian hoàn thành giữa phút y tối đa, tải xuống lại đối tượng đó từ internet và cung cấp cho bạn một bản sao mới.

'Tối đa' là giới hạn trên hoặc bằng 'Min' một đối tượng được coi là «gần đây hoặc mới» trong bao lâu, giả sử rằng một hình ảnh của trang nào đó chỉ được người dùng tham khảo một lần, đối tượng đó đã đạt đến thời điểm của nó phút, nhưng không phải tối đa, sau đó khi nó được truy vấn lại, một bản sao bộ đệm sẽ được gửi.

Options:
override-expire
override-lastmod
reload-into-ims
ignore-reload
ignore-no-store
ignore-private
max-stale=NN
refresh-ims
store-stale

Các tùy chọn này được thực hiện chủ yếu để bỏ qua các hành vi được thiết lập trước trong các ngôn ngữ và giao thức, nhằm đảm bảo việc sử dụng bộ nhớ đệm hiệu quả.

override-expire

Nó thực thi thời gian tối thiểu của một đối tượng, ngay cả khi máy chủ đã gửi thời gian hết hạn ngắn hơn (ví dụ như những thứ như tiêu đề hoặc Cache-Control: max-age). Nếu chúng tôi làm điều này, một "cảnh báo" sẽ xuất hiện với nội dung như sau "VI PHẠM tiêu chuẩn HTTP" nhưng đó chỉ là những cảnh báo mà chúng tôi có thể bỏ qua. Bây giờ nếu thời gian máy chủ gửi lâu hơn thì mực sẽ chiếm thời gian (hết hạn) của máy chủ

override-lastmod

Củng cố thời gian tối thiểu của một mặt hàng, ngay cả khi mặt hàng đó đã được sửa đổi gần đây.

reload-into-ims

Lời giải thích ngắn gọn là nó ngăn chặn việc khi chúng tôi nhấn nút làm mới hoặc thực hiện yêu cầu không có bộ nhớ cache, mực sẽ cung cấp bộ nhớ cache nếu nó chưa được "sửa đổi kể từ" và / hoặc nếu không có "tiêu đề" trên trang.

ignore-reload

Bỏ qua hành động của người dùng để nhấn nút tải lại hoặc làm mới trang

ignore-no-store

Bỏ qua bất kỳ quy tắc nào trong tiêu đề không lưu vào bộ nhớ cache, ví dụ: video

ignore-private

Bỏ qua bất kỳ quy tắc nào trong tiêu đề nội dung riêng tư không nên lưu vào bộ nhớ đệm, ví dụ: nội dung facebook.

refresh-ims

Squid liên hệ với máy chủ để đảm bảo xem đối tượng có phải là đối tượng mới nhất hay không. Nếu đúng thì nó sẽ cung cấp bộ nhớ cache

store-stale

Squid sẽ lưu tất cả các câu trả lời đó, ngay cả khi chúng không có ngày hết hạn, điều này rất không thực tế vì chúng thường không thể được sử dụng lại. Nếu bạn quyết định bật nó, bạn phải khai báo max-stale = NN

max-stale=NN

Nếu bạn đã bật tùy chọn trên, bạn phải khai báo thời gian tồn tại tối đa cho phản hồi hoặc yếu tố đó. Squid không cung cấp các đối tượng kiểu này nhưng có thể xác thực nó bằng nguồn

Dưới đây là bảng về cách trạng thái "TƯƠI" hoạt động theo các giá trị mà chúng ta đã thảo luận:

  • TƯƠI nếu hết hạn> bây giờ, khác BÁN
  • BÁN nếu tuổi> tối đa
  • TƯƠI nếu lm-factor <phần trăm, nếu không thì BÁN
  • TƯƠI nếu tuổi <phút khác BÁN

Đây là một cấu hình ví dụ cho một công ty cụ thể có nhiều dung lượng đĩa, thiết bị tốt và băng thông tốt

refresh_pattern -i \.(3gp|7z|ace|asx|bin|deb|divx|dvr-ms|ram|rpm|exe|inc|cab|qt)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims

refresh_pattern -i \.(rar|jar|gz|tgz|bz2|iso|m1v|m2(v|p)|mo(d|v)|arj|lha|lzh|zip|tar)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims

refresh_pattern -i \.(jp(e?g|e|2)|gif|pn[pg]|bm?|tiff?|ico|swf|dat|ad|txt|dll)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims

refresh_pattern -i \.(avi|ac4|mp(e?g|a|e|1|2|3|4)|mk(a|v)|ms(i|u|p)|og(x|v|a|g)|rm|r(a|p)m|snd|vob)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims

refresh_pattern -i \.(pp(t?x)|s|t)|pdf|rtf|wax|wm(a|v)|wmx|wpl|cb(r|z|t)|xl(s?x)|do(c?x)|flv|x-flv)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims
cache_mem 8092 MB

Bây giờ bộ nhớ đệm không chỉ nằm trên đĩa cứng, chúng ta có thể lưu bộ nhớ đệm vào bộ nhớ ram, giá trị này là cho mỗi quá trình mực, vì vậy bạn phải cân nhắc khi sử dụng các bộ chuyển hướng như con mực

maximum_object_size_in_memory 1024 KB

Kích thước tối đa của đối tượng trong bộ nhớ mà mực sẽ lưu trong RAM. Bạn cũng có thể khai báo mức tối thiểu.


memory_replacement_policy heap GDSF
cache_replacement_policy heap GDSF

Như bạn có thể thấy, một là chính sách thay thế bộ nhớ đệm trong bộ nhớ RAM và một chính sách khác trong đĩa cứng. Có 2 chính sách GDSF và LFUDA. Cách đầu tiên tìm cách cải thiện tỷ lệ truy cập bộ nhớ cache, có nhiều đối tượng nhỏ trong tay, lần thứ hai tìm cách ngược lại, nó giữ các đối tượng trong bộ nhớ cache bất kể kích thước của chúng.

Câu hỏi mà tôi tưởng tượng bạn đang hỏi tôi lúc này là tôi sử dụng công dụng gì? Chà, nếu bạn cho rằng trong môi trường của bạn, họ thực hiện nhiều truy vấn và ít tải xuống sử dụng GDSF nếu ngược lại, họ tải nhiều và ít truy vấn LFUDA. Đó là nếu tôi đề xuất LFUDA khi bạn định làm, tôi không biết, bộ nhớ cache trong 1TB đĩa, nó hiệu quả hơn.

maximum_object_size 4 MB

Kích thước tối đa mà một đối tượng có thể được lưu trữ

cache_dir aufs /media/proxy249/cache 100 16 256

Bộ nhớ đệm sẽ được lưu ở đâu, chú ý ở đây, quan trọng là nếu bạn sử dụng ufs, aufs hay diskd thì cả 3 đều hoạt động ít nhiều như nhau, điểm khác biệt là aufs và diskd hoạt động với các quy trình riêng biệt để thực hiện các hoạt động I / O trên đĩa cứng và tránh rằng các quy trình mực bị treo trong các hoạt động này, ngoài ra diskd bạn có thể chỉ định số luồng mà bạn sẽ có cho tác vụ này. Tôi giới thiệu aufs nếu bạn có một đội tốt.

Kích thước 100 (megabyte), bạn có thể đặt 100000 là gần 100GB tùy thuộc vào khả năng của bạn. 16 là số thư mục và 256 là số thư mục con. Bạn có thể chơi với cả hai giá trị tùy thuộc vào tốc độ đĩa của bạn và lượng tài nguyên bạn có.


cache_swap_low 90
cache_swap_high 95

Các tùy chọn này là các giá trị thay thế đối tượng, nó là giá trị tối thiểu và tối đa dưới dạng hình mờ theo mực, trong đó các số này tính bằng phần trăm (%) và trong một bộ nhớ đệm rất nhỏ, 5% như thế này ngay bây giờ, giả sử 300 đối tượng mỗi giây , nhưng trong bộ nhớ đệm rất lớn, chúng ta sẽ nói về hàng nghìn MB

Thôi, tôi để lại cho bạn, cái này bây giờ, bình luận và cũng lưu ý đến những người đã nói với tôi rằng họ không thể lưu vào bộ nhớ cache và lọc các trang https (SSL) ở mực 3.5 trở lên, tôi sẽ sớm đưa chúng đến với bạn, hãy theo dõi blog này.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   Jose Albert dijo

    Bổ sung tuyệt vời cho phần đầu tiên!

    Có rất nhiều tài liệu về Squid về nó, nhưng không phải lúc nào bạn cũng có thể tìm ra được những lựa chọn thiết thực nhất với những giải thích tương ứng và các kịch bản sử dụng thực tế có thể xảy ra!

    Như mọi khi, tôi mong chờ phần thứ ba của nó!

    1.    brodydalle dijo

      Cám ơn bạn đã góp ý. Nó là chính xác, một lời giải thích ngắn gọn về tất cả các yếu tố liên quan và một thiết lập phương pháp hay nhất. Tuy nhiên, tôi luôn chú ý đến những nhận xét và kinh nghiệm riêng của bạn.

  2.   nghệ thuật dijo

    Xin chào, tôi gặp sự cố với các bản cập nhật windows và phần mềm chống vi-rút. Tôi có khoảng 120 máy tính tại cơ sở của mình. Bạn có thể cho tôi một ý tưởng về cách cải thiện tình hình này. Cảm ơn sự giúp đỡ của bạn và xin chúc mừng về bài viết.

    1.    brodydalle dijo

      Xin chào, cảm ơn bạn đã tham gia .. tốt nếu tôi có thể giúp bạn, nhưng giải thích rõ vấn đề của bạn là gì, bạn không thể tải xuống các bản cập nhật? Bạn đã đặt proxy trong các tùy chọn Internet và tương tự trong các tùy chọn proxy của trình duyệt? Bạn đã kiểm tra các cổng chưa? Hay bạn muốn lưu vào bộ nhớ cache các bản cập nhật này?

      1.    nghệ thuật dijo

        Điều tôi cần là mỗi khi máy tính tải xuống windows hoặc bản cập nhật chống vi-rút, nó sẽ nằm trong bộ nhớ cache trong khoảng thời gian khoảng một tháng, theo cách này tôi muốn tiết kiệm băng thông, kể từ mỗi buổi sáng. tất cả các máy tính bắt đầu tải xuống các bản cập nhật giống nhau và kết nối đã bão hòa.

        Cảm ơn bạn đã giúp đỡ.

    2.    Mario dijo

      Một máy chủ với Squid hoạt động, vì chúng là những bản tải xuống http không được mã hóa đơn giản. Các giải pháp khác cho bộ nhớ cache là WSUS và Altiris, bình thường ở các công ty.

      1.    nghệ thuật dijo

        Cảm ơn Mario, tôi sẽ ghi nhớ nó.

    3.    brodydalle dijo

      ok đã sẵn sàng, tôi hiểu, hãy kiểm tra liên kết này. http://wiki.squid-cache.org/SquidFaq/WindowsUpdate. để bộ đệm ẩn chống vi-rút, bạn phải biết các bản cập nhật được tải xuống từ đâu và dưới phần mở rộng nào (ví dụ .exe) và lưu vào bộ nhớ đệm ...

  3.   nghệ thuật dijo

    Cảm ơn bạn đã giúp đỡ.

  4.   Erick dijo

    Chào buổi sáng các bạn, các bạn có thể hỗ trợ trường hợp của mình được không Vì tôi có mực 2.7 .STABLE9 trên debian 6, và tôi đã cấu hình mọi thứ và khi gắn nó vào môi trường 10 máy tính, tôi nhận được thư bình thường, vấn đề nằm ở chỗ khi tôi gắn nó cho 90 máy tính, nó chỉ kéo dài vài giây hoạt động và từ đó mọi người đều họ bị bỏ lại mà không có internet. Bạn có thể hỗ trợ tôi?

  5.   JOSE RIVAS dijo

    Giải thích tuyệt vời, cơ bản nhưng rất rõ ràng và chính xác. Cá nhân tôi giải thích tốt nhất đã có thể đọc.
    Tôi có một câu hỏi, có thể cache các ứng dụng Android như apk và xapk không?
    Và đâu sẽ là cách chính xác để định cấu hình bộ đệm động bất kể nguồn gốc của tệp là gì?
    Tôi sử dụng pfSense 2.4.5.