แคชปลาหมึก - ตอนที่ 2

Squid ไม่เพียง แต่เป็นบริการพร็อกซีและแคชเท่านั้น แต่ยังสามารถทำอะไรได้อีกมากมาย: จัดการ acl (รายการเข้าถึง), กรองเนื้อหา, มันยังสามารถกรอง ssl ได้แม้ในโหมดโปร่งใส (วิธีพร็อกซี - โดยไม่ต้องกำหนดค่าในการตั้งค่าพร็อกซี จากเบราว์เซอร์ของพวกเขามันเหมือนกับคนที่อยู่ตรงกลางไม่มีใครรู้ว่ามันอยู่ที่นั่น) ดังนั้นฉันมักจะเห็นว่าศักยภาพทั้งหมดของแอปพลิเคชันนี้สูญเปล่าไปโดยไม่รู้วิธีกำหนดค่าแต่ละส่วน

ตอนนี้สิ่งที่น่าสนใจที่ปลาหมึกทำคือแคช (ในความคิดของฉัน) คุณจะบอกฉันว่าทำไมต้องเป็นแคชเหตุผลง่าย ๆ จัดการการใช้ความเร็วและแบนด์วิดท์ของคุณได้ดีขึ้นเป็นสิ่งสำคัญ คิดอย่างรอบคอบ 1000 คนใน บริษัท ของคุณให้คำปรึกษาทุกๆ 5 นาทีเพจทั่วไป Google Hotmail Gmail ฯลฯ ... เพื่อที่คุณจะดาวน์โหลดรูปภาพแบนเนอร์โฆษณาเนื้อหา html ซ้ำแล้วซ้ำเล่าสิ่งเหล่านี้เป็นแบบคงที่ สิ่งต่างๆไม่มีการเปลี่ยนแปลงบ่อยนักดีกว่าที่จะจัดเก็บไว้ในเครือข่ายท้องถิ่นของคุณและคุณส่งสำเนาที่คุณพิจารณาล่าสุดภายในการกำหนดค่าที่คุณพิจารณา

ต้องทำยังไงง่ายๆด้วยประโยคดังนี้

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

อย่างที่ฉันพูดเสมออย่าเชื่อในทุกสิ่งดังนั้นฉันขอเชิญคุณอ่านจากแหล่งข้อมูลอย่างเป็นทางการ ฉันแนะนำให้คุณอ่านคู่มือของประโยคนี้ ที่นี่

ประโยค รีเฟรช_รูปแบบ มันจะเป็นป้ายกำกับของเราเสมอในการเพิ่มพารามิเตอร์ใหม่ในแคช

สิ่งสำคัญรายการแคชของคุณต้องเป็นลำดับเพราะเมื่อตรงกับรายการแรกที่ตรงกับวัตถุรายการนั้นจะไม่อ่านกฎอื่น ๆ ของคุณต่อไป

นิพจน์ทั่วไปคำนึงถึงตัวพิมพ์เล็กและใหญ่ดังนั้น flv จึงไม่เหมือนกับ FLV แต่คุณสามารถหลีกเลี่ยงสิ่งนี้ได้หากต้องการโดยใช้ตัวเลือก -i . แล้วมันจะเป็นแบบนี้ รีเฟรช_รูปแบบ -i

'นาที': เป็นเวลา (นาที) ที่วัตถุจะถูกพิจารณาว่าเป็น "ล่าสุดหรือสด" และหากวัตถุนั้นไม่มีป้ายกำกับ "หมดอายุ" อย่างชัดเจน โดยค่าเริ่มต้นปลาหมึกแนะนำให้เป็น 0 ด้วยเหตุผลที่ว่าแอปพลิเคชั่นไดนามิกบางตัวสามารถทำงานแปลก ๆ blah blah blah ที่บริสุทธิ์จริงๆค่านี้ควรเป็นตัวเลขที่คุณคิดว่ามีประโยชน์และมีประสิทธิภาพสำหรับองค์ประกอบที่คุณต้องการแคช ตัวอย่าง: jpg, 1440 นาที (ต่อวัน) ดูเหมือนจะดีสำหรับฉันมันไม่เหมือนกับว่ารูปภาพของโพสต์จะเปลี่ยนทุกๆ 5 นาทีบนเพจ

"เปอร์เซ็นต์" เป็นเปอร์เซ็นต์ของอายุของวัตถุ (จากการแก้ไขครั้งล่าสุด) ที่จะถือว่าเป็น "ล่าสุดหรือใหม่" ให้ฉันอธิบายอาจจะทำการรีโหลดอย่างต่อเนื่องหรือรีเฟรชเพื่อดูการแก้ไขล่าสุดที่เกิดขึ้นกับหน้าเว็บปลาหมึกสามารถพิจารณาได้ว่ามีอยู่แล้วหรือไม่กล่าวว่า 50% ของเวลาที่เสร็จสมบูรณ์ระหว่าง นาที y แม็กซ์ดาวน์โหลดวัตถุนั้นอีกครั้งจากอินเทอร์เน็ตและให้สำเนาใหม่แก่คุณ

