Какво означава apache? Какво е Apache сървър - за начинаещи

Apache HTTP сървър(от английски неравен сървър, „сървър с кръпки“, освен това има алюзия за индианското племе Apache. Изкривеното произношение е често срещано сред руските потребители Apache) е пълнофункционален, разширяем уеб сървър, който напълно поддържа протокола HTTP/1.1 и е с отворен код.

Сървърът може да работи на почти всички популярни платформи. Има готови изпълними файловесървъри за Windows NT, Windows 9x, OS/2, Netware 5.x и няколко UNIX системи. В същото време е много лесен за инсталиране и конфигуриране.

Всъщност именно гъвкавостта на конфигурацията, както и неговата надеждност се считат за основните предимства на сървъра Apache. Позволява ви да се свържете външни модулиза предоставяне на данни, използване на СУБД за удостоверяване на потребители, модифициране на съобщения за грешки и т.н. Поддържа IPv6.

Apache се конфигурира с помощта на текстови конфигурационни файлове. Основните настройки вече са конфигурирани по подразбиране и ще работят в повечето случаи. Ако функционалността на стандартния Apache не е достатъчна, тогава е възможно да се използват различни модули, написани от Apache Group и разработчици на трети страни. Важно предимство е, че създателите активно комуникират с потребителите и отговарят на всички съобщения за грешки.

Повечето проста функция, което Apache може да направи - да стои на сървъра и да обслужва обикновен HTML сайт. Когато се получи заявка за определена страница, сървърът изпраща своя отговор на браузъра. Заявката е адресът, въведен в адресната лента на браузъра.

За разделяне на дизайнерската и функционалната част на сайта, както и за опростяване на модификацията на статични обекти, има SSI технология. Тя ви позволява да поставите цялата повтаряща се информация в един файл (например top.inc) и след това да вмъкнете връзка към нея в страниците. След това, ако е необходимо да се промени информацията, се променя информацията само в един файл. Сървърът Apache поддържа тази технология и ви позволява да използвате пълния потенциал на включванията от страна на сървъра.

Функциите на уеб сървъра се изпълняват не от самия компютър, а от програмата, инсталирана на него: тоест, когато браузърът на потребителя се свърже с уеб сървъра и изпрати GET хедър (заявка за прехвърляне на файл), това е Apache който обработва заявката. Apache проверява дали файлът, указан в заглавката GET, съществува и ако е така, го изпраща заедно със заглавките към браузъра.

Apache е един вид стандарт за уеб сървър в Интернет. Основният му конкурент е IIS (Internet Information Server) от Microsoft, който работи на Windows. Apache, въпреки че има негови версии за Windows, се инсталира основно на Unix-подобни операционни системи - Linux и FreeBSD. Трябва също да се отбележи, че повечето хостери използват Apache, а не IIS. IIS обикновено се инсталира на корпоративни сървъриработи под Windows.

Apache сървърът беше един от първите сървъри, които поддържаха виртуални сървъри (хостове). Това дава възможност за поставяне на един физически сървърняколко пълноценни уебсайта. Всеки от тях може да има собствен домейн, администратор, IP адрес и т.н.

Apache поддържа CGI и PHP технологии, както и възможност за свързване на езици. Това прави много по-лесна работата с динамични уеб страници (които всъщност са почти всички уеб страници в наши дни).

На този момент Apache сървърът вече е инсталиран на 67% от сървърите по света.

История на създаването

Apache Server е разработен и поддържан от Apache Project.

Първоначално това беше вариант на уеб сървъра NCSA, разработен в Националния център за развитие на суперкомпютри към Университета на Илинойс. Но през 1994 г. основният разработчик на NCSA напусна проекта, оставяйки последователите си да разберат сами неговия сървър. С течение на времето започнаха да се появяват корекции и допълнения към сървъра на NCSA - така наречените кръпки (кръпки, преведени от английски като „кръпки“). И през април 1995 г. беше пусната първата версия на сървъра Apache, която беше базирана на версия 1.3 на сървъра NCSA. Първата версия на Apache просто включи всички известни корекции на сървъра NCSA. И самото име Apache идва от това – „A PatCHy“.

Apache по-късно стана самостоятелно развитие. След втората версия кодът е пренаписан, така че да не съдържа намек за NCSA код. В момента сървърът на Apache се поддържа от група доброволци програмисти, Apache Group.

Сървърът Apache първоначално е разработен за операционни системи Linux и Unix, но с течение на времето бяха пуснати версии за Windows и OS/2.

В момента разработката се извършва в клон 2.2, а във версии 1.3 и 2.0 се правят само корекции на грешки в сигурността. Днес най-новата версия на клон 2.4 е версия 2.4.3, издадена на 21 август 2012 г. За първата версия най-новите поправки са означени като 1.3.42.

Уеб сървърът Apache е разработен и поддържан от отворена общност от разработчици под егидата на Apache Software Foundation и е включен в много софтуерни продукти, сред които Oracle СУБДи IBM WebSphere.

