Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Web Development

Ўвядзенне ў Apache

by
Difficulty:BeginnerLength:LongLanguages:

Belarusian (беларуская мова) translation by Alex Grigorovich (you can also view the original English article)

Калі Apache заўсёды здаваўся вам чорнай скрыняй? Прыйшоў час даведацца, што адбываецца за кулісамі!

Apache - самы папулярны вэб-сервер.

Задача вэб-сервера заключаецца ў тым, каб прымаць запыты ад кліентаў і адпраўляць адказы на гэтыя запыты. Вэб-сервер атрымлівае URL-спасылку, перакладае яго ў імя файла (для статычных запытаў) і адпраўляе гэты файл праз Інтэрнэт з лакальнага дыска ці, на прыклад, перакладае яго на імя праграмы (для дынамічных запытаў), выконвае яе, а затым адпраўляе выходныя дадзеныя гэтай праграмы назад праз Інтэрнэт, які запытвае. Калі па якой-небудзь прычыне вэб-сервер не змог апрацаваць і завяршыць запыт, замест гэтага ён адправіць паведамленне пра памылку.  Слова, вэб-сервер, можа спасылацца на сам кампутар (кампутар / абсталяванне) ці на праграмнае забеспячэнне, якое атрымлівае запыты і адпраўляе адказы.

Apache з'яўляецца самым папулярным вэб-серверам (пасля яго ідзе Microsoft IIS). Можна назваць некалькі прычын яго папулярнасці: Яго можна бясплатна спампаваць і ўсталяваць.

  1. Яго можна бясплатна спампаваць і ўсталяваць.
  2. У яго адкрыты зыходны код: ён даступны ўсім і кожнаму, што ў прынцыпе дазваляе любому чалавеку (каму гэта па сілах) наладзіць код, аптымізаваць яго і выправіць памылкі і недахопы ў бяспецы. Карыстальнікі могуць дадаваць новыя функцыі і пісаць новыя модулі.
  3. Ён падыходзіць для любых патрэбаў: Apache можна выкарыстоўваць для невялікіх сайтаў з адной ці дзвюма старонкамі або для вялікіх вэб-сайтаў з сотнямі і тысячамі старонак, які кожны месяц абслугоўвае мільёны пастаянных наведвальнікаў. Ён можа абслугоўваць як статычны, так і дынамічны кантэнт.

Што такое Apache?

Функцыянальнасць, якая вам не патрэбна ці важная, можа быць лёгка выдалена.

HTTP-сервер Apache - гэта праграмнае забеспячэнне (ці праграма), якое працуе ў фонавым рэжыме ў адпаведнай аперацыйнай сістэме, падтрымлівае шматзадачнасць і прадастаўляе паслугі для іншых прыкладанняў, якія да яе падключаюцца, напрыклад, кліенцкія вэб-браўзэры. Apache быў упершыню распрацаваны для працы з аперацыйнымі сістэмамі Linux / Unix, але пазней быў адаптаваны для працы ў іншых сістэмах, уключаючы Windows і Mac. Бінарны файл Apache, які працуе пад UNIX, называецца HTTPd (скарочана для HTTP-daemon), а пад win32 зывецца Apache.exe.

Ўстаноўка Apache на Linux не патрабуе шмат навыкаў праграмавання (хоць гэта не занадта лёгка). Ўстаноўка Apache на Linux не патрабуе шмат навыкаў праграмавання (хоць гэта не занадта лёгка).

Арыгінальнае ядро ​​Apache з'яўляецца даволі простым і змяшчае абмежаваную колькасць функцый. Яго сіла хутчэй звязана з дадатковай функцыянальнасцю, укаранёнай ў многія модулі, якія напісаны праграмістамі і могуць быць устаноўлены для пашырэння магчымасцяў сервера.  Каб дадаць новы модуль, усё, што вам трэба зрабіць, гэта ўсталяваць яго і перазапусціць сервер Apache. Функцыянальнасць, у якой вы не маеце патрэбу або хочаце, можа быць лёгка выдалена, што на самой справе лічыцца добрым момантам, так як яна робіць сервер маленькім і лёгкім, ён пачынае працаваць хутчэй, спажывае менш сістэмных рэсурсаў і памяці і робіць сервер меней схільным уразлівасцям ў плане бяспекі. Сервер Apache таксама падтрымлівае іншыя модулі, некаторыя з якіх былі дададзены ў Apache 2 як пастаянныя функцыі. Сервер Apache вельмі лёгка інтэгруецца з іншымі праграмамі з адкрытым зыходным кодам, такімі як PHP і MySQL, што робіць яго яшчэ больш магутным, чым ён ёсць.