'สูงสุด' คือขีด จำกัด ที่สูงกว่าหรือเท่ากับ 'นาที' ระยะเวลาที่วัตถุถือว่า«ล่าสุดหรือใหม่»สมมติว่าภาพของหน้าบางหน้าได้รับการปรึกษาเพียงครั้งเดียวโดยผู้ใช้วัตถุนั้นถึงเวลาแล้ว นาทีแต่ไม่ใช่ไฟล์ แม็กซ์จากนั้นเมื่อมีการสอบถามอีกครั้งจะมีการส่งสำเนาแคช

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

ตัวเลือกเหล่านี้ส่วนใหญ่สร้างขึ้นเพื่อละเว้นพฤติกรรมที่กำหนดไว้ล่วงหน้าในภาษาและโปรโตคอลเพื่อรับประกันการใช้แคชอย่างมีประสิทธิภาพ

override-expire

มันบังคับใช้เวลาขั้นต่ำของออบเจ็กต์แม้ว่าเซิร์ฟเวอร์จะส่งเวลาหมดอายุที่สั้นลง (ตัวอย่างเช่นส่วนหัวหรือการควบคุมแคช: อายุสูงสุด) หากเราทำเช่นนี้ "คำเตือน" จะปรากฏขึ้นโดยระบุว่า "ละเมิดมาตรฐาน HTTP" แต่นั่นเป็นเพียงคำเตือนที่เราสามารถเพิกเฉยได้ ตอนนี้ถ้าเวลาที่เซิร์ฟเวอร์ส่งนานขึ้นปลาหมึกจะใช้เวลา (หมดอายุ) ของเซิร์ฟเวอร์

override-lastmod

เสริมเวลาขั้นต่ำของรายการแม้ว่ารายการนั้นจะเพิ่งแก้ไขเมื่อไม่นานมานี้

reload-into-ims

คำอธิบายสั้น ๆ คือป้องกันไม่ให้เมื่อเรากดปุ่มรีเฟรชหรือทำการร้องขอ no-cache, Squid จะส่งแคชหากไม่ได้รับการ "แก้ไขตั้งแต่" และ / หรือหากไม่มี "ส่วนหัว" ในหน้า

ignore-reload

ละเว้นการกระทำของผู้ใช้ในการกดปุ่มรีโหลดหรือรีเฟรชเพจ

ignore-no-store

ละเว้นกฎใด ๆ ในส่วนหัวเพื่อไม่ให้แคชเช่นวิดีโอ

ignore-private

ละเว้นกฎใด ๆ ในส่วนหัวเนื้อหาส่วนตัวที่ไม่ควรแคชเช่นเนื้อหา facebook

refresh-ims

Squid ติดต่อกับเซิร์ฟเวอร์เพื่อรับประกันว่าวัตถุนั้นใหม่ที่สุดหรือไม่ ถ้าเป็นเช่นนั้นมันจะส่งแคช

store-stale

Squid จะบันทึกคำตอบเหล่านั้นทั้งหมดแม้ว่าจะไม่มีวันหมดอายุ แต่ก็ไม่สามารถใช้งานได้จริงเนื่องจากมักไม่สามารถนำกลับมาใช้ใหม่ได้ หากคุณตัดสินใจที่จะเปิดใช้งานคุณต้องประกาศ max-stale = NN

max-stale=NN

หากคุณเปิดใช้งานข้างต้นคุณต้องประกาศอายุการใช้งานสูงสุดสำหรับการตอบสนองหรือปัจจัยนั้น Squid ไม่ส่งวัตถุในลักษณะนี้ แต่สามารถตรวจสอบความถูกต้องกับแหล่งที่มาได้

นี่คือตารางว่าสถานะ "FRESH" ทำงานอย่างไรตามค่าที่เราได้กล่าวถึง:

  • สดใหม่หากหมดอายุ> ตอนนี้อื่น ๆ STALE
  • STALE ถ้าอายุ> สูงสุด
  • สดใหม่ถ้า lm-factor <เปอร์เซ็นต์อื่น ๆ STALE
  • สดใหม่ถ้าอายุ <min else STALE

นี่คือตัวอย่างการกำหนดค่าสำหรับ บริษัท เฉพาะที่มีพื้นที่ดิสก์จำนวนมากอุปกรณ์ที่ดีและแบนด์วิดท์ที่ดี

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