От април 1996 г. до днес той е най-популярният HTTP сървър в Интернет. Най-високите цифри са постигнати през 2012 г. - Apache работи на 67% от сървърите по света. През 2011 г. делът му е 59%, през 2009 г. – 46%, а през 2007 г. – 51%.

Диаграма на вътрешно системно повикване на Apache

Архитектура на Apache

Ядрото на Apache включва основните функционалност, като обработка на конфигурационен файл, HTTP протокол и система за зареждане на модули. Ядрото (за разлика от модулите) е разработено изцяло от Apache Software Foundation, без участието на програмисти на трети страни.

Теоретично ядрото на Apache може да функционира в чист вид, без използването на модули. Функционалността на такова решение обаче е изключително ограничена.

Ядрото на Apache е написано изцяло на езика за програмиране C.

Конфигурационната система на Apache е базирана на текст конфигурационни файлове. Има три условни нива на конфигурация:

  • Конфигурация на сървъра (httpd.conf)
  • Конфигурация виртуален хост(httpd.conf от версия 2.2, extra/httpd-vhosts.conf)
  • Конфигурация на ниво директория (.htaccess)

Той има собствен език за конфигурационен файл, базиран на блокове с директиви. Почти всички параметри на ядрото могат да се променят чрез конфигурационни файлове, включително MPM контрол. Повечето модули имат свои собствени параметри. Някои модули използват конфигурационните файлове на операционната система в своята работа (например /etc/passwd и /etc/hosts). В допълнение, параметрите могат да бъдат зададени чрез превключватели на командния ред.

Има много симетрични многопроцесорни модели за уеб сървъра Apache. Apache HTTP Server също поддържа модулност. Има повече от 500 модула, които изпълняват различни функции. Въпреки че някои от тях са разработени директно от екипа на Apache Software Foundation, повечето съществуващи модули са разработени от трети страни разработчици с отворен код.

Модулите могат или да бъдат включени в сървъра по време на компилация, или да бъдат заредени динамично чрез директиви на конфигурационния файл.

С помощта на модули можете да реализирате следното:

  1. Разширяване на поддържаните езици за програмиране
  2. Допълнение допълнителни функцииили модификация на основните.
  3. Корекция на грешка
  4. Повишена сигурност.

Някои уеб приложения, като контролните панели ISPmanager и VDSmanager, са реализирани като Apache модул.

Apache сървърът има вграден механизъм за виртуален хост. Благодарение на това е възможно пълно обслужване на множество сайтове (имена на домейни) на един IP адрес, показвайки собствено съдържание за всеки от тях.

За всеки виртуален хост можете да зададете свои собствени настройки на ядрото и модула, да ограничите достъпа до целия сайт или отделни файлове. Някои MPM, като Apache-ITK, ви позволяват да стартирате httpd процес за всеки виртуален хост с отделен uid и guid.

Има и модули, които ви позволяват да вземете под внимание и да ограничите сървърните ресурси (CPU, RAM, трафик) за всеки виртуален хост.

Интеграция с друг софтуер и езици за програмиране

За успешното интегриране на сървъра с различен софтуер, както и езици за програмиране има допълнителни модули:

  • PHP (mod_php)
  • Python (mod python, mod wsgi)
  • Ruby (apache-ruby)
  • Perl (mod perl)
  • ASP (apache-asp)
  • Tcl (нит)

Apache поддържа CGI и FastCGI механизми, което ви позволява да изпълнявате програми на всички езици за програмиране, включително C, C++, Lua, sh, Java.

Сигурност

Сигурността в Apache се осъществява чрез различни механизми, които, наред с други неща, ограничават достъпа до данни. Основните са:

  • Ограничаване на достъпа до определени директории или файлове.
  • Механизъм за упълномощаване на потребители за достъп до директория въз основа на HTTP удостоверяване (mod_auth_basic) и удостоверяване на дайджест (mod_auth_digest).
  • Ограничаване на достъпа до определени директории или целия сървър въз основа на потребителски IP адреси.
  • Отказване на достъп до определени типове файлове за всички или някои потребители, например отказ на достъп до конфигурационни файлове и файлове на бази данни.
  • Има модули, които реализират оторизация чрез СУБД или PAM.

Някои MPM модули имат способността да изпълняват всеки процес на Apache, използвайки различен uid и gid, съответстващи на тези потребители и/или потребителски групи.

Има и механизъм suexec, използван за стартиране на скриптове и CGI приложения с потребителски права и идентификационни данни.

За осъществяване на криптиране на данните, предавани между клиента и сървъра, се използва SSL механизмът, реализиран чрез библиотеката OpenSSL. Сертификатите X.509 се използват за удостоверяване на уеб сървъра.

Съществуват външни средствасигурност, като mod_security.

Езици

Възможността сървърът да определя местоположението на потребителя се появи във версия 2.0. Отсега нататък всички служебни съобщения, както и съобщенията за грешки и събития, се възпроизвеждат на няколко езика с помощта на SSI технология.

