Predpomnjenje zunanjih ACL v Squidu: zakaj pomočnik ni klican vsakič
Načrtujte Squidove pomočnike zunanjih ACL okoli trajnih procesov, ključev predpomnilnika odločitev in izrecne zahteve po svežini avtorizacije.
Pomočnik, ki zabeleži eno zahtevo in nato utihne, je lahko običajen. Squid lahko pravilo oceni s predpomnjenim rezultatom zunanjega ACL, ne da bi pomočniku poslal novo poizvedbo.
Najprej opredelite odločitev za večkratno uporabo. »Ali ta račun sme uporabljati proxy?« zahteva drugačne vhode kot »Ali ta račun lahko doseže ta cilj?« Razširjena oblika zunanjega ACL tvori ključ predpomnilnika. Če se pomočnik odloča po uporabniškem imenu in cilju, ključ pa vsebuje le uporabniško ime, se predpomnjena odobritev lahko uporabi širše, kot je bilo mišljeno. Vključite vsak vhod, ki spremeni odgovor, in se izogibajte podrobnostim, ki le drobijo enakovredne odločitve.
Nato izberite svežino. Pozitivna ttl in negative_ttl urejata ujemajoče in neujemajoče rezultate; grace lahko začne osveževanje pred potekom vnosa. Odločite se, kako dolgo lahko predpomnjena odobritev preklicanega računa vpliva na poznejše odločitve. Nobena od teh nastavitev ne ponovno avtorizira vzpostavljenega tunela CONNECT za vsak bajt ali notranjo zahtevo HTTPS. Če pomočnik uveljavlja prometno kvoto, se dovoljeni prenosi lahko nadaljujejo po spremembi stanja.
Pomočnik je trajni udeleženec protokola, ne nujno nov skriptni proces za vsako zahtevo. Držite ga pripravljenega za zaporedne vrstice poizvedb in vsak odgovor pošljite takoj. Diagnostiko prestavite na drug kanal. Ob omogočeni sočasnosti vrnite ustrezni posredovani identifikator kanala.
Nazadnje opredelite izide počasno, nedosegljivo in notranja napaka ter poskrbite, da jih okoliški vrstni red ACL ustvari. Zasnova je popolna, ko se tako specifičnost kot dovoljena starost odgovora za večkratno uporabo ujemata z zahtevo za dostop.