ตอนนี้แคชไม่ได้อยู่ในฮาร์ดดิสก์เท่านั้น แต่เรายังสามารถแคชหน่วยความจำแรมได้อีกด้วยค่านี้มีไว้สำหรับกระบวนการปลาหมึกแต่ละรายการดังนั้นคุณต้องคำนึงถึงเมื่อคุณใช้ตัวเปลี่ยนเส้นทางเช่น SquidGuard

maximum_object_size_in_memory 1024 KB

ขนาดสูงสุดของวัตถุในหน่วยความจำที่ปลาหมึกจะเก็บไว้ในแรม คุณยังสามารถประกาศขั้นต่ำ


memory_replacement_policy heap GDSF
cache_replacement_policy heap GDSF

อย่างที่คุณเห็นนโยบายหนึ่งสำหรับการเปลี่ยนแคชในหน่วยความจำ RAM และอีกนโยบายหนึ่งในฮาร์ดดิสก์ มี 2 ​​นโยบาย GDSF และ LFUDA คนแรกพยายามที่จะปรับปรุงเปอร์เซ็นต์ของการเข้าชมแคชโดยมีวัตถุขนาดเล็กจำนวนมากในมืออย่างที่สองแสวงหาสิ่งที่ตรงกันข้ามมันทำให้วัตถุอยู่ในแคชโดยไม่คำนึงถึงขนาด

คำถามที่ฉันคิดว่าคุณกำลังถามฉันในตอนนี้คือฉันใช้อะไรดีถ้าคุณพิจารณาว่าในสภาพแวดล้อมของคุณพวกเขาทำการค้นหาจำนวนมากและการดาวน์โหลดเพียงไม่กี่ครั้งใช้ GDSF หากในทางตรงกันข้ามพวกเขาทำการดาวน์โหลดจำนวนมาก และแบบสอบถาม LFUDA เพียงเล็กน้อย ว่าถ้าฉันแนะนำ LFUDA เมื่อคุณจะทำฉันไม่รู้ว่า cache ในดิสก์ 1TB จะมีประสิทธิภาพมากกว่า

maximum_object_size 4 MB

ขนาดสูงสุดที่สามารถจัดเก็บวัตถุได้

cache_dir aufs /media/proxy249/cache 100 16 256

ตำแหน่งที่แคชจะถูกจัดเก็บสิ่งสำคัญคือถ้าคุณใช้ ufs, aufs หรือ diskd ทั้ง 3 ทำงานเหมือนกันมากหรือน้อยความแตกต่างคือ aufs และ diskd ทำงานร่วมกับกระบวนการแยกกันเพื่อดำเนินการ I / O บน ฮาร์ดดิสก์และหลีกเลี่ยงไม่ให้กระบวนการของปลาหมึกค้างในระหว่างการดำเนินการเหล่านี้นอกจากนี้ diskd คุณสามารถระบุจำนวนเธรดที่คุณจะมีสำหรับงานนี้ได้ ฉันแนะนำ aufs ถ้าคุณมีทีมที่ดี

ขนาด 100 (เมกะไบต์) คุณสามารถใส่ได้ 100000 เกือบ 100GB ขึ้นอยู่กับความพร้อมของคุณ 16 คือจำนวนโฟลเดอร์และ 256 คือจำนวนโฟลเดอร์ย่อย คุณสามารถเล่นได้ทั้งสองค่าขึ้นอยู่กับความเร็วของแผ่นดิสก์และทรัพยากรที่คุณมี


cache_swap_low 90
cache_swap_high 95

ตัวเลือกเหล่านี้คือค่าการแทนที่วัตถุเป็นค่าต่ำสุดและสูงสุดเป็นลายน้ำตามปลาหมึกโดยที่ตัวเลขเหล่านี้เป็นเปอร์เซ็นต์ (%) และในแคชขนาดเล็กมาก 5% เช่นนี้ตอนนี้จะสมมติว่า 300 วัตถุต่อวินาที แต่ในแคชที่มีขนาดใหญ่มากเราจะพูดถึงหลายพัน MB