Възможно е да се реализира дисплея с помощта на сървърни инструменти различни странициза потребители с различни локализации. Apache поддържа много кодировки, включително Unicode, което ви позволява да използвате страници, създадени във всяко кодиране и на всеки език.

Обработка на събития

Администраторът може да задава собствени страниции манипулатори за всички HTTP грешки и събития като 404 ( Не е намерено) или 403 (Забранено). Възможно е да изпълнявате скриптове и да показвате съобщения на различни езици.

Страната на сървъра включва

Във версии 1.3 и по-стари беше внедрен механизмът Server Side Includes, който ви позволява динамично да генерирате HTML документи от страната на сървъра.

SSI се управлява от модула mod_include, включен в основната дистрибуция на Apache.

Apache срещу IIS

Дебатът за избора на Apache или IIS е толкова стар, колкото и дебатът за избор на операционна система - Linux или Windows. Ето защо, преди да направите окончателния избор, си струва адекватно да оцените предимствата и недостатъците и на двете.

Основните предимства на сървърните системи Apache и LAMP:

  1. ниски разходи, тъй като не е необходимо да купувате лицензи за софтуер;
  2. гъвкаво програмиране благодарение на отворен код;
  3. подобрена сигурност, тъй като Apache е проектиран за работа системи, различни от Windows(и повечето зловреден софтуернаписан под Microsoft OS), той винаги е имал репутацията на повече защитена системаотколкото IIS на Microsoft.

Предимства на интернет информационните услуги (IIS):

  1. Windows и IIS се поддържат от Microsoft, докато Apache се поддържа само от потребителската общност;
  2. IIS поддържа платформата .NET на Microsoft и ASPX скриптове;
  3. модулите ви позволяват да активирате стриймингаудио и видео съдържание.

Сравнявайки предимствата на тези два сървъра, могат да се направят няколко заключения. Първо, ако цената на лицензите е основният критерий при избора на сървър, тогава определено си струва да изберете комбинацията LAMP, тъй като тя е без разходи за лицензиране. Второ, въз основа на критериите за сигурност, Apache отново е начело - неговата система е малко по-ефективна. Трето, IIS работи само на Windows OS и всяка промяна в избора на операционна система отново ще доведе до Apache.

Единствената опция, при която IIS пакетът е включен Windows платформаще стане най-добър избор, това е най-удобният за потребителя инструмент за администриране като основен критерий. Освен това скриптът, който се изпълнява, трябва да разчита единствено на ASPX.

Въпреки това е възможно да се разработи решение, което да поддържа работа и на двата сървъра.

Какво е Apache? д след това софтуер с отворен код, уеб сървър,който управлява около 46% от уебсайтовете по света. Официалното име е Apache HTTP Server, поддържан и разработен от Apache Software Foundation.

Уеб сървърът позволява на собствениците на уебсайтове да обслужват своето съдържание в Интернет, както подсказва името „уеб сървър“. Apache е един от най-старите и надеждни уеб сървъри с първата версия, пусната преди повече от 20 години през 1995 г.

Когато някой иска да посети уебсайт, той въвежда името на домейна адресна лентавашия браузър. След това уеб сървърът доставя исканите файлове като виртуален месинджър.

В Hostinger нашата инфраструктура използва Apache паралелно с NGINX, друг популярен уеб сървър. Тази комбинация ни позволява да се възползваме напълно и от двете. Това значително подобрява производителността чрез компенсиране Слабостиедин силни странидруг.

Обработка на файлове, обработка на база данни, използване на поща и уеб сървър различни видовесървърен софтуер. Всяко от тези приложения има достъп до файлове, съхранявани на реалния сървър, и да ги използва за различни цели.

Работата на уеб сървъра е да обслужва уебсайт в Интернет. За да направи това, той действа като посредник между сървърния компютър и клиентския компютър. Той взема съдържание от сървъра за всяка потребителска заявка и го доставя в мрежата.

Повечето голяма задачаЦелта на уеб сървъра е едновременно да обслужва различни заявки от много потребители. Уеб сървърът обработва файлове, написани на различни езици за програмиране, като PHP, Python, Java и други.

Превръща ги в статични HTML файли ги изпраща до браузъра на потребителя за обслужване. Когато чуете термина уеб сървър, мислете за него като за средство за комуникация между сървър и клиент.

Как работи уеб сървърът Apache?

Въпреки че Apache се нарича уеб сървър, в действителност това не е сървър, а програма, която работи на сървъра. Неговата задача е да установи връзка между сървъра и браузъра на посетителите (Firefox, Google Chrome, Safari и др.), когато доставяте файлове напред и назад между тях (структура клиент-сървър). Apache е междуплатформен софтуер, което означава, че работи добре както на Unix, така и на Windows сървъри.

Когато посетител иска да зареди страница на вашия сайт, като например вашата начална страница или страница „За нас“, техният браузър изпраща заявка до вашия сървър и Apache връща отговор с всички поискани файлове (текст, изображение и т.н.) . Сървърът и клиентът комуникират чрез HTTP и Apache е отговорен за гладката и сигурна връзка между двете машини.

