Apache Web Server е най-често използвания Web сървър в Интернет. Според Netcraft той се използва в над 60% от Интернет сайтовете. Причината за неговата популярност е че той е безплатен и много стабилен. Друго голямо предимство на Apache, че той е с отворен код, което позволява лесно модифициране на кода или писане на допълнителни модули. Apache поддържа следните основни функции:
Сигурност
Apache притежава набор от защити, които го правят труден за осъществяване на атаки. Този набор включва идентификационни механизми и Secure Socket Layer (SSL). Тъй като Apache поддържа широк списък от сървъри за бази данни като MySQL и Oracle, то те може да се използват за съхраняване на потребителите имащи достъп до Web сървъра.
Можете да добавите поддръжка на SSL на сървъра чрез модула mod_ssl. SSL използва цифрови подписи за криптиране на данните пренасяни през Интернет.
Поддръжка на HTTP/1.1
Apache поддържа най-новата спецификация на HTTP протокола, а именно 1.1. Това означава, че Apache поддържа виртуални хостове, постоянни връзки (persistent connection), кеширане на ресурсите, качване на файлове от страна на клиента и др.
Поддръжка на множество езици
Apache поддържа множество езици за създаване на Web съдържание. Езиците които той поддържа са: PHP (Hypertext Preprocessor), ASP (Active Server Pages), JSP (Java Server Pages), Perl, CGI (Common Gateway Interface), SSI (Server Side Includes) и много други.
Кеширане на информацията
Чрез модула mod_proxy, Apache може да кешира страниците, като при повторно заявяване тя се зарежда не от Интернет, а от локалния кеш. Това може да спести трафик и време за зареждане.
Dynamic Shared Objects
Apache поддържа механизъм за зареждане на модули, които добавят различна функционалност на Web сървъра. Това става без прекомпилиране на Web сървъра.
Поддръжка на Windows
Версия 1.x.x на Apache може да работи успешно и на Windows базирани машини. Тази версия обаче не е оптимизирана за работа под Windows и не трябва да се използва за реални Web сървъри. След версия 2.x Apache вече може да работи и като реален сървър на Windows базирани машини.
Скаларност
Можете да конфигурирате Apache така, че множество сайтове да работят на един сървър. Това става чрез задаване на виртуални хостове.
След като разбрахме защо Apache е предпочитан Web сървър е време да разберем основите на неговата конфигурация.
Преди да започнем с конфигурацията трябва да проверите дали имате инсталиран Apache. Това може да стане със следната команда:
#whereis apachectl
apachectl: /usr/sbin/apachectl /usr/man/man8/apachectl.8.gz /usr/share/man/man8/apachectl.8.gz
Ако Вие имате изход подобен на този, то Apache е инсталиран на вашата система. В противен случай трябва да инсталирате Apache. Това може да стане както от бинарните пакети на вашата дистрибуция или от изходен код. В повечето случаи пакета е компилиран с повечето полезни опции и компилирането от изходен код е безсмислено. Ако все пак желаете да компилирате, то кода може да се свали от http://www.apache.org/dist/httpd/.
След като свалите кода трябва да го декомпресирате:
#tar zxvf apache_1.3.24.tar.gz
След това трябва да добавите група и потребител за работата на Apache:
#groupadd www
#useradd -g www www
След това чрез passwd -l трябва да заключите потребителя www, така че само root да има достъп до него.
След това трябва да се стартира скрипта ./configure , който да създаде файловете необходими за компилиране не сървъра. Този скрипт има множество полезни опции които може да се видят чрез:
#./configure --help
Ето и примерна конфигурация (възможно най-елементарна):
#./configure --prefix=/usr/local/apache --server-uid=www --server-gid=www
>--htdocsdir=/home/www/htdocs
>--cgidir=/home/www/cgi-bin
>--enable-module=most
>--enable-shared=max