ฉันจะปล่อยคุณไว้ตอนนี้แสดงความคิดเห็น และคำนึงถึงผู้ที่บอกฉันว่าไม่สามารถแคชและกรองหน้า https (SSL) ในรูปแบบ Squid 3.5 หรือสูงกว่าได้ฉันจะนำมาให้คุณเร็ว ๆ นี้คอยติดตามบล็อกนี้


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   Jose Albert dijo

    เติมเต็มภาคแรกได้ดีเยี่ยม!

    มีวรรณกรรมมากมายเกี่ยวกับ Squid แต่การไปถึงจุดที่เป็นตัวเลือกที่ใช้งานได้จริงพร้อมคำอธิบายตามลำดับและสถานการณ์การใช้งานจริงที่เป็นไปได้นั้นไม่ได้อยู่ในมือเสมอไป!

    เช่นเคยฉันหวังว่าจะได้ส่วนที่สาม!

    1.    brodydalle dijo

      ขอบคุณสำหรับความคิดเห็นของคุณ ถูกต้องคำอธิบายอย่างกระชับเกี่ยวกับองค์ประกอบที่เกี่ยวข้องทั้งหมดและการตั้งค่าแนวทางปฏิบัติที่ดีที่สุดบางประการ อย่างไรก็ตามฉันมักจะใส่ใจกับความคิดเห็นและประสบการณ์ของคุณเอง

  2.   อาร์ทัส dijo

    สวัสดีฉันมีปัญหากับการอัปเดต windows และโปรแกรมป้องกันไวรัส ฉันมีพีซีประมาณ 120 เครื่องที่สถาบันของฉัน คุณช่วยให้ฉันทราบว่าจะปรับปรุงสถานการณ์นี้ได้อย่างไร ขอขอบคุณสำหรับความช่วยเหลือและขอแสดงความยินดีกับบทความ

    1.    brodydalle dijo

      สวัสดีขอบคุณที่เข้าร่วม .. ถ้าฉันสามารถช่วยคุณได้ แต่อธิบายให้ดีว่าปัญหาของคุณคืออะไรคุณไม่สามารถดาวน์โหลดการอัปเดตได้หรือไม่? คุณใส่พร็อกซีในตัวเลือกอินเทอร์เน็ตและตัวเลือกพร็อกซีของเบราว์เซอร์ของคุณเหมือนกันหรือไม่คุณตรวจสอบพอร์ตหรือไม่หรือคุณต้องการแคชการอัปเดตเหล่านี้

      1.    อาร์ทัส dijo

        สิ่งที่ฉันต้องการคือทุกครั้งที่คอมพิวเตอร์ดาวน์โหลด windows หรือการอัปเดตโปรแกรมป้องกันไวรัสคอมพิวเตอร์จะอยู่ในแคชเป็นเวลาประมาณหนึ่งเดือนด้วยวิธีนี้ฉันต้องการประหยัดแบนด์วิดท์เนื่องจากทุกเช้าทุกครั้งที่คอมพิวเตอร์ทุกเครื่องเริ่มดาวน์โหลดเหมือนกัน อัปเดตแต่ละรายการและการเชื่อมต่ออิ่มตัว

        ขอบคุณสำหรับความช่วยเหลือของคุณ.

    2.    มาริโอ dijo

      เซิร์ฟเวอร์ที่มี Squid ใช้งานได้เนื่องจากเป็นการดาวน์โหลด http ที่ไม่เข้ารหัสอย่างง่าย โซลูชันอื่นสำหรับแคช ได้แก่ WSUS และ Altiris ซึ่งเป็นเรื่องปกติใน บริษัท ต่างๆ

      1.    อาร์ทัส dijo

        ขอบคุณมาริโอฉันจะเก็บไว้ในใจ

    3.    brodydalle dijo

      เรียบร้อยฉันเข้าใจตรวจสอบลิงค์นี้ http://wiki.squid-cache.org/SquidFaq/WindowsUpdate. ในการแคชแอนติไวรัสคุณต้องรู้ว่าการอัปเดตนั้นดาวน์โหลดมาจากที่ใดและอยู่ภายใต้ส่วนขยายใด (เช่น. exe) และทำการแคช ...

  3.   อาร์ทัส dijo

    ขอบคุณสำหรับความช่วยเหลือของคุณ.

  4.   เอริค dijo

    สวัสดีตอนเช้าเพื่อน ๆ ช่วยสนับสนุนฉันด้วยกรณีของฉัน เนื่องจากฉันมีปลาหมึก 2.7.STABLE9 บนเดเบียน 6 และฉันได้กำหนดค่าทุกอย่างแล้วและเมื่อติดตั้งในสภาพแวดล้อม 10 พีซีฉันได้รับเมลปกติปัญหาเกิดขึ้นเมื่อฉันติดตั้งเป็น 90 ชิ้นมันใช้เวลาเพียงไม่กี่วินาทีในการทำงาน และจากที่นั่นทุกคนก็ไม่เหลืออินเทอร์เน็ต คุณช่วยสนับสนุนฉันได้ไหม

  5.   โจสริวาส dijo

    คำอธิบายที่ยอดเยี่ยมพื้นฐาน แต่ชัดเจนและแม่นยำมาก โดยส่วนตัวแล้วคำอธิบายที่ดีที่สุดที่ฉันสามารถอ่านได้
    ฉันมีคำถามสามารถแคชแอปพลิเคชัน Android เช่น apk และ xapk ได้หรือไม่?
    และอะไรคือวิธีที่ถูกต้องในการกำหนดค่าไดนามิกแคชไม่ว่าจะเป็นที่มาของไฟล์ใด
    ฉันใช้ pfSense 2.4.5