Apache е много адаптивен, защото има модулна структура. Модулите позволяват на сървърните администратори да активират или деактивират допълнителна функционалност. Apache има модули за сигурност, кеширане, редактиране на URL адреси, удостоверяване на парола и други. Можете да зададете своя собствена конфигурация чрез файла .htaccess, който е файл с настройки за Apache и се поддържа от всички планове на Hostinger.

Apache и други уеб сървъри

Освен Apache, има доста други уеб сървъри. Всяко приложение за уеб сървър е създадено за различна цел. Въпреки че Apache е най-широко използваният, има няколко алтернативи и конкуренти.

Когато искате да отворите уебсайт в браузъра си, въвеждате адреса му в адресната лента. Браузърът се свързва със сървъра и, образно казано, му казва: „Дайте ми този сайт!“ Уеб сървърът е програмата, която получава тази заявка и я изпълнява, като ви изпраща искания сайт.

В исторически план най-популярният уеб сървър в Интернет се е превърнал Apache уеб сървър. Има много различни версиитози сървър, модифициран за различни задачи.

Как можете да управлявате Apache?

Apache се управлява чрез добавяне на специални директиви към файла .htaccess. По същество инструкции, които казват на уеб сървъра какво да прави в дадена ситуация. Файлът е обикновен текстов файл, който може да бъде създаден директно на сървъра с помощта, например, на текстовия редактор vi, или създаден на вашия компютър и качен на сървъра чрез FTP.

Как мога да сложа парола на директория?

За да може уеб сървърът на Apache да поиска парола при достъп до защитена директория, трябва да поставите файл в тази директория, съдържащ следните директиви:

  • AuthName ProtectedZone Вместо ProtectedZone можете да пишете каквото искате. Това е името на защитената зона; тя ще бъде показана в браузъра, когато бъдете подканени за парола, като по същество предоставя подсказка на потребителя. Ако искате да използвате руски букви или повече от една дума, трябва да използвате кавички. Пример: AuthName „Въведете вашата парола за вход“
  • AuthType Basic Това е методът за криптиране на паролата. Този тип криптиране се използва почти винаги. Пример: AuthType Basic
  • AuthUserFile /full_path_to_file/.htpasswd Това е пътят до файла, в който ще се съхраняват данните за вход и паролите. Той може да има почти всяко име и да се намира във всяка директория, основното е, че уеб сървърът може да го прочете, което изисква задаване на съответните права за достъп до този файл (на нашия сървър - 644). Традиционно обаче такива файлове се наричат ​​.htpasswd. Пример: AuthUserFile /home/test/www/site1/public_html/.htpasswd
  • изисква валиден потребител Този ред показва, че достъпът до защитената директория ще бъде разрешен на всички потребители, чиито имена и пароли са във файла .htpasswd. Ако трябва да дадете достъп на конкретни потребители, тогава изисквайте user_user_logins_separated by_space. Пример: изисква се потребител vasya kolya petya Пример: изисква се валиден потребител

Как да редактирате файла .htpasswd?

Файлът с пароли.htpasswd е обикновен текстов файл. Всеки потребител е описан в него с един ред от формата login:encrypted_password. Използва се за криптиране на пароли специална програма htpasswd. Моля, обърнете внимание, че не можете просто ръчно да запишете паролата във файла; паролата трябва да бъде криптирана с програмата htpasswd.

Ако файлът .htpasswd все още не съществува, програмата htpasswd трябва да се стартира с ключа -c:
htpasswd -c /пълен_път_към_файл/.htpasswd потребителско_влизане
Пример: htpasswd -c /home/test/www/site1/public_html/.htpasswd vasya

В този случай програмата htpasswd ще създаде файла .htpasswd, ще поиска парола за потребителя и ще създаде потребителски запис с посочените потребителско име и парола в този файл. При добавяне на нови потребители и промяна на паролите на съществуващи, програмата се извиква по подобен начин, но без да се указва ключът -c. За да изтриете потребител, просто отворете файла .htpasswd с обикновен текстов редактор и изтрийте реда с неговото потребителско име и парола.

Как да създадете .htpasswd файл, ако тарифният план не предоставя SSH достъп?

Ако тарифният план не предоставя достъп чрез SSH (достъп до командна линиясървър), след което да създадете файла .htpasswd, който можете да използвате специална програма за windows. За да направите това, трябва да изтеглите дистрибуцията, да я разопаковате и да стартирате програмата passwd.exe. След това в прозореца на раздела „Единична парола“ използвайте бутона „Преглед“, за да зададете името на файла (обикновено .htpasswd), а в горната част на прозореца въведете потребителското име, паролата и щракнете върху „Кодиране и Запази”. След това полученият файл трябва да бъде качен чрез FTP на желаната директорияна нашия сървър.