Вэб-сервер у яго найпростай форме - гэта кампутар з адмысловым праграмным забеспячэннем і падключэннем да Інтэрнэту, якое дазваляе яму ўзаемадзейнічаць з іншымі прыладамі.

Кожная прылада, падлучанае да сеткі, мае IP-адрас, праз які іншыя падключаюцца да яго і маюць зносіны з ім.  Гэты IP-адрас падобны на звычайны адрас, які вам патрэбен у рэальным жыцці, каб патэлефанаваць або наведаць кагосьці.  Калі ў іх няма адрасу, вы не ведаеце, як патэлефанаваць або звязацца з імі. IP-адрасы служаць сапраўды для такой жа мэты. Калі ў прылады не было такой прылады, іншыя кампутары ў той жа сеткі не ведалі б, як яго дасягнуць.

Сервер Apache прапануе шэраг паслуг, якія кліенты могуць выкарыстоўваць. Гэтыя службы прапануюцца з выкарыстаннем розных пратаколаў праз розныя парты і ўключаюць у сябе: пратакол перадачы гіпертэксту (HTTP), звычайна праз порт 80, просты пратакол перадачы пошты (SMTP), звычайна праз порт 25, службу даменных імёнаў (DNS) для супастаўлення даменных імёнаў іх адпаведныя IP-адрасы, звычайна праз порт 53 і пратакол перадачы файлаў (FTP) для загрузкі і запампоўкі файлаў, звычайна праз порт 21.


Як працуе Apache

Асноўная роля Apache звязана з камунікацыяй па сетках і выкарыстоўвае пратакол TCP / IP (пратакол кіравання перадачай / інтэрнэт-пратакол, які дазваляе прыладам з IP-адрасамі ў адной сеткі ўзаемадзейнічаць адзін з адным).

Пратакол TCP / IP уяўляе сабой набор правілаў, якія вызначаюць, як кліенты апрацоўваюць запыты і як рэагуюць серверы, і вызначаюць, як дадзеныя перадаюцца, дастаўляюцца, прымаюцца і пацвярджаюцца.

Сервер Apache настроены для працы праз файлы канфігурацыі, у якія дадаюцца дырэктывы для кіравання яго паводзінамі. У сваім стане чакання Apache праслухоўвае IP-адрасы, названыя ў яго файле канфігурацыі (HTTPd.conf). Кожны раз, калі ён атрымлівае запыт, ён аналізуе загалоўкі, прымяняе правілы, названыя для яго ў файле Config, і прымае меры.

Але на адным серверы можа размяшчацца мноства вэб-сайтаў, а не толькі адзін, але для знешняга свету яны здаюцца аддзеленымі адзін ад аднаго.  Каб дасягнуць гэтага, кожнаму з гэтых сайтаў павінна быць прысвоена іншае імя, нават калі ўсе яны будуць адлюстроўвацца ў канчатковым выніку на адным і тым жа кампутары. Гэта дасягаецца за кошт выкарыстання так званых віртуальных хастоў.

Паколькі IP-адрасы цяжка запомніць, мы, як наведвальнікі пэўных сайтаў, звычайна ўводзім адпаведныя ім імёны даменаў у поле URL-адрасы ў нашых браўзэрах. Затым браўзэр падключаецца да DNS-серверу, які перакладае імёны даменаў на іх IP-адрасы. Затым браўзэр бярэ які вяртаецца IP-адрас і падключаецца да яго. браўзэртаксама адпраўляе Host header з запытам, каб, калі сервер размяшчае некалькі сайтаў, ён будзе ведаць, які з іх павінен абслугоўваць.

Напрыклад, увод тэксту на www.google.com ў поле адрасу вашага браўзэра можа адправіць наступны запыт на сервер па гэтым IP-адрасе:

Першы радок утрымлівае некалькі фрагментаў інфармацыі.  Па-першае, існуе метад (у дадзеным выпадку гэта GET), URI, які паказвае, якую старонку трэба атрымаць ці якую праграму трэба запусціць (у гэтым выпадку гэта каранёвай каталог, пазначаны /), і, нарэшце, ёсць HTTP-версія (якая у дадзеным выпадку з'яўляецца HTTP 1.1).

HTTP - гэта пратакол без адказу.

HTTP - гэта пратакол без адказу. Гэта набор правілаў, якія рэгулююць сувязь паміж кліентам і серверам. Кліент (звычайна, але не абавязкова вэб-браўзэр) робіць запыт, сервер адпраўляе адказ, а сувязь спыняецца. Сервер не чакае дадатковай сувязі, як у выпадку з іншымі пратаколамі, якія застаюцца ў стане чакання пасля завяршэння запыту.

Калі запыт выкананы паспяхова, сервер вяртае код стану 200 (што азначае, што старонка знойдзена), загалоўкі адказаў разам з запытанага дадзенымі. Загаловак адказу сервера Apache можа выглядаць прыкладна так:

Першы радок у загалоўку адказу - гэта радок стану. Ён змяшчае версію HTTP і код стану. Далей варта дата, а затым некаторая інфармацыя аб хост-серверы і вынятых дадзеных Загаловак Content-Type дазваляе кліенту даведацца тып вынятых дадзеных, каб ён ведаў, як яго апрацоўваць. Content-Lengthlets кліент ведае памер цела адказу. Калі запыт не пайшоў, кліент атрымае код памылкі і паведамленне, напрыклад, наступны загаловак адказу ў выпадку памылкі старонкі, ня вынік:


TCP/IP Protocol

TCP / IP - гэта фактычна два пратаколы, пабудаваныя адзін над іншым.

TCP / IP - гэта фактычна два пратаколы, пабудаваныя адзін над іншым.  IP-пратакол адказвае за перадачу перададзеных дадзеных з адной кропкі ў іншую. Ён пераносіць дадзеныя паміж двума кропкамі, разбівае іх на меншыя пакеты, далучае зыходны і мэтавай адрасы да кожнага пакета і перадае дадзеныя.

TCP апрацоўвае частка, якая ўключае ўсталяванне злучэння паміж двума бакамі, сочачы за тым, каб дадзеныя даходзілі да месца прызначэння, клапоцячыся пра любую страты дадзеных і кіраванні аднаўленнем дадзеных.

Пасля атрымання паведамлення бок-атрымальнік адпраўляе паведамленне з пацвярджэннем (ACK) адпраўніку, калі ўсё ідзе добра, паведамляючы яму аб прыбыцці дадзеных. Калі нешта пойдзе не так, як, напрыклад, ўзнікненне сітуацыі з стратай дадзеных, адрасат адпраўляе паведамленне Not Acknowledged (NAK), паведамляючы пра гэта Адпраўляйцеся вузлу праблемы і інфармуючы яго аб неабходнасці паўторнай перадачы пакета дадзеных.

Як абмяркоўвалася раней, Apache прапануе мноства сэрвісаў, з якімі кліенты могуць захацець падлучыцца, каб выкарыстоўваць ці здабываць выгаду.  TCP кіруе кожнай службай, так што да яе ажыццяўляецца доступ праз пэўны порт для адрознівання розных службаў. Такім чынам, ён гарантуе, што любы дадзены інтэрфейс (або хост) можа прапаноўваць некалькі сэрвісаў. Таму, калі кліент падключаецца да хасту, ён перадае нумар порта разам з IP-адрасам.  Браўзэры выкарыстоўваюць пратакол HTTP, які па змаўчанні выкарыстоўвае порт 80, таму няма неабходнасці ў далейшай спецыфікацыі.

Наступная выява ўяўляе сабой хуткі здымак майго FTP-праграмнага забеспячэння (WinScp). Як вы бачыце, для FTP-сервера мне не толькі трэба паказаць IP-адрас (або ўвесці імя дамена), але мне таксама неабходна ўказаць нумар порта, праз які мой сервер прадастаўляе паслугу.  У выпадку FTP нумар порта роўны 21.  У выпадку FTP нумар порта роўны 21. У выпадку SFTP (абаронены FTP) нумар порта роўны 22.

Пад вокнамі файл называецца Services, і яго можна знайсці ў тэчцы C: \ WINNT \ system32 \ drivers \ etc \ Наступная каманда адлюструе змесціва файла:

Ніжэй прыведзены здымак экрана з часткай файла.  Як вы можаце бачыць, сэрвісы пералічаны ў першым слупку, за якім варта нумар порта, да якога трэба атрымаць доступ, і імя пратаколу, які выкарыстоўваецца службай.

Пад вокнамі файл называецца Services, і яго можна знайсці ў тэчцы C: \ WINNT \ system32 \ drivers \ etc \


Inetd

Каб захаваць сістэмныя рэсурсы, UNIX апрацоўвае многія свае службы праз internet daemon.

Каб захаваць сістэмныя рэсурсы, UNIX апрацоўвае многія свае службы праз internet-daemon (inetd), адрозненне ад стала працуе daemon. Inetd - суперсервер, які слухае розныя парты і апрацоўвае запыты назлучэнне, атрымліваючы іх, ініцыіруюць новую копію адпаведнага daemon (праграмы). Новая копія праграмы затым бярэ яе адтуль і працуе з кліентам, а inted вяртаецца да праслухоўвання партоў сервера, якія чакаюць апрацоўкі новых кліенцкіх запытаў. Пасля таго, як запыт апрацаваны і сувязь завершана, daemon завяршае працу.


Агульная структура

Як ужо згадвалася раней, Apache можа быць усталяваны ў розных аперацыйных сістэмах. Незалежна ад выкарыстоўванай платформы, размешчаны вэб-сайт, як правіла, мае чатыры асноўных каталога: htdocs, conf, logs, cgi-bin.

htdocs з'яўляецца каталогам дакументаў вэб-сервера Apache па змаўчанні, гэта значыць гэта агульнадаступны каталог, змесціва якога звычайна даступна для кліентаў,падключаюцца праз Інтэрнэт. Ён змяшчае ўсе статычныя старонкі і дынамічны кантэнт, якія будуць абслугоўвацца пасля атрымання HTTP-запыту для іх. Паколькі файлы і падкаталогі ў htdocs даступныя для грамадскасці, правільная апрацоўка дазволаў на файлы мае вялікае значэнне, каб не паставіць пад пагрозу бяспеку і бяспеку сервера.

conf - гэта каталог, у якім размешчаны ўсе файлы канфігурацыі сервера. Файлы канфігурацыі ў асноўным ўяўляюць сабой тэкставыя файлы, у якіх дадаюцца дырэктывы для кіравання паводзінамі і функцыянальнасцю вэб-сервера. Кожная дырэктыва звычайна змяшчаецца ў асобную радок, а хэш (#) паказвае каментар, таму радок, пройдзеная ім, ігнаруецца.

logs - гэта каталог, у якім захоўваюцца часопісы сервера, часопісы доступу Apache і часопісы памылак.  HTTP-сервер Apache дае мноства розных механізмаў для рэгістрацыі за ўсё, што адбываецца на ім, ад першапачатковага запыту праз працэс супастаўлення URL-адрасоў да канчатковага вырашэння злучэння, уключаючы любыя памылкі, якія маглі адбыцца ў працэсе. У дадатак да гэтага іншыя модулі могуць прадастаўляць магчымасці вядзення часопіса або ўводзіць запісы ў існуючыя файлы часопісаў, а прыкладання, такія як скрыпты PHP або іншыя апрацоўшчыкі, могуць адпраўляць паведамленні ў часопіс памылак сервера.

cgi-bin - гэта каталог, у якім захоўваюцца скрыпты CGI. CGI (Common Gateway Interface) вызначае спосаб ўзаемадзеяння вэб-сервера з вонкавымі праграмамі стварэння кантэнту, якія часта называюцца CGI-праграмамі або CGI-скрыптамі. Гэта праграмы або сцэнары абалонкі, якія напісаны для выканання Apache ад імя сваіх кліентаў.

Важна адзначыць, што вышэйзгаданыя імёны файлаў і каталогаў (а таксама месцазнаходжання) могуць адрознівацца ад аднаго сервера да іншага ў залежнасці ад устаноўленага водару Apache і аперацыйнай сістэмы, у якой ён працуе. Ролі, аднак, застаюцца ранейшымі.


Заключэнне

... з больш чым паловай сайтаў у Інтэрнэце, якія працуюць на ім.

Apache быў самым папулярным вэб-серверам у Інтэрнэце з 1996 года, звязаны з больш чым паловай сайтаў у Інтэрнэце, якія працуюць на ім. Ён адыграў ключавую ролю ў фарміраванні і стварэнні World Wide Web, чым ён і з'яўляецца да сённяшняга дня. Прычыны яго поспеху відавочныя і, як відаць, ён, верагодна, застанецца ў лідэрах, па меншай меры, на працягу даволі доўгага часу. Наш сённяшні туториал павінен стаць ўступнай сэсіяй для гэтага магутнага праграмнага забеспячэння, і я спадзяюся, што мы дапамаглі зразумець, наколькі Apache выдатны інструмент і як ён працуе.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.