Кіріспе

Кэштеу және жіберу HTTP веб-проксисі

Squid – кэштеу және жіберу HTTP веб-проксисі. Ол кең спектрлі қолданыстарға ие, соның ішінде қайталама сұрауларды кэштеу арқылы веб-сервердің жұмысын жылдамдату, World Wide Web (WWW), Domain Name System (DNS) және желілік ресурстарды ортақ пайдаланатын топ үшін басқа желілік іздеулерді кэштеу, сондай-ақ трафикті сүзгілеу арқылы қауіпсіздікті арттыру мүмкіндіктерін қамтиды. Көбінесе HTTP және Файлдарды беру протоколы (FTP) үшін қолданылса да, Squid Internet Gopher, Secure Sockets Layer (SSL) сияқты бірнеше басқа протоколдарды да шектеулі түрде қолдайды. Squid – GNU General Public License лицензиясымен таратылатын ақысыз бағдарламалық қамтамасыз ету.

Тарих

Squid бастапқыда Колорадо Боулдер университетіндегі Harvest жобасының бөлігі ретінде, Harvest нысандарының кэші ретінде әзірленген. Бағдарлама бойынша одан әрі жұмыстар Калифорния университетінде, Сан-Диегода аяқталды және Ұлттық ғылым қорынан екі грант арқылы қаржыландырылды. Дуэн Весселс «Harvest-тің соңғы коммерциялық емес нұсқасын» бұрқақтады және оны NetCache-ке айналған Cached 2.0 деп аталатын коммерциялық бұрқақпен шатастырудан аулақ болу үшін Squid деп атады. Squid 1.0.0 нұсқасы 1996 жылдың шілдесінде жарияланды. Қазір Squid көбінесе еріктілердің күшімен дамытылуда. 2023 жылдың қазанында Squid-те бастапқы хабарланғаннан кейін екі жарым жыл бойы түзетілмеген 35 қауіпсіздік көйлектерінің бар екені белгілі болды.

Негізгі функционалдық

Squid прокси-сервері орнатылғаннан кейін, веб-браузерлерді оны прокси HTTP-сервері ретінде пайдалану үшін конфигурациялауға болады, бұл Squid-ке қайтарылған құжаттардың көшірмелерін сақтауға мүмкіндік береді, ал бірдей құжаттарға қайталанған сұраулар кезінде қол жеткізу уақытын және жолақтың тұтынылуын азайтуға болады. Бұл көбінесе интернет-провайдерлерге клиенттеріне жылдамдықты арттыру үшін, сондай-ақ интернет-қосылымын бөлісетін жергілікті желілерге (LAN) пайдалы. Кэштеу серверлерін веб-қызмет операторы басқаратындықтан, кэштеу проксилері пайдаланушының жеке өзін жасырмайды және оларды анонимдік проксилермен шатастыруға болмайды. Клиенттік бағдарлама (мысалы, браузер) пайдаланғысы келетін прокси-серверді нақты көрсетуі керек (интернет-провайдер клиенттері үшін тән), немесе ол қосымша конфигурациясыз прокси-серверді пайдалана алады: «көрінбейтін кэштеу», онда барлық шығатын HTTP сұраулары Squid арқылы ұсталады және барлық жауаптар кэштеледі. Соңғысы әдетте корпоративтік ортада (барлық клиенттер бір LAN-да) қолданылады және көбінесе жоғарыда аталған құпиялылық мәселелерін тудырады. Squid-те қосылымды анонимдеуге көмектесетін кейбір мүмкіндіктер бар, мысалы клиенттік HTTP сұрауындағы белгілі бір тақырыптарды (header fields) өшіру немесе өзгерту. Олардың орнатылуы және не істейтіні Squid-ті іске қосатын компьютерді басқаратын адамға байланысты. Squid-ті көрінбейтін түрде пайдаланатын желі арқылы беттерді сұраған адамдар бұл ақпарат тіркеліп жатқанын білмеуі мүмкін. Ұлыбританиядағы ұйымдарда компьютерлер немесе интернет-қосылымдар бақыланатын болса, пайдаланушыларға міндетті түрде хабарлау керек.

Кері прокси

Жоғарыда келтірілген конфигурация, клиенттердің шектеулі саны үшін веб-серверлердің шексіз санының мазмұнын кэштеу, классикалық болып табылады. Тағы бір конфигурация – «кері прокси» немесе «веб-серверді жеделдету» (.). Бұл режимде кэш клиенттердің шексіз санына, шектеулі сандағы немесе жалғыз ғана веб-серверге қызмет көрсетеді. Мысалы, егер slow.example.com – «нағыз» веб-сервер болса, ал www.example.com – оны «жеделдететін» Squid кэш-сервері болса, www.example.com-нан кез келген бетті алғаш рет сұрағанда, кэш-сервер нақты бетті slow.example.com-нан алады, ал кейінгі сұраулар сақталған көшірмені тікелей жеделдеткіштен алады (конфигурацияланатын мерзімге, содан кейін сақталған көшірме жойылады). Нәтижесінде, клиенттердің ешқандай әрекеті болмаса, бастапқы серверге трафик азаяды, яғни процессор мен жадты аз пайдалануға болады және жолақтық енінің қажеттілігі төмендейді. Алайда, бұл бастапқы сервердің қосымша конфигурациясыз трафик туралы деректерді дәл көрсетуіне мүмкіндік бермейді, себебі барлық сұраулар кері прокси-серверден келгендей болады. Бастапқы сервердегі есеп беруді бейімдеудің бір жолы – кері прокси хабарлаған X-Forwarded-For HTTP қабағатын пайдаланып, нақты клиенттің IP-мекенжайын алу. Бір Squid сервері бір уақытта қалыпты және кері прокси ретінде жұмыс істей алады. Мысалы, кәсіпорын өз веб-сайтын веб-серверде орналастыра алады, ал Squid сервері клиенттер (кәсіпорынның сыртынан веб-сайтқа кіретін клиенттер) мен веб-сервер арасында кері прокси ретінде әрекет етеді. Сол Squid сервері классикалық веб-кэш ретінде де жұмыс істей алады, кәсіпорын ішіндегі клиенттерден (яғни, өз жұмыс орындарынан интернетке кіретін қызметкерлерден) HTTP сұрауларын кэштейді, осылайша веб-жеткізілімді жеделдетеді және жолақтық еніне қойылған талаптарды азайтады.

Орташа қашықтықтың шектері

Мысалы, HTTP протоколының бір ерекшелігі – сұранысты сілтеме жасалған ресурс деректерінің шегіне дейін қадағалау. Бұл мүмкіндікті YouTube сияқты бейне ағынды веб-сайттар кеңінен пайдаланады, сондықтан егер пайдаланушы бейненің барыс жолағының ортасына басқанда, сервер файлдың ортасынан деректерді жіберуді бастайды, файлдың барлығын басынан жібермей, пайдаланушы алдыңғы деректерді жүктеуді аяқтауын күтеді. Microsoft Windows Update-те де ішінара жүктеулер жиі қолданылады, сондықтан өте үлкен жаңарту пакеттері фондық режимде жүктеліп, пайдаланушы компьютерді өшірсе немесе интернеттен ажыраса, жүктеу ортасынан тоқтатылады. Metalink жүктеу форматы клиенттерге бөліктеп жүктеуді ішінара сұраулар жіберіп, оларды бірнеше көшірмелерге бөліп тарату арқылы жүзеге асыруға мүмкіндік береді. Squid бастапқы веб-серверге ішінара сұрауларды жіберуге қабілетті. Кэштен жылдам жауап алу үшін Squid сақтағышында сол объектінің толық көшірмесі болуы тиіс. Егер прокси арқылы бейне көретін пайдаланушы бейне толық жүктелмей тұрып басқа бетке өтіп кетсе, Squid ішінара жүктеуді қайта пайдалану үшін сақтай алмайды және деректерді жойып жібереді. Мұндай жүктеулерді жалғастыру және кэшке сақтау үшін арнайы конфигурациялау қажет.