Е, говорихме достатъчно за уеб сървъра, време е да го инсталираме и изпробваме. Има списък с най-често срещаните уеб сървъри; при избора те се вземат предвид специфични задачи, под който се обръща. Нека изберем безплатно Apache уеб сървър. Смятам го за идеален за сайтове от начално и средно ниво. Разбира се, можете да изберете лесния път - да инсталирате готов комбайн Denwer, както правят повечето начинаещи, но в нашия случай освен резултата са важни и теоретичните познания. И след днешния урок вашите умения определено ще се подобрят :)

Отиваме на страницата за изтегляне на проекта - http://httpd.apache.org/download.cgi и изтегляме най-новата стабилна версия за Windows под формата на MSI инсталатор (в моя случай беше apache_2.2.14-win32-x86- no_ssl.msi). Да започнем инсталацията. Първият диалог, който може да ни подведе, е диалогът за въвеждане на информация за сървъра:

Ние ще конфигурираме сървъра си след инсталирането, но сега нека не се притесняваме много и въведете localhost в полетата „Network Domain“ и „Server Name“ и вашия имейл адрес в полето „Administrator’s Email Address“ (за какво localhost Ще говоримПо късно). Не докосваме долните превключватели. Щракнете върху „Напред“, съгласете се с типичната инсталация, „Напред“ отново. Инсталаторът ще ви подкани да изберете директорията, в която ще бъде инсталиран уеб сървърът:

Според мен пътят е твърде дълъг, нека го съкратим до C:\Program Files\Apache. Продължаваме инсталацията и чакаме да приключи. След като затворите инсталатора, иконата на монитора на Apache ще се появи в трея:

Тази помощна програма ви позволява да стартирате, спирате, рестартирате нашия уеб сървър и да разберете неговия статус. Самият Apache беше инсталиран като услуга, която автоматично ще се стартира при зареждане на компютъра:

Сега нека си припомним за какво говорихме в статията. Както си спомняте, всеки компютър, свързан към мрежата, има свой собствен IP адрес. Но дори компютърът ви да няма нито една мрежова връзка, той има поне един вътрешен IP адрес. Този адрес - 127.0.0.1 . То е еднакво на всички компютри и сочи към самия компютър. Тоест, ако зададете адреса на сървъра 127.0.0.1 на мрежово клиентско приложение, клиентът ще се опита да се свърже със сървъра, разположен на вашия собствен компютър. След това говорихме за имена на домейни, които се разрешават в IP адреси от DNS сървъри. Вътрешният адрес 127.0.0.1 има собствено вътрешно име на домейн - локален хост. Освен това, за да преобразува това име в адрес, компютърът не трябва да се свързва с DNS сървъра, тъй като тази кореспонденция е вградена в самия компютър.

Нека стартираме уеб браузър и въведете домейна localhost в адресната лента:

Надявам се разбирате какво се случи? Домейнът на localhost се разреши на IP адрес 127.0.0.1, уеб браузърът се свърза с уеб сървъра на този адрес и порт 80 и поиска начална страницакато се използва HTTP протокол. Тоест, нашият уеб сървър работи, той изпрати на браузъра страница с надпис „Работи“.

Нека започнем да настройваме нашия уеб сървър, което се свежда до редактиране на конфигурационните файлове на Apache. Първо трябва да получите удобен, практичен и в същото време прост текстов редактор. Ако вече имате такъв, поздравления, но ако сте нещастен потребител на Notepad, мога да предложа редактора. Отидете в папката C:\Program Files\Apache\confи преименувайте файла httpd.conf V httpd.conf.bak, така че ако нещо се случи, да имате първоначалната конфигурация под ръка. Създавайте нов файл httpd.confсъс следното съдържание:

ServerRoot "C:/Program Files/Apache" Слушайте 80 LoadModule actions_module modules/mod_actions.so LoadModule alias_module modules/mod_alias.so LoadModule asis_module modules/mod_asis.so LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule authn_default _module modules/mod_au thn_default.so LoadModule authn_file_module модули /mod_authn_file.so LoadModule authz_default_module modules/mod_authz_default.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_user_ модул modules/mod_authz_user.so LoadModule auto index_module modules/mod_autoindex.so LoadModule cgi_module modules/mod_cgi.so LoadModule dir_module modules/ mod_dir.so LoadModule env_module modules/mod_env.so LoadModule include_module modules/mod_include.so LoadModule isapi_module modules/mod_isapi.so LoadModule log_config_module modules/mod_log_config.so LoadModule mime_module modules/mod_mime.so LoadMo dule negotiation_module модули/mod_negotiation. така LoadModule rewrite_module модули /mod_rewrite .so LoadModule setenvif_module modules/mod_setenvif.so ServerName localhost AccessFileName .htaccess ServerTokens prod LogLevel error ErrorLog "logs/error.log" DefaultType text/plain AddDefaultCharset UTF-8 DirectoryIndex index.html Разрешаване на поръчка, отказ Отказ от всички Удовлетворяване на всички TypesConfig conf/mime.types AddType application/x-compress .Z AddType application/x-gzip .gz .tgz LogFormat "\nclient=%h\ntime=%(%d.%m.%Y %H:%M:%S)t\npage=%U%q\nreferer=%(Referer)i\nreqmethod=%m \nhost=%(Host)i\nagent=%(User-agent)i\n\n" mylog

