დეკ 1, 2011
SQUID – multiple origin servers

ვებ-აქსელერატორის როლში სქვიდი გვაძლევს საშუალებას დავჰოსტოდ სხავდასხვა დომენები ერთ რევერს პროქსიზე და სერვერზე შემოსულ მოთხოვნებს სქვიდი გადაამისამართებს საწყის(origin) სერვერზე, ამის გარდა შესაძლებელია გვქონდეს რამოდენიმე საწყისი(origin) სერვერები და მოთხოვნები დომენებზე გადავამისამართოთ განსაზღვრულ საწყის სერვერებეზე მაგ. როდესაც გვინდა მოთხოვნა saite.ge, app.site.ge და kuku.ge-ზე მისდიოდეს 192.168.1.10- სერვერს და მოთხოვნა: secondiste.ge, dev.secondsite.ge და other.ge -ზე მისდიოდეს – 192.168.1.11 სერვერს. ან სიტუაცია, როდესაც 1 საწისი სერვერი ემსახურება ASP.net ფარმს და მეორე PHP/Java-ს, მაგრამ ყველა სერვისი ‘პაბლიშდება; ერთი რევერს პროქსით. ამისათვის საჭიროა დაიწეროს წესები რვაფეხასთვის.
მივყვეთ დეტალურად, მეორე სტრიქონზე, (აქედან იწყება ჩვენი კონფიგი) ავღწეროთ რა მისამართს და პორტს უსმენს სქვიდი, შემდეგ რა რეჟიმში მუშაობს და რა სახელით დაუბრუნდება კლიენტს response header-ი. visible_hostname – განაპირობებს რა სახელით გამოჩნდეს სერვერი შეცდომის გვერდებზე (403, 400 , 500 …/etc)
ასეთ მნიშვნელობას მიიღებთ თუ firebug-ით ნახახავთ GET / მოთხოვნის პასუხს.
| X-Cache | MISS from accel.anydomain.ge |
| X-Cache-Lookup | HIT from accel.anydomain.ge:80 |
მეხუთე სქტრიონზე ავღწეროთ 80 პორტი, წეს დავარქვათ “http“, შემდეგ დაგვჭირდება წვდომის გასაწერად. ავღწეროთ cache_peer,მივანიჭოთ შიდა მისამართი და გავუკეთოთ ჭდე “name“, ამ შემთხვევაში windows_srvs და linux_srvs. შემდეგ ავღწეროთ რომელი საიტები შედის linux_sites-ის ჯგუფში, ჩვენს შემთხვევაში ეს არის ცალკე ფაილი, საიტები შეგვიძლია ნებისმიერ დროს დავამატოთ აღნიშნულ ფაილში (/etc/squid/linux_sites), ისე, რომ სქვიდის კონფიგურაციას არ შევეხოთ ახალი საიტის დამატებისას, ამის შემდეგ როდესაც საიტები, http პორტი და საწყისი სერვერები აღწერილი გვაქ, ვწერთ მარტივ წესს:
| SQUID configuration | | copy code | | ? |
- cache_peer_access linux_srvs allow http linux_sites
, ამ წესის მიხედვით ის საიტები, როემლებიც გვიწერია /etc/squid/linux_sites – ფაილში მოხვდება მხოლოდ linux_srvs -სერვერზე, რომლის IP მისამართია: 192.168.1.11. ანალოგირად ვაკთებთ windows-საიტებისთვის.
| SQUID configuration | | copy code | | ? |
- http_port 91.212.213.2:80 accel defaultsite=accel.anydomain.ge vhost
- visible_hostname accel.anydomain.ge
- acl http myport 80 # áá áááááá á¥ááá á¡áá®ááá myport-á¡ áá¡ á©áá¨ááááá£áá áªáááááá.
- cache_peer 192.168.1.10 parent 80 0 no-query originserver login=PASS name=windows_srvs
- cache_peer 192.168.1.11 parent 80 0 no-query originserver login=PASS name=linux_srvs
- acl linux_sites dstdomain url_regex -i "/etc/squid/linux_sites"
- cache_peer_access linux_srvs allow http linux_sites
- acl win_sites dstdomain url_regex -i "/etc/squid/win_sites"
- cache_peer_access windows_srvs allow http win_sites
ყურადღება: ამ პოსტში განხილული იყო მხოლოდ HTTP ტრაფიკის გამიჯვნა საწყისი სერვერების მიხედვით, თუ თქვენ აპირებთ HTTPS ტრაფიკის “დაპროსქსვას” ამ შემთხვევაში გაითვალისწინეთ, რომ ორივე სერტიფიკატი (public & private) უნდა დაყენედეს რევერს პროქსიზე, სხვანაირად უბრალოდ არ იმუშავებს.
პ.ს. https-ის თემას დავუბრონდებით მომდევნო პოსტებსში.
