Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Кэштеу және жіберу HTTP веб-проксисі
Caching and forwarding HTTP web proxy
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 is a caching and forwarding HTTP web proxy. It has a wide variety of uses, including speeding up a web server by caching repeated requests, caching World Wide Web (WWW), Domain Name System (DNS), and other network lookups for a group of people sharing network resources, and aiding security by filtering traffic. Although used for mainly HTTP and File Transfer Protocol (FTP), Squid includes limited support for several other protocols including Internet Gopher, Secure Sockets Layer (SSL), Squid is free software released under the GNU General Public License.
Тарих
Squid бастапқыда Колорадо Боулдер университетіндегі Harvest жобасының бөлігі ретінде, Harvest нысандарының кэші ретінде әзірленген. Бағдарлама бойынша одан әрі жұмыстар Калифорния университетінде, Сан-Диегода аяқталды және Ұлттық ғылым қорынан екі грант арқылы қаржыландырылды. Дуэн Весселс «Harvest-тің соңғы коммерциялық емес нұсқасын» бұрқақтады және оны NetCache-ке айналған Cached 2.0 деп аталатын коммерциялық бұрқақпен шатастырудан аулақ болу үшін Squid деп атады. Squid 1.0.0 нұсқасы 1996 жылдың шілдесінде жарияланды. Қазір Squid көбінесе еріктілердің күшімен дамытылуда. 2023 жылдың қазанында Squid-те бастапқы хабарланғаннан кейін екі жарым жыл бойы түзетілмеген 35 қауіпсіздік көйлектерінің бар екені белгілі болды.
Squid was originally developed as the Harvest object cache, part of the Harvest project at the University of Colorado Boulder. Further work on the program was completed at the University of California, San Diego and funded via two grants from the National Science Foundation. Duane Wessels forked the "last pre commercial version of Harvest" and renamed it to Squid to avoid confusion with the commercial fork called Cached 2.0, which became NetCache. Squid version 1.0.0 was released in July 1996. Squid is now developed almost exclusively through volunteer efforts. In October 2023, it was revealed that Squid continued to suffer from 35 security vulnerabilities which had not been fixed for two and a half years after their initial reporting.
Негізгі функционалдық
Squid прокси-сервері орнатылғаннан кейін, веб-браузерлерді оны прокси HTTP-сервері ретінде пайдалану үшін конфигурациялауға болады, бұл Squid-ке қайтарылған құжаттардың көшірмелерін сақтауға мүмкіндік береді, ал бірдей құжаттарға қайталанған сұраулар кезінде қол жеткізу уақытын және жолақтың тұтынылуын азайтуға болады. Бұл көбінесе интернет-провайдерлерге клиенттеріне жылдамдықты арттыру үшін, сондай-ақ интернет-қосылымын бөлісетін жергілікті желілерге (LAN) пайдалы. Кэштеу серверлерін веб-қызмет операторы басқаратындықтан, кэштеу проксилері пайдаланушының жеке өзін жасырмайды және оларды анонимдік проксилермен шатастыруға болмайды. Клиенттік бағдарлама (мысалы, браузер) пайдаланғысы келетін прокси-серверді нақты көрсетуі керек (интернет-провайдер клиенттері үшін тән), немесе ол қосымша конфигурациясыз прокси-серверді пайдалана алады: «көрінбейтін кэштеу», онда барлық шығатын HTTP сұраулары Squid арқылы ұсталады және барлық жауаптар кэштеледі. Соңғысы әдетте корпоративтік ортада (барлық клиенттер бір LAN-да) қолданылады және көбінесе жоғарыда аталған құпиялылық мәселелерін тудырады. Squid-те қосылымды анонимдеуге көмектесетін кейбір мүмкіндіктер бар, мысалы клиенттік HTTP сұрауындағы белгілі бір тақырыптарды (header fields) өшіру немесе өзгерту. Олардың орнатылуы және не істейтіні Squid-ті іске қосатын компьютерді басқаратын адамға байланысты. Squid-ті көрінбейтін түрде пайдаланатын желі арқылы беттерді сұраған адамдар бұл ақпарат тіркеліп жатқанын білмеуі мүмкін. Ұлыбританиядағы ұйымдарда компьютерлер немесе интернет-қосылымдар бақыланатын болса, пайдаланушыларға міндетті түрде хабарлау керек.
After a Squid proxy server is installed, web browsers can be configured to use it as a proxy HTTP server, allowing Squid to retain copies of the documents returned, which, on repeated requests for the same documents, can reduce access time as well as bandwidth consumption. This is often useful for Internet service providers to increase speed to their customers, and LANs that share an Internet connection. Because the caching servers are controlled by the web service operator, caching proxies do not anonymize the user and should not be confused with anonymizing proxies. A client program (e. g. browser) either has to specify explicitly the proxy server it wants to use (typical for ISP customers), or it could be using a proxy without any extra configuration: "transparent caching", in which case all outgoing HTTP requests are intercepted by Squid and all responses are cached. The latter is typically a corporate set up (all clients are on the same LAN) and often introduces the privacy concerns mentioned above. Squid has some features that can help anonymize connections, such as disabling or changing specific header fields in a client's HTTP requests. Whether these are set, and what they are set to do, is up to the person who controls the computer running Squid. People requesting pages through a network which transparently uses Squid may not know whether this information is being logged. Within UK organisations at least, users should be informed if computers or internet connections are being monitored.
Кері прокси
Жоғарыда келтірілген конфигурация, клиенттердің шектеулі саны үшін веб-серверлердің шексіз санының мазмұнын кэштеу, классикалық болып табылады. Тағы бір конфигурация – «кері прокси» немесе «веб-серверді жеделдету» (.). Бұл режимде кэш клиенттердің шексіз санына, шектеулі сандағы немесе жалғыз ғана веб-серверге қызмет көрсетеді. Мысалы, егер slow.example.com – «нағыз» веб-сервер болса, ал www.example.com – оны «жеделдететін» Squid кэш-сервері болса, www.example.com-нан кез келген бетті алғаш рет сұрағанда, кэш-сервер нақты бетті slow.example.com-нан алады, ал кейінгі сұраулар сақталған көшірмені тікелей жеделдеткіштен алады (конфигурацияланатын мерзімге, содан кейін сақталған көшірме жойылады). Нәтижесінде, клиенттердің ешқандай әрекеті болмаса, бастапқы серверге трафик азаяды, яғни процессор мен жадты аз пайдалануға болады және жолақтық енінің қажеттілігі төмендейді. Алайда, бұл бастапқы сервердің қосымша конфигурациясыз трафик туралы деректерді дәл көрсетуіне мүмкіндік бермейді, себебі барлық сұраулар кері прокси-серверден келгендей болады. Бастапқы сервердегі есеп беруді бейімдеудің бір жолы – кері прокси хабарлаған X-Forwarded-For HTTP қабағатын пайдаланып, нақты клиенттің IP-мекенжайын алу. Бір Squid сервері бір уақытта қалыпты және кері прокси ретінде жұмыс істей алады. Мысалы, кәсіпорын өз веб-сайтын веб-серверде орналастыра алады, ал Squid сервері клиенттер (кәсіпорынның сыртынан веб-сайтқа кіретін клиенттер) мен веб-сервер арасында кері прокси ретінде әрекет етеді. Сол Squid сервері классикалық веб-кэш ретінде де жұмыс істей алады, кәсіпорын ішіндегі клиенттерден (яғни, өз жұмыс орындарынан интернетке кіретін қызметкерлерден) HTTP сұрауларын кэштейді, осылайша веб-жеткізілімді жеделдетеді және жолақтық еніне қойылған талаптарды азайтады.
The above setup, caching the contents of an unlimited number of webservers for a limited number of clients, is the classical one. Another setup is "reverse proxy" or "webserver acceleration" (using ). In this mode, the cache serves an unlimited number of clients for a limited number of—or just one—web servers. As an example, if slow. example. com is a "real" web server, and www. example. com is the Squid cache server that "accelerates" it, the first time any page is requested from www. example. com, the cache server would get the actual page from slow. example. com, but later requests would get the stored copy directly from the accelerator (for a configurable period, after which the stored copy would be discarded). The result, without any action by the clients, is less traffic to the source server, meaning less CPU and memory usage, and less need for bandwidth. This does, however, mean that the source server cannot accurately report on its traffic numbers without additional configuration, as all requests would seem to have come from the reverse proxy. A way to adapt the reporting on the source server is to use the X Forwarded For HTTP header reported by the reverse proxy, to get the real client's IP address. It is possible for one Squid server to serve simultaneously as a normal and a reverse proxy. For example, a business might host its own website on a web server, with a Squid server acting as a reverse proxy between clients (customers accessing the website from outside the business) and the web server. The same Squid server could act as a classical web cache, caching HTTP requests from clients within the business (i. e., employees accessing the internet from their workstations), so accelerating web access and reducing bandwidth demands.
Орташа қашықтықтың шектері
Мысалы, HTTP протоколының бір ерекшелігі – сұранысты сілтеме жасалған ресурс деректерінің шегіне дейін қадағалау. Бұл мүмкіндікті YouTube сияқты бейне ағынды веб-сайттар кеңінен пайдаланады, сондықтан егер пайдаланушы бейненің барыс жолағының ортасына басқанда, сервер файлдың ортасынан деректерді жіберуді бастайды, файлдың барлығын басынан жібермей, пайдаланушы алдыңғы деректерді жүктеуді аяқтауын күтеді. Microsoft Windows Update-те де ішінара жүктеулер жиі қолданылады, сондықтан өте үлкен жаңарту пакеттері фондық режимде жүктеліп, пайдаланушы компьютерді өшірсе немесе интернеттен ажыраса, жүктеу ортасынан тоқтатылады. Metalink жүктеу форматы клиенттерге бөліктеп жүктеуді ішінара сұраулар жіберіп, оларды бірнеше көшірмелерге бөліп тарату арқылы жүзеге асыруға мүмкіндік береді. Squid бастапқы веб-серверге ішінара сұрауларды жіберуге қабілетті. Кэштен жылдам жауап алу үшін Squid сақтағышында сол объектінің толық көшірмесі болуы тиіс. Егер прокси арқылы бейне көретін пайдаланушы бейне толық жүктелмей тұрып басқа бетке өтіп кетсе, Squid ішінара жүктеуді қайта пайдалану үшін сақтай алмайды және деректерді жойып жібереді. Мұндай жүктеулерді жалғастыру және кэшке сақтау үшін арнайы конфигурациялау қажет.
For example, a feature of the HTTP protocol is to limit a request to the range of data in the resource being referenced. This feature is used extensively by video streaming websites such as YouTube, so that if a user clicks to the middle of the video progress bar, the server can begin to send data from the middle of the file, rather than sending the entire file from the beginning and the user waiting for the preceding data to finish loading. Partial downloads are also extensively used by Microsoft Windows Update so that extremely large update packages can download in the background and pause halfway through the download, if the user turns off their computer or disconnects from the Internet. The Metalink download format enables clients to do segmented downloads by issuing partial requests and spreading these over a number of mirrors. Squid can relay partial requests to the origin web server. In order for a partial request to be satisfied at a fast speed from cache, Squid requires a full copy of the same object to already exist in its storage. If a proxy video user is watching a video stream and browses to a different page before the video completely downloads, Squid cannot keep the partial download for reuse and simply discards the data. Special configuration is required to force such downloads to continue and be cached.