Нека да го разберем. ServerRoot- пътя, където е инсталиран нашия уеб сървър. Обърнете внимание на наклонените черти. Слушател- показва номера на порта, който уеб сървърът ще "слуша", както и, ако е необходимо, IP адреса (ако вашият компютър има няколко връзки и трябва да приемате връзки само през една от тях). Ние посочихме порт 80, който е стандартен за уеб сървъри. LoadModuleзарежда модул на уеб сървър, модулите ви позволяват да получите допълнителни функции. Нашият конфигурационен файл съдържа списък със стандартни модули. AddDefaultCharset- кодиране по подразбиране, зададено на Unicode (UTF-8). Останалото засега не ни интересува.

А сега най-важното. Забравихте ли защо инсталираме уеб сървър? Точно така, за да работим върху бъдещите си сайтове. Има концепция главна директория- това е директорията, в която се намира съдържанието на сайта, тоест файловете, от които се състои. По подразбиране в нашия Apache основната директория е директорията . Отивайки там, ще намерите един файл там под името index.html. Това е същият файл, който съдържа главната страница с надпис "Той работи" в http://localhost. Факт е, че ако заявката (която между другото се нарича url) не съдържа име на файл, тогава уеб сървърът търси файл с едно от стандартните имена. Тези имена (по-точно едно име - index.html) са записани в нашия конфигурационен файл:

DirectoryIndex index.html

Така, когато се попита http://localhostуеб сървърът ще потърси файла C:\Program Files\Apache\htdocs\index.html, по заявка http://localhost/docs - C:\Program Files\Apache\htdocs\docs\index.html(в случай, че документи- папка), при поискване http://localhost/news.html - C:\Program Files\Apache\htdocs\news.htmlи така нататък.

Когато създавате уеб сайт, е удобно да имате не един, а, да речем, три локални (разположени на локалната машина) домейни, на които можете независимо да тествате сайтовете си. Apache ви позволява да обслужвате множество сайтове, тоест не е необходимо да инсталирате собствено копие на уеб сървъра за всеки домейн (в допълнение, помним, че само едно сървърно приложение може да работи на определен порт на компютър). Няколко имена на домейни могат да се отнасят за един и същ IP адрес. Apache от своя страна може, в зависимост от името на домейна, предадено в HTTP заявката (запомнете параметъра Host, статия „Принципи на функциониране на уеб сървъра“), да търси файлове в определен главна директория. Тази технология се нарича "виртуален хост".

Така че localhost съответства на 127.0.0.1, нека създадем още три вътрешен домейн test-domain1, test-domain2 и test-domain3, които ще съответстват на един и същ адрес. Отворете файла в текстов редактор C:\WINDOWS\system32\drivers\etc\hosts. В този файл можете да зададете съответствието между имена на домейни и IP адреси. Тук ще намерим същата локална кореспонденция на адрес 127.0.0.1. Добавете следните редове в края на файла:

127.0.0.1 test-domain1 127.0.0.1 test-domain2 127.0.0.1 test-domain3

Преди да се свържете с DNS сървъра, в този файл се търси съвпадение и при успех заявката се анулира и се използва намереният адрес.

Следващата стъпка е необходима на всички име на домейнсъздайте своята основна директория и кажете на нашия уеб сървър за това. Изтриване в папката C:\Program Files\Apache\htdocsфайл index.htmlи създайте три папки там: тестов домейн1, тестов домейн2И тестов домейн3, във всяка от тези папки има папка дневник- за дневници и папка www- всъщност основната директория за домейна. В края на файла C:\Program Files\Apache\conf\httpd.confдобавете следното:

ИмеVirtualHost *:80 ServerName test-domain1 DocumentRoot "C:/Program Files/Apache/htdocs/test-domain1/www" ErrorLog "C:/Program Files/Apache/htdocs/test-domain1/log/error.log" CustomLog "C:/Program Файлове/Apache/htdocs/test-domain1/log/access.log" mylog ServerName test-domain2 DocumentRoot "C:/Program Files/Apache/htdocs/test-domain2/www" ErrorLog "C:/Program Files/Apache/htdocs/test-domain2/log/error.log" CustomLog "C:/Program Файлове/Apache/htdocs/test-domain2/log/access.log" mylog AllowOverride Всички опции -Индекси ServerName test-domain3 DocumentRoot "C:/Program Files/Apache/htdocs/test-domain3/www" ErrorLog "C:/Program Files/Apache/htdocs/test-domain3/log/error.log" CustomLog "C:/Program Файлове/Apache/htdocs/test-domain3/log/access.log" mylog AllowOverride Всички опции -Индекси

Три пресечки VirtualHostопишете нашите три виртуални хоста. Всеки получава собствена основна директория - DocumentRoot, път към регистъра на грешките - ErrorLogи дневник за достъп - CustomLog.

В основната директория на всеки домейн създайте файл index.htmlсъс съдържанието "Здравейте от test-domain1", "Hello from test-domain2" и ""Hello from test-domain3". За да влязат в сила промените в конфигурацията, трябва да рестартирате Apache (щракнете с левия бутон върху иконата на монитора на Apache -> Рестартиране ) Ако не са направени грешки, всичко трябва да работи:

Поздравления, вече имате уеб сървър, конфигуриран с три локални хоста. Пространство за уеб администратор :) Време е да започнете да изучавате основите на уеб изграждането.

Този материал е написан специално за хора, които тепърва ще се присъединяват към редиците на уеб разработчиците или просто искат да разберат някои от тънкостите на процеса. Тук ще научите какво е Apache сървър, за какво може да е необходим, къде да го вземете и как да го използвате правилно. В бъдеще ще се опитаме да опишем възможно най-тънко Настройки на Apacheи него функционални характеристики, така че дори професионалистите да намерят нещо ново за себе си в тези материали.

За да се появи уебсайт в интернет, той трябва да бъде хостван на сървъра на хостера или на вашия собствен, свързан с интернет и да има специален IP адрес. Сървърът е компютър, на който е инсталиран специален софтуер, който се нарича още „уеб сървър“.

В света има огромен брой уеб сървъри. Те се различават един от друг по функционалност и предназначение. Днес ще говорим за най-популярните от тях, инсталирани на повечето сървъри на хостинг доставчици. Apache сървърът отговаря на почти всички нужди на съвременната уеб разработка, но в същото време е достатъчно прост за програмистите да го инсталират, за да отстраняват грешки в своите програми.

През 1994 г. служител Национален центърприложения за суперкомпютри в Университета на Илинойс САЩ (NCSA), Rob McCool пусна първия уеб сървър, който беше наречен NCSA HTTP daemon, за обществено ползване. Сървърът придобива популярност в тесни кръгове, но в средата на 1994 г. Маккул напуска университета и развитието спира.

Започна малка група заинтересовани уебмастъри работим заеднонад продукта. Общуване на дискусионния лист електронна поща, разработиха "кръпки" и иновации за сървъра. Именно те създадоха Apache Group, която разработи първата версия на сървъра Apache. Това се случи през април 1995 г., когато всички съществуващи „кръпки“ бяха приложени към основата (NCSA Server 1.3). Така се появява първата официална публична версия на Apache 0.6.2.

Първата публична версия на Apache се появи през април 1995 г., а версия 1.0 беше пусната през декември

Работата по сървъра не спря за ден и много скоро той стана един от най-популярните. След множество тестове версия 1.0 се появи на 1 декември 1995 г., стабилна и надеждна. През всичките тези години и до днес Apache остава напълно безплатен. Може би това също определи успеха на сървъра, защото според NetCraft Apache в момента е инсталиран на 67% от всички сървъри в света.

Apache сървърът вече е инсталиран на 67% от сървърите по света. В момента има два клона, които се развиват наведнъж

В момента паралелно се разработват два клона на Apache - версии 2.0 и 1.3. Втората версия претърпя значителен брой промени, които засегнаха основно ядрото на програмата и някои важни модули. Тъй като модулите, написани от разработчици на трети страни за версия 1.3, няма да работят във версия 2.0, „старият“ Apache също се поддържа. Въпреки това, ако ще инсталирате Apache за първи път, тогава си струва да разгледате по-отблизо новата версия.

Apache е пълнофункционален, разширяем уеб сървър с отворен код

И така, какво е Apache? Това е пълнофункционален, разширяем уеб сървър, който напълно поддържа протокола HTTP/1.1 и е с отворен код. Сървърът може да работи на почти всички популярни платформи. Има готови сървърни изпълними файлове за Windows NT, Windows 9x, OS/2, Netware 5.x и няколко UNIX системи. В същото време е много лесен за инсталиране и конфигуриране. Ще можете да проверите това малко по-късно.

Apache се конфигурира с помощта на текстови конфигурационни файлове. Основните настройки вече са конфигурирани по подразбиране и ще работят в повечето случаи. Ако ви липсва функционалността на стандартния Apache, тогава трябва да разгледате по-отблизо модулите за повторно разпространение, написани от Apache Group и разработчици на трети страни. Важно предимство е, че създателите активно комуникират с потребителите и отговарят на всички съобщения за грешки.

Най-простата функция, която Apache може да изпълнява, е да седи на сървър и да обслужва обикновен HTML уебсайт. Когато се получи заявка за определена страница, сървърът изпраща отговор на браузъра. Пишете адреса, отваря се страница - всичко е просто.

С помощта на сървъра Apache можете да извършите проста автентификация

По-сложна функция, която е вградена в протокола HTTP/1.1, е удостоверяването на потребителя. Като се използва редовни средства Apache сървър, за който можете да ограничите достъпа до определени страници на уебсайтове различни потребители. Това е необходимо, например, за да създадете административен интерфейс за сайта. За целта се използват файловете .htaccess и .htpasswd, както и модулите mod_auth и mod_access. Потребителите могат да бъдат разделени на групи, като всеки от тях може да получи собствени права за достъп.

Apache сървърът поддържа SSI технология

За разделяне на дизайнерската и функционалната част на сайта, както и за опростяване на модификацията на статични обекти, има SSI технология. Тя ви позволява да поставите цялата повтаряща се информация в един файл (например top.inc) и след това да вмъкнете връзка към нея в страниците. Тогава, ако трябва да промените няколко реда в тази информация, ще трябва да ги промените само в един файл. Сървърът Apache поддържа тази технология и ви позволява да използвате пълния потенциал на включванията от страна на сървъра.

Можете да създавате персонализирани директории за уебсайтове на сървъра на Apache

Ако на същия сървър с инсталирана операционна система Unix семействои Apache сървърът има няколко потребители, тогава всеки от тях може да създаде отделна директория. По-точно, той ще бъде създаден автоматично заедно с псевдонима. Това се прави с помощта на модула mod_userdir и директивата UserDir. Така например можете да съпоставите папката public_html в домашната папка на потребителя към адреса www.site.ru/~user. По принцип това се прави на сървърите на повечето сайтове, които предоставят безплатен хостинг. Администраторът на сървъра може да разреши или откаже определени потребителисъздавайте начални страници, използвайте SSI и други сървърни функции. Пълноценният хостинг обикновено включва създаването на отделен виртуален сървър за всеки потребител.

Можете да конфигурирате виртуални хостове. Благодарение на тях един физически сървър може да съдържа няколко виртуални

Apache сървърът беше един от първите сървъри, които поддържаха виртуални сървъри (хостове). Тази функция ви позволява да хоствате няколко пълноценни уебсайта на един физически сървър. Всеки от тях може да има собствен домейн, администратор, IP адрес и т.н.

Ако трябва да поставите домейните domain.ru и domain.com на вашия сървър, първо трябва да се уверите, че DNS системаим беше присвоен вашия IP адрес. След това създайте две директиви в конфигурационния файл на Apache , където описвате всеки виртуален хост. Така сървърът ще знае към коя папка да „изпрати“ входящата заявка.

Apache поддържа работа с PHP, CGI и други скриптове

В днешно време повечето интернет страници са динамични. Това означава, че те външен види съдържанието се формира с помощта на софтуерен скрипт, написан на един от „езиците“ (те не могат да бъдат напълно наречени езици, определението е доста произволно). В момента най-широко използваните технологии са CGI и PHP. Разбира се, Apache има поддръжка и за двете, плюс възможност за свързване на други езици.

Модулът mod_cgi ви позволява да хоствате CGI скриптове на сървъра. По принцип това са просто изпълними файлове, написани на един от валидните езици за програмиране. Те могат да се съдържат както в компилиран вид (например, това се прави, ако пишат CGI на C++), така и в изходен текст (ако Perl е инсталиран на сървъра, тогава програмистът може да постави такива файлове. Понякога те имат разширение .pl ).

Що се отнася до PHP, възможността за интегрирането му в Apache се предоставя от разработчиците на самия PHP. Apache действа само като посредник между скрипта и компилатора. Има два начина за интегриране на PHP в Apache. Първият е инсталирането на специален модул, който разширява възможностите на сървъра, а след това самият той става способен да „компилира“ скриптове. И второто е да се установят връзки в конфигурационните файлове между php файловете и самия компилатор (той се намира на диска под формата на .cgi или .exe файлове).

В последния Версии на Apacheима модул за работа със силна SSL/TSL криптографска защита

Въз основа на сървъра Apache можете да създавате не само прости аматьорски сайтове, но и ресурси, които изискват сериозни криптографска защитапредавани данни. Протоколът SSL/TLS е разработен специално за тази цел и неговата поддръжка е вградена в Apache 2.0. С помощта на специален модул можете да извършвате удостоверяване въз основа на персонализирани сертификати, което прави възможно почти сигурно да се гарантира автентичността на потребителя.

Apache поддържа подробни регистрационни файлове за всичко, което се случва на сървъра

И, разбира се, сървърът Apache може да поддържа регистър на всички действия, извършени върху него. Освен това администраторът може да избере нивото на детайлност на протокола. Логовете се поддържат отделно за грешки, за успешни операции и за всеки виртуален хост. Накратко, пълен комплект за задълбочен анализ на възникващи грешки.

В рамките на един материал не успяхме не само да говорим подробно за всички възможности на сървъра Apache, но и просто да ги изброим. Тази статия е предназначена за първото повърхностно запознаване на потребителите и бъдещите разработчици със сървъра Apache. В други материали определено ще се докоснем до всички тънкости на изграждането на уебсайтове, базирани на този прекрасен софтуерен пакет.