Co znaczy Apache? Co to jest serwer Apache - dla początkujących

Serwer HTTP Apache(z angielskiego niejednolity serwer, „serwer z łatkami”, dodatkowo pojawia się aluzja do plemienia Indian Apaczów. Zniekształcona wymowa jest powszechna wśród rosyjskich użytkowników Apacz) to w pełni funkcjonalny, rozszerzalny serwer WWW, który w pełni obsługuje protokół HTTP/1.1 i jest oprogramowaniem typu open source.

Serwer może działać na prawie wszystkich popularnych platformach. Istnieją gotowe pliki wykonywalne serwery dla Windows NT, Windows 9x, OS/2, Netware 5.xi kilku systemów UNIX. Co więcej, jest bardzo łatwy w instalacji i konfiguracji.

Właściwie to elastyczność konfiguracji, a także jej niezawodność są uważane za główne zalety serwera Apache. Umożliwia połączenie moduły zewnętrzne do dostarczania danych, używania DBMS do uwierzytelniania użytkowników, modyfikowania komunikatów o błędach itp. Obsługuje IPv6.

Apache jest konfigurowany przy użyciu tekstowych plików konfiguracyjnych. Podstawowe ustawienia są już skonfigurowane domyślnie i będą działać w większości przypadków. Jeśli funkcjonalność standardowego Apache nie jest wystarczająca, można skorzystać z różnych modułów napisanych przez Grupę Apache i zewnętrznych programistów. Istotną zaletą jest to, że twórcy aktywnie komunikują się z użytkownikami i reagują na wszystkie komunikaty o błędach.

Najbardziej prosta funkcja, co może zrobić Apache - stać na serwerze i obsługiwać zwykłą witrynę HTML. Po otrzymaniu żądania dotyczącego określonej strony serwer wysyła odpowiedź do przeglądarki. Żądanie to adres wpisany w pasku adresu przeglądarki.

Aby oddzielić część projektową i funkcjonalną witryny, a także uprościć modyfikację obiektów statycznych, zastosowano technologię SSI. Pozwala umieścić wszystkie powtarzające się informacje w jednym pliku (np. top.inc), a następnie wstawić link do nich na stronach. Następnie w przypadku konieczności zmiany informacji, zmianie ulegają informacje tylko w jednym pliku. Serwer Apache obsługuje tę technologię i pozwala na wykorzystanie pełnego potencjału wtrąceń po stronie serwera.

Funkcje serwera WWW realizuje nie sam komputer, ale zainstalowany na nim program: czyli gdy przeglądarka użytkownika łączy się z serwerem WWW i wysyła nagłówek GET (żądanie przesłania pliku), jest to Apache który przetwarza żądanie. Apache sprawdza, czy plik określony w nagłówku GET istnieje i jeśli tak, wysyła go wraz z nagłówkami do przeglądarki.

Apache to rodzaj standardu serwera WWW w Internecie. Jego głównym konkurentem jest IIS (Internet Information Server) firmy Microsoft, który działa w systemie Windows. Apache, choć istnieją jego wersje dla systemu Windows, instaluje się głównie na systemach operacyjnych typu Unix - Linux i FreeBSD. Należy również zauważyć, że większość dostawców usług hostingowych korzysta z Apache, a nie z IIS. IIS jest zwykle instalowany na serwery korporacyjne działające pod Windowsem.

Serwer Apache był jednym z pierwszych serwerów obsługujących serwery wirtualne (hosty). Dzięki temu możliwe jest umieszczenie na jednym serwer fizyczny kilka pełnoprawnych stron internetowych. Każdy z nich może mieć własną domenę, administratora, adres IP i tak dalej.

Apache obsługuje technologie CGI i PHP, a także możliwość łączenia języków. Dzięki temu znacznie łatwiej jest pracować z dynamicznymi stronami internetowymi (które obecnie są prawie wszystkimi stronami internetowymi).

NA ten moment Serwer Apache jest obecnie zainstalowany na 67% serwerów na całym świecie.

Historia stworzenia

Serwer Apache jest rozwijany i utrzymywany przez Apache Project.

Pierwotnie była to odmiana serwera internetowego NCSA opracowanego w Narodowym Centrum Rozwoju Superkomputerów na Uniwersytecie Illinois. Jednak w 1994 roku główny twórca NCSA opuścił projekt, pozostawiając swoim zwolennikom samodzielne rozpracowanie swojego serwera. Z biegiem czasu zaczęły pojawiać się poprawki i uzupełnienia na serwerze NCSA - tzw. łatki (łatki, tłumaczone z angielskiego jako „łatki”). Z kolei w kwietniu 1995 roku ukazała się pierwsza wersja serwera Apache, która bazowała na wersji 1.3 serwera NCSA. Pierwsza wersja Apache po prostu zawierała wszystkie znane poprawki serwera NCSA. I od tego wzięła się sama nazwa Apache – „A PatCHy”.

Apache stał się później niezależny rozwój. Od drugiej wersji kod został przepisany tak, aby nie zawierał żadnej podpowiedzi kodu NCSA. Serwer Apache jest obecnie utrzymywany przez grupę programistów-wolontariuszy, Apache Group.

Serwer Apache został pierwotnie opracowany dla systemów operacyjnych Linux i Unix, ale z czasem wydano jego wersje dla systemów Windows i OS/2.

W tej chwili prace rozwojowe prowadzone są w gałęzi 2.2, a w wersjach 1.3 i 2.0 wprowadzane są jedynie poprawki błędów bezpieczeństwa. Obecnie najnowszą wersją gałęzi 2.4 jest wersja 2.4.3, wydana 21 sierpnia 2012. W przypadku pierwszej wersji najnowsze poprawki są oznaczone jako 1.3.42.

Serwer WWW Apache jest rozwijany i utrzymywany przez otwartą społeczność programistów pod auspicjami Apache Software Foundation i jest zawarty w wielu produkty oprogramowania, pośród których Baza danych Oracle i IBM WebSphere.

Od kwietnia 1996 roku do chwili obecnej jest najpopularniejszym serwerem HTTP w Internecie. Najwyższe wyniki osiągnięto w 2012 r. – Apache działał na 67% serwerów na całym świecie. W 2011 r. jego udział wynosił 59%, w 2009 r. – 46%, a w 2007 r. – 51%.

Schemat wewnętrznych wywołań systemowych Apache

Architektura Apache'a

Rdzeń Apache zawiera rdzeń główny funkcjonalność, takie jak przetwarzanie plików konfiguracyjnych, protokół HTTP i system ładowania modułów. Rdzeń (w przeciwieństwie do modułów) jest w całości rozwijany przez Apache Software Foundation, bez udziału zewnętrznych programistów.

Teoretycznie jądro Apache może funkcjonować w czystej postaci, bez użycia modułów. Funkcjonalność takiego rozwiązania jest jednak mocno ograniczona.

Rdzeń Apache jest napisany w całości w języku programowania C.

System konfiguracji Apache opiera się na tekście pliki konfiguracyjne. Posiada trzy warunkowe poziomy konfiguracji:

  • Konfiguracja serwera (httpd.conf)
  • Konfiguracja wirtualny gospodarz(httpd.conf od wersji 2.2, extra/httpd-vhosts.conf)
  • Konfiguracja na poziomie katalogu (.htaccess)

Posiada własny język plików konfiguracyjnych oparty na blokach dyrektyw. Prawie wszystkie parametry jądra można zmienić za pomocą plików konfiguracyjnych, w tym sterowanie MPM. Większość modułów ma swoje własne parametry. Niektóre moduły wykorzystują w swojej pracy pliki konfiguracyjne systemu operacyjnego (np. /etc/passwd i /etc/hosts). Ponadto parametry można określić za pomocą przełączników wiersza poleceń.

Istnieje wiele symetrycznych modeli przetwarzania wieloprocesowego dla serwera WWW Apache. Apache HTTP Server obsługuje również modułowość. Działa ponad 500 modułów różne funkcje. Chociaż niektóre z nich są opracowywane bezpośrednio przez zespół Apache Software Foundation, większość istniejących modułów jest opracowywana przez zewnętrznych programistów open source.

Moduły mogą być dołączone do serwera w czasie kompilacji lub ładowane dynamicznie poprzez dyrektywy pliku konfiguracyjnego.

Za pomocą modułów możesz wdrożyć następujące rozwiązania:

  1. Rozszerzenie obsługiwanych języków programowania
  2. Dodatek dodatkowe funkcje lub modyfikacja głównych.
  3. Korekcja błędów
  4. Zwiększone bezpieczeństwo.

Niektóre aplikacje internetowe, takie jak panele sterowania ISPmanager i VDSmanager, są zaimplementowane jako moduł Apache.

Serwer Apache ma wbudowany mechanizm wirtualnego hosta. Dzięki temu możliwa jest pełna obsługa wielu witryn (nazw domen) pod jednym adresem IP, wyświetlając dla każdej z nich własną treść.

Dla każdego wirtualnego hosta możesz określić własne ustawienia jądra i modułu, ograniczyć dostęp do całej witryny lub oddzielne pliki. Niektóre MPM, takie jak Apache-ITK, umożliwiają uruchomienie procesu httpd dla każdego wirtualnego hosta z oddzielnym identyfikatorem UID i Guid.

Istnieją również moduły, które pozwalają uwzględnić i ograniczyć zasoby serwera (CPU, RAM, ruch) dla każdego wirtualnego hosta.

Integracja z innymi programami i językami programowania

Aby skutecznie zintegrować serwer z różnymi programami i językami programowania, dostępne są dodatkowe moduły:

  • PHP (mod_php)
  • Python (mod python, mod wsgi)
  • Rubin (apache-rubin)
  • Perl (mod Perl)
  • ASP (apache-asp)
  • Tcl (nit)

Apache obsługuje mechanizmy CGI i FastCGI, co pozwala na uruchamianie programów we wszystkich językach programowania, w tym C, C++, Lua, sh, Java.

Bezpieczeństwo

Bezpieczeństwo w Apache realizowane jest za pomocą różnych mechanizmów, które m.in. ograniczają dostęp do danych. Najważniejsze z nich to:

  • Ograniczanie dostępu do niektórych katalogów lub plików.
  • Mechanizm autoryzacji użytkowników do dostępu do katalogu w oparciu o uwierzytelnianie HTTP (mod_auth_basic) i uwierzytelnianie szyfrowane (mod_auth_digest).
  • Ograniczanie dostępu do niektórych katalogów lub całego serwera na podstawie adresów IP użytkowników.
  • Odmowa dostępu do określonych typów plików wszystkim lub niektórym użytkownikom, na przykład odmowa dostępu do plików konfiguracyjnych i plików baz danych.
  • Istnieją moduły realizujące autoryzację poprzez DBMS lub PAM.

Niektóre moduły MPM umożliwiają uruchamianie każdego procesu Apache przy użyciu różnych identyfikatorów UID i GID odpowiadających tym użytkownikom i/lub grupom użytkowników.

Istnieje również mechanizm suexec używany do uruchamiania skryptów i aplikacji CGI z uprawnieniami i poświadczeniami użytkownika.

Do realizacji szyfrowania danych przesyłanych pomiędzy klientem a serwerem wykorzystywany jest mechanizm SSL, realizowany poprzez bibliotekę OpenSSL. Certyfikaty X.509 służą do uwierzytelniania serwera WWW.

Istnieć środki zewnętrzne zabezpieczenia, takie jak mod_security.

Języki

Możliwość określenia przez serwer lokalizacji użytkownika pojawiła się w wersji 2.0. Odtąd wszystkie komunikaty serwisowe, a także komunikaty o błędach i zdarzeniach są odtwarzane w kilku językach przy użyciu technologii SSI.

Istnieje możliwość realizacji wyświetlacza przy pomocy narzędzi serwerowych różne strony dla użytkowników z różnymi lokalizacjami. Apache obsługuje wiele kodowań, w tym Unicode, co pozwala na korzystanie ze stron utworzonych w dowolnym kodowaniu i w dowolnym języku.

Obsługa zdarzeń

Administrator może ustawić własne strony i procedury obsługi wszystkich błędów i zdarzeń HTTP, takich jak 404 ( Nie znaleziono) lub 403 (Zabronione). Możliwe jest uruchamianie skryptów i wyświetlanie komunikatów w różnych językach.

Po stronie serwera obejmuje

W wersjach 1.3 i starszych zaimplementowano mechanizm Server Side Zawiera, który pozwala na dynamiczne generowanie dokumentów HTML po stronie serwera.

SSI zarządzany jest poprzez moduł mod_include zawarty w podstawowej dystrybucji Apache.

Apache kontra IIS

Debata na temat wyboru Apache lub IIS jest tak stara, jak debata na temat wyboru systemu operacyjnego – Linux czy Windows. Dlatego przed dokonaniem ostatecznego wyboru warto odpowiednio ocenić zalety i wady obu rozwiązań.

Główne zalety systemów serwerowych Apache i LAMP:

  1. niskie koszty, ponieważ nie ma konieczności zakupu licencji oprogramowanie;
  2. elastyczne programowanie dzięki otwartemu kodowi źródłowemu;
  3. ulepszone bezpieczeństwo, ponieważ Apache został zaprojektowany do działania systemy inne niż Windows(i najbardziej złośliwe oprogramowanie napisany pod systemem operacyjnym Microsoft), zawsze miał reputację czegoś więcej bezpieczny system niż IIS Microsoftu.

Korzyści z internetowych usług informacyjnych (IIS):

  1. Windows i IIS są obsługiwane przez firmę Microsoft, natomiast Apache jest obsługiwany tylko przez społeczność użytkowników;
  2. IIS obsługuje platformę .NET firmy Microsoft i skrypty ASPX;
  3. moduły umożliwiają włączenie przesyłanie strumieniowe treści audio i wideo.

Porównując zalety tych dwóch serwerów można wyciągnąć kilka wniosków. Po pierwsze, jeśli głównym kryterium wyboru serwera jest koszt licencji, to zdecydowanie warto wybrać kombinację LAMP, gdyż jest ona wolna od kosztów licencji. Po drugie, biorąc pod uwagę kryteria bezpieczeństwa, znów prym wiedzie Apache – jego system jest nieco wydajniejszy. Po trzecie, IIS działa tylko w systemie operacyjnym Windows i jakakolwiek zmiana w wyborze systemu operacyjnego ponownie doprowadzi do Apache.

Jedyna opcja, w której pakiet IIS jest włączony Platforma Windows stanie się najlepszy wybór, jest to najbardziej przyjazne dla użytkownika narzędzia administracyjne jako główne kryterium. Co więcej, wykonywany skrypt musi opierać się wyłącznie na ASPX.

Istnieje jednak możliwość opracowania rozwiązania, które będzie wspierać pracę na obu serwerach.

Co to jest Apache? mi następnie oprogramowanie typu open source, serwer WWW, który obsługuje około 46% witryn internetowych na całym świecie. Oficjalna nazwa to Apache HTTP Server, utrzymywana i rozwijana przez Apache Software Foundation.

Serwer WWW umożliwia właścicielom witryn udostępnianie ich treści w Internecie, jak sugeruje nazwa „serwer WWW”. Apache to jeden z najstarszych i najbardziej niezawodnych serwerów WWW, którego pierwsza wersja została wydana ponad 20 lat temu w 1995 roku.

Gdy ktoś chce odwiedzić witrynę internetową, wpisuje nazwę domeny pasek adresu Twoja przeglądarka. Następnie serwer WWW dostarcza żądane pliki jako wirtualny komunikator.

W Hostingerze nasza infrastruktura korzysta z Apache równolegle z NGINX, innym popularnym serwerem WWW. To połączenie pozwala nam w pełni wykorzystać jedno i drugie. To znacznie poprawia wydajność poprzez kompensację Słabości jeden silne strony inny.

Przetwarzanie plików, przetwarzanie baz danych, wykorzystanie poczty i serwera WWW Różne rodzaje oprogramowanie serwera. Każda z tych aplikacji może uzyskać dostęp do plików przechowywanych na prawdziwym serwerze i wykorzystać je do różnych celów.

Zadaniem serwera WWW jest obsługa witryny internetowej w Internecie. W tym celu pełni rolę pośrednika pomiędzy komputerem serwera a komputerem klienckim. Pobiera treść z serwera na każde żądanie użytkownika i dostarcza ją do sieci.

Bardzo duże zadanie Celem serwera WWW jest jednoczesna obsługa różnych żądań wielu użytkowników. Serwer WWW przetwarza pliki napisane w różnych językach programowania, takich jak PHP, Python, Java i inne.

Zamienia je w statyczne plik HTML i wysyła je do przeglądarki użytkownika w celu obsługi. Kiedy usłyszysz termin serwer WWW, pomyśl o nim jako o narzędziu do komunikacji między serwerem a klientem.

Jak działa serwer WWW Apache?

Chociaż Apache nazywany jest serwerem WWW, w rzeczywistości nie jest to serwer, ale program działający na serwerze. Jego zadaniem jest nawiązanie połączenia pomiędzy serwerem a przeglądarką osoby odwiedzającej (Firefox, GoogleChrome, Safari itp.) podczas przesyłania plików między nimi (struktura klient-serwer). Apache jest oprogramowaniem wieloplatformowym, co oznacza, że ​​działa dobrze zarówno na serwerach z systemem Unix, jak i Windows.

Kiedy odwiedzający chce załadować stronę w Twojej witrynie, np. stronę główną lub stronę „O nas”, jego przeglądarka wysyła żądanie do Twojego serwera, a Apache zwraca odpowiedź zawierającą wszystkie żądane pliki (tekst, obraz itp.). . Serwer i klient komunikują się za pomocą protokołu HTTP, a Apache odpowiada za płynne i bezpieczne połączenie pomiędzy obydwoma komputerami.

Apache jest wysoce konfigurowalny, ponieważ ma strukturę modułową. Moduły umożliwiają administratorom serwerów włączanie i wyłączanie dodatkowych funkcjonalności. Apache ma moduły zapewniające bezpieczeństwo, buforowanie, edycję adresów URL, uwierzytelnianie hasłem i inne. Możesz ustawić własną konfigurację za pomocą pliku .htaccess, który jest plikiem ustawień dla Apache i jest obsługiwany przez wszystkie plany Hostingera.

Apache i inne serwery WWW

Oprócz Apache istnieje sporo innych serwerów internetowych. Każda aplikacja serwera WWW została stworzona w innym celu. Chociaż Apache jest najczęściej używany, istnieje kilka alternatyw i konkurentów.

Jeśli chcesz otworzyć stronę internetową w przeglądarce, wpisz jej adres w pasku adresu. Przeglądarka łączy się z serwerem i, mówiąc w przenośni, mówi mu: „Daj mi tę witrynę!” Serwer WWW to program, który odbiera to żądanie i wykonuje je, wysyłając żądaną witrynę.

Historycznie rzecz biorąc, najpopularniejszym serwerem WWW w Internecie stał się Serwer WWW Apache. Jest wiele różne wersje ten serwer, zmodyfikowany do różnych zadań.

Jak zarządzać Apache?

Apache jest kontrolowany poprzez dodanie specjalnych dyrektyw do pliku .htaccess. Zasadniczo instrukcje, które mówią serwerowi WWW, co ma zrobić w danej sytuacji. Plik to zwykły plik tekstowy, który można utworzyć bezpośrednio na serwerze za pomocą na przykład edytora tekstu vi lub utworzyć na komputerze i przesłać na serwer za pośrednictwem protokołu FTP.

Jak mogę umieścić hasło w katalogu?

Aby serwer WWW Apache pytał o hasło podczas uzyskiwania dostępu do chronionego katalogu, musisz umieścić w tym katalogu plik zawierający następujące dyrektywy:

  • AuthName ProtectedZone Zamiast ProtectedZone możesz pisać, co chcesz. Jest to nazwa chronionego obszaru; będzie ona wyświetlana w przeglądarce po wyświetleniu monitu o podanie hasła, zasadniczo stanowiąc wskazówkę dla użytkownika. Jeśli chcesz użyć rosyjskich liter lub więcej niż jednego słowa, musisz użyć cudzysłowu. Przykład: AuthName „Wprowadź swoje hasło logowania”
  • AuthType Basic Jest to metoda szyfrowania hasła. Ten rodzaj szyfrowania jest prawie zawsze używany. Przykład: Podstawowy typ uwierzytelniania
  • AuthUserFile /full_path_to_file/.htpasswd Jest to ścieżka do pliku, w którym będą przechowywane loginy i hasła. Może mieć niemal dowolną nazwę i znajdować się w dowolnym katalogu, najważniejsze, że serwer WWW może go odczytać, co wymaga ustawienia odpowiednich praw dostępu do tego pliku (na naszym serwerze - 644). Jednak tradycyjnie takie pliki nazywane są .htpasswd. Przykład: AuthUserFile /home/test/www/site1/public_html/.htpasswd
  • require valid-user Ta linia wskazuje, że dostęp do chronionego katalogu będzie możliwy dla wszystkich użytkowników, których loginy i hasła znajdują się w pliku .htpasswd. Jeśli chcesz przyznać dostęp określonym użytkownikom, wymagaj, aby nazwy użytkowników były_oddzielone spacją. Przykład: wymagaj użytkownika vasya kolya petya Przykład: wymagaj ważnego użytkownika

Jak edytować plik .htpasswd?

Plik haseł.htpasswd jest zwykłym plikiem plik tekstowy. Każdy użytkownik opisany jest w nim jedną linijką postaci login:zaszyfrowane_hasło. Służy do szyfrowania haseł specjalny program htpasswd. Pamiętaj, że nie możesz po prostu ręcznie wpisać hasła do pliku; hasło musi zostać zaszyfrowane za pomocą programu htpasswd.

Jeżeli plik .htpasswd jeszcze nie istnieje, program htpasswd należy uruchomić z przełącznikiem -c:
htpasswd -c /pełna_ścieżka_do_pliku/.htpasswd logowanie_użytkownika
Przykład: htpasswd -c /home/test/www/site1/public_html/.htpasswd vasya

W takim przypadku program htpasswd utworzy plik .htpasswd, zażąda hasła dla użytkownika i utworzy w tym pliku rekord użytkownika z podanym loginem i hasłem. Podczas dodawania kolejnych użytkowników i zmiany haseł istniejących program wywołuje się w podobny sposób, ale bez podawania przełącznika -c. Aby usunąć użytkownika, wystarczy otworzyć plik .htpasswd w zwykłym edytorze tekstu i usunąć linię z jego nazwą użytkownika i hasłem.

Jak utworzyć plik .htpasswd jeśli plan taryfowy nie zapewnia dostępu SSH?

Jeżeli plan taryfowy nie zapewnia dostępu poprzez SSH (dostęp do wiersz poleceń serwer), a następnie utwórz plik .htpasswd, którego możesz użyć specjalny program dla systemu Windows. W tym celu należy pobrać dystrybucję, rozpakować ją i uruchomić program passwd.exe. Następnie w oknie na zakładce „Pojedyncze hasło” za pomocą przycisku „Przeglądaj” ustaw nazwę pliku (zwykle .htpasswd), a w górnej części okna wprowadź nazwę użytkownika, hasło i kliknij przycisk „Zakoduj i Zapisz”. Następnie wynikowy plik należy przesłać za pośrednictwem FTP na adres żądany katalog na naszym serwerze.

Cóż, wystarczająco dużo rozmawialiśmy o serwerze internetowym, czas go zainstalować i wypróbować. Istnieje lista najpopularniejszych serwerów internetowych przy wyborze, które biorą pod uwagę specyficzne zadania, pod którym się obraca. Zdecydujmy się na darmową Serwer WWW Apache. Uważam, że jest to idealne rozwiązanie dla witryn na poziomie podstawowym i średnim. Można oczywiście pójść łatwą drogą – zamontować gotowy kombajn Denwer, jak robi to większość początkujących, jednak w naszym przypadku oprócz wyniku ważna jest także wiedza teoretyczna. A po dzisiejszej lekcji Twoje umiejętności na pewno się poprawią :)

Wchodzimy na stronę pobierania projektu - http://httpd.apache.org/download.cgi i pobieramy najnowszą stabilną wersję dla Windows w postaci instalatora MSI (w moim przypadku był to Apache_2.2.14-win32-x86- no_ssl.msi). Rozpocznijmy instalację. Pierwszym oknem dialogowym, które może nas wprowadzić w błąd, jest okno wprowadzania informacji o serwerze:

Skonfigurujemy nasz serwer po instalacji, ale teraz nie przejmujmy się zbytnio i wpiszmy localhost w polach „Domena sieciowa” i „Nazwa serwera”, a swój adres e-mail w polu „Adres e-mail administratora” (o tym, jaki localhost porozmawiamy Później). Dolnych przełączników nie dotykamy. Kliknij „Dalej”, zaakceptuj typową instalację, ponownie „Dalej”. Instalator poprosi Cię o wybranie katalogu, w którym zostanie zainstalowany serwer WWW:

Moim zdaniem ścieżka jest za długa, skróćmy ją do C:\Program Files\Apache. Kontynuujemy instalację i czekamy na jej zakończenie. Po zamknięciu instalatora w zasobniku pojawi się ikona monitora Apache:

To narzędzie umożliwia uruchomienie, zatrzymanie, ponowne uruchomienie naszego serwera internetowego i sprawdzenie jego statusu. Sam Apache został zainstalowany jako usługa, która uruchomi się automatycznie po uruchomieniu komputera:

Przypomnijmy sobie teraz, o czym rozmawialiśmy w artykule. Jak pamiętasz, każdy komputer podłączony do sieci ma swój własny adres IP. Ale nawet jeśli Twój komputer nie ma ani jednego połączenia sieciowego, ma co najmniej jeden wewnętrzny adres IP. Ten adres - 127.0.0.1 . Jest taki sam na wszystkich komputerach i wskazuje na sam komputer. Oznacza to, że jeśli podasz adres serwera 127.0.0.1 aplikacji klienta sieciowego, klient spróbuje połączyć się z serwerem znajdującym się na Twoim komputerze. Następnie rozmawialiśmy o nazwach domen, które są przekształcane na adresy IP przez serwery DNS. Adres wewnętrzny 127.0.0.1 ma własną wewnętrzną nazwę domeny - Lokalny Gospodarz. Co więcej, aby przekonwertować tę nazwę na adres, komputer nie musi kontaktować się z serwerem DNS, ponieważ ta korespondencja jest wbudowana w sam komputer.

Uruchommy przeglądarkę internetową i w pasku adresu wpiszmy domenę localhost:

Mam nadzieję, że rozumiesz, co się stało? Domena localhost została rozpoznana na adres IP 127.0.0.1, przeglądarka internetowa połączyła się z serwerem internetowym pod tym adresem i portem 80 i zażądała strona główna używając Protokół HTTP. Oznacza to, że nasz serwer internetowy działa, wysłał do przeglądarki stronę z napisem „Działa”.

Przystępujemy do konfiguracji naszego serwera WWW, co sprowadza się do edycji plików konfiguracyjnych Apache. Najpierw musisz zaopatrzyć się w wygodny, praktyczny i jednocześnie prosty edytor tekstu. Jeśli już go masz, gratuluję, ale jeśli jesteś niezadowolonym użytkownikiem Notatnika, mogę zasugerować edytor. Przejdź do folderu C:\Program Files\Apache\conf i zmień nazwę pliku httpd.conf V httpd.conf.bak, aby w przypadku wystąpienia jakiejś sytuacji mieć pod ręką wstępną konfigurację. Tworzyć nowy plik httpd.conf o następującej treści:

ServerRoot "C:/Program Files/Apache" Słuchaj 80 LoadModule moduły_akcji/mod_actions.so LoadModule alias_module moduły/mod_alias.so LoadModule moduł_asis/mod_asis.so LoadModule auth_basic_module moduły/mod_auth_basic.so LoadModule authn_default_module moduły/mod_auth n_default.so LoadModule authn_ moduł_pliku modułu autoindex.so LoadModule cgi_module moduły/mod_cgi.so LoadModule dir_module moduły/ mod_dir.so LoadModule env_module moduły/mod_env.so LoadModule include_module moduły/mod_include.so LoadModule isapi_module moduły/mod_isapi.so LoadModule log_config_module moduły/mod_log_config.so LoadModule moduł_mime moduły/mod_mime.so LoadModule moduł negocjacji_moduły/mod_negotiation.so LoadModule moduły rewrite_module /mod_rewrite .so LoadModule setenvif_module moduły/mod_setenvif.so NazwaSerwera localhost NazwaPliku Dostępu .htaccess ServerTokens prod LogLevel error ErrorLog "logs/error.log" Typ domyślny tekst/zwykły AddDefaultCharset UTF-8 DirectoryIndex indeks.html Zamówienie zezwól, odmów Odmów ze wszystkich Zaspokój wszystkich TypesConfig conf/mime.types AddType aplikacja/x-compress .Z AddType aplikacja/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=%(Agent użytkownika)i\n\n" mójlog

Rozwiążmy to. Katalog główny serwera- ścieżka, w której zainstalowany jest nasz serwer WWW. Zwróć uwagę na ukośniki. Listern- wskazuje numer portu, na którym serwer WWW będzie „nasłuchiwał”, a także w razie potrzeby adres IP (jeśli Twój komputer ma kilka połączeń i musisz akceptować połączenia tylko przez jedno z nich). Określiliśmy port 80, który jest standardem dla serwerów WWW. Moduł ładowaniaładuje moduł serwera WWW, moduły pozwalają uzyskać dodatkowe funkcje. Nasz plik konfiguracyjny zawiera listę standardowych modułów. Dodaj domyślny zestaw znaków- domyślne kodowanie, ustawione na Unicode (UTF-8). Reszta nas na razie nie interesuje.

A teraz najważniejsza rzecz. Czy zapomniałeś, dlaczego instalujemy serwer WWW? Zgadza się, pracować nad naszymi przyszłymi stronami. Jest koncepcja katalog główny- jest to katalog, w którym znajduje się zawartość witryny, czyli pliki, z których się ona składa. Domyślnie w naszym Apache katalogiem głównym jest katalog . Idąc tam, znajdziesz tam pojedynczy plik pod nazwą indeks.html. To ten sam plik, który zawiera stronę główną z napisem „To działa” pod adresem http://localhost. Faktem jest, że jeśli żądanie (które, nawiasem mówiąc, nazywa się adresem URL) nie zawiera nazwy pliku, to serwer WWW szuka pliku o jednej ze standardowych nazw. Nazwy te (dokładniej jedno imię - indeks.html) są zapisane w naszym pliku konfiguracyjnym:

DirectoryIndex indeks.html

Zatem na pytanie http://localhost serwer WWW będzie szukać pliku C:\Program Files\Apache\htdocs\index.html, na żądanie http://localhost/docs - C:\Program Files\Apache\htdocs\docs\index.html(w przypadku, jeśli dokumenty- teczka), na zamówienie http://localhost/news.html - C:\Program Files\Apache\htdocs\news.html i tak dalej.

Budując witrynę internetową, wygodnie jest mieć nie jedną, ale, powiedzmy, trzy domeny lokalne (zlokalizowane na komputerze lokalnym), na których można niezależnie testować swoje witryny. Apache umożliwia obsługę wielu witryn, czyli nie trzeba instalować własnej kopii serwera WWW dla każdej domeny (dodatkowo pamiętamy, że na konkretnym porcie komputera może działać tylko jedna aplikacja serwerowa). Wiele nazw domen może odnosić się do tego samego adresu IP. Apache z kolei potrafi w zależności od nazwy domeny przekazanej w żądaniu HTTP (pamiętajcie o parametrze Host, artykuł „Zasady działania serwera WWW”), wyszukiwać pliki w określonym katalog główny. Ta technologia nazywa się „host wirtualny”.

Zatem localhost odpowiada 127.0.0.1, utwórzmy jeszcze trzy domena wewnętrzna domena-testowa1, domena-testowa2 i domena-testowa3, które będą pasować do tego samego adresu. Otwórz plik w edytorze tekstu C:\WINDOWS\system32\drivers\etc\hosts. W tym pliku możesz ustawić zgodność pomiędzy nazwami domen i adresami IP. Tutaj znajdziemy tę samą korespondencję localhost pod adresem 127.0.0.1. Dodaj następujące wiersze na końcu pliku:

127.0.0.1 domena-testowa1 127.0.0.1 domena-testowa2 127.0.0.1 domena-testowa3

Przed skontaktowaniem się z serwerem DNS w tym pliku szukane jest dopasowanie i jeśli się powiedzie, żądanie jest anulowane i używany jest znaleziony adres.

Następny krok jest niezbędny dla każdego Nazwa domeny utwórz swój katalog główny i poinformuj o tym nasz serwer WWW. Usuń w folderze C:\Program Files\Apache\htdocs plik indeks.html i utwórz tam trzy foldery: domena testowa 1, domena testowa2 I domena testowa3, w każdym z tych folderów znajduje się folder dziennik- dla logów i folderu www- właściwie katalog główny domeny. Na końcu pliku C:\Program Files\Apache\conf\httpd.conf dodaj następujące informacje:

NazwaWirtualny Host *:80 Nazwa serwera domena-testowa1 Katalog główny dokumentu "C:/Program Files/Apache/htdocs/test-domain1/www" Dziennik błędów "C:/Program Files/Apache/htdocs/test-domain1/log/error.log" CustomLog "C:/Program Files/Apache/htdocs/test-domain1/log/access.log” mójlog Nazwa serwera domena-testowa2 Katalog główny dokumentu "C:/Program Files/Apache/htdocs/test-domain2/www" ErrorLog "C:/Program Files/Apache/htdocs/test-domain2/log/error.log" CustomLog "C:/Program Files/Apache/htdocs/test-domain2/log/access.log” mójlog Zezwól na zastąpienie wszystkich opcji -Indeksy Nazwa_serwera domena-testowa3 DocumentRoot "C:/Program Files/Apache/htdocs/test-domain3/www" ErrorLog "C:/Program Files/Apache/htdocs/test-domain3/log/error.log" CustomLog "C:/Program Files/Apache/htdocs/test-domain3/log/access.log” mójlog Zezwól na zastąpienie wszystkich opcji -Indeksy

Trzy bloki Wirtualny Host opisz nasze trzy wirtualne hosty. Każdy ma swój własny katalog główny - DokumentRoot, ścieżka do dziennika błędów - Dziennik błędów i dziennik dostępu - Dziennik niestandardowy.

W katalogu głównym każdej domeny utwórz plik indeks.html z treścią „Witamy z domeny testowej 1”, „Witamy z domeny testowej 2” i „Witamy z domeny testowej 3”. Aby zmiany konfiguracji odniosły skutek, należy ponownie uruchomić Apache (kliknij lewym przyciskiem myszy ikonę monitora Apache -> Uruchom ponownie ) Jeśli nie popełniono żadnych błędów, wszystko powinno działać:

Gratulacje, masz teraz serwer WWW skonfigurowany z trzema hostami lokalnymi. Ekspansja dla webmastera :) Czas zacząć naukę podstaw budowy stron internetowych.

Ten materiał został napisany specjalnie dla osób, które dopiero mają dołączyć do grona twórców stron internetowych lub po prostu chcą zrozumieć niektóre zawiłości tego procesu. Tutaj dowiesz się czym jest serwer Apache, do czego może być potrzebny, skąd go zdobyć i jak poprawnie z niego korzystać. W przyszłości postaramy się opisać możliwie najsubtelniej Ustawienia Apache'a i go cechy funkcjonalne, tak aby nawet profesjonaliści mogli znaleźć w tych materiałach coś nowego dla siebie.

Aby strona internetowa pojawiła się w Internecie musi być hostowana na serwerze hostingodawcy lub własnym, podłączona do Internetu i posiadać dedykowany adres IP. Serwer to komputer, na którym zainstalowane jest specjalne oprogramowanie, zwane także „serwerem WWW”.

Na świecie istnieje ogromna liczba serwerów internetowych. Różnią się od siebie funkcjonalnością i przeznaczeniem. Dzisiaj porozmawiamy o najpopularniejszym z nich, instalowanym na serwerach większości dostawców usług hostingowych. Serwer Apache spełnia prawie wszystkie potrzeby współczesnego tworzenia stron internetowych, ale jednocześnie jest na tyle prosty, że programiści mogą go zainstalować w celu debugowania swoich programów.

W 1994 roku pracownik Centrum Narodowe aplikacji dla superkomputerów na Uniwersytecie Illinois w USA (NCSA) Rob McCool udostępnił do użytku publicznego pierwszy serwer WWW, nazwany demonem NCSA HTTP. Serwer zyskał popularność w wąskich kręgach, jednak w połowie 1994 roku McCool opuścił uczelnię i rozwój został wstrzymany.

Zaczęła działać mała grupa zainteresowanych webmasterów pracować razem nad produktem. Komunikowanie się na arkuszu dyskusji e-mail, opracowali „łatki” i innowacje dla serwera. To oni stworzyli Grupę Apache, która opracowała pierwszą wersję serwera Apache. Stało się to w kwietniu 1995 roku, kiedy na bazę (NCSA Server 1.3) zostały nałożone wszystkie istniejące „łatki”. Tak pojawiło się pierwsze oficjalne publiczne wydanie Apache 0.6.2.

Pierwsza publiczna wersja Apache pojawiła się w kwietniu 1995 roku, a wersja 1.0 została wydana w grudniu

Praca nad serwerem nie ustała ani na jeden dzień i już wkrótce stał się jednym z najpopularniejszych. Po licznych testach 1 grudnia 1995 pojawiła się wersja 1.0, stabilna i niezawodna. Przez te wszystkie lata i do dziś Apache pozostaje całkowicie darmowy. Być może to też zadecydowało o sukcesie serwera, bo według NetCrafta Apache jest obecnie zainstalowany na 67% wszystkich serwerów na świecie.

Serwer Apache jest obecnie zainstalowany na 67% serwerów na całym świecie. Obecnie rozwijane są jednocześnie dwie gałęzie

W tej chwili równolegle rozwijane są dwie gałęzie Apache - wersje 2.0 i 1.3. Druga wersja przeszła znaczną liczbę zmian, które wpłynęły przede wszystkim na rdzeń programu i kilka ważnych modułów. Ponieważ moduły napisane przez zewnętrznych programistów dla wersji 1.3 nie będą działać w wersji 2.0, obsługiwany jest także „stary” Apache. Jeśli jednak masz zamiar zainstalować Apache po raz pierwszy, to warto przyjrzeć się bliżej nowej wersji.

Apache to w pełni funkcjonalny, rozszerzalny serwer WWW o otwartym kodzie źródłowym

Czym więc jest Apache? Jest to w pełni funkcjonalny, rozszerzalny serwer WWW, który w pełni obsługuje protokół HTTP/1.1 i jest oprogramowaniem typu open source. Serwer może działać na prawie wszystkich popularnych platformach. Istnieją gotowe pliki wykonywalne serwerowe dla systemów Windows NT, Windows 9x, OS/2, Netware 5.xi kilku systemów UNIX. Co więcej, jest bardzo łatwy w instalacji i konfiguracji. Będziesz mógł to zweryfikować nieco później.

Apache jest konfigurowany przy użyciu tekstowych plików konfiguracyjnych. Podstawowe ustawienia są już skonfigurowane domyślnie i będą działać w większości przypadków. Jeśli brakuje Ci funkcjonalności standardowego Apache, powinieneś przyjrzeć się bliżej modułom redystrybucyjnym napisanym przez Grupę Apache i zewnętrznych programistów. Istotną zaletą jest to, że twórcy aktywnie komunikują się z użytkownikami i reagują na wszystkie komunikaty o błędach.

Najprostszą funkcją, jaką może wykonać Apache, jest siedzenie na serwerze i serwowanie zwykłej witryny HTML. Po otrzymaniu żądania dotyczącego określonej strony serwer wysyła odpowiedź do przeglądarki. Wpisujesz adres, otwiera się strona - wszystko jest proste.

Korzystając z serwera Apache możesz dokonać prostego uwierzytelnienia

Bardziej złożoną funkcją zawartą w protokole HTTP/1.1 jest uwierzytelnianie użytkownika. Używając regularne fundusze Serwer Apache, dla którego możesz ograniczyć dostęp do niektórych stron internetowych różni użytkownicy. Jest to konieczne np. w celu stworzenia interfejsu administracyjnego dla serwisu. Wykorzystywane są do tego pliki .htaccess i .htpasswd oraz moduły mod_auth i mod_access. Użytkowników można podzielić na grupy, a każdej z nich można przypisać własne uprawnienia dostępu.

Serwer Apache obsługuje technologię SSI

Aby oddzielić część projektową i funkcjonalną witryny, a także uprościć modyfikację obiektów statycznych, zastosowano technologię SSI. Pozwala umieścić wszystkie powtarzające się informacje w jednym pliku (np. top.inc), a następnie wstawić link do nich na stronach. Następnie, jeśli zajdzie potrzeba zmiany kilku wierszy tych informacji, wystarczy zmienić je tylko w jednym pliku. Serwer Apache obsługuje tę technologię i pozwala na wykorzystanie pełnego potencjału wtrąceń po stronie serwera.

Możesz tworzyć własne katalogi dla stron internetowych na serwerze Apache

Jeśli na tym samym serwerze z zainstalowanym systemem operacyjnym Rodzina Unixów a serwer Apache ma kilku użytkowników, wówczas każdy z nich może utworzyć osobny katalog. Dokładniej, zostanie on utworzony automatycznie wraz z aliasem. Odbywa się to za pomocą modułu mod_userdir i dyrektywy UserDir. Możesz więc na przykład zmapować folder public_html w folderze domowym użytkownika na adres www.site.ru/~user. Ogólnie rzecz biorąc, dzieje się to na serwerach większości witryn, które to zapewniają darmowy hosting. Administrator serwera może zezwolić lub odmówić niektórzy użytkownicy twórz strony główne, korzystaj z SSI i innych funkcji serwera. Pełnoprawny hosting zwykle wiąże się z utworzeniem osobnego serwera wirtualnego dla każdego użytkownika.

Możesz skonfigurować hosty wirtualne. Dzięki nim na jednym serwerze fizycznym może znajdować się kilka wirtualnych

Serwer Apache był jednym z pierwszych serwerów obsługujących serwery wirtualne (hosty). Ta funkcja umożliwia hostowanie kilku pełnowartościowych witryn internetowych na jednym serwerze fizycznym. Każdy z nich może mieć własną domenę, administratora, adres IP i tak dalej.

Jeśli chcesz umieścić domeny domain.ru i domain.com na swoim serwerze, najpierw musisz się o tym upewnić systemu DNS przypisano im Twój adres IP. Następnie utwórz dwie dyrektywy w pliku konfiguracyjnym Apache , gdzie opisujesz każdego wirtualnego hosta. Dzięki temu serwer będzie wiedział, do którego folderu „wysłać” przychodzące żądanie.

Apache obsługuje pracę z PHP, CGI i innymi skryptami

Obecnie większość stron internetowych jest dynamiczna. Oznacza to, że oni wygląd a treść tworzona jest za pomocą skryptu oprogramowania napisanego w jednym z „języków” (nie można ich w pełni nazwać językami, definicja jest raczej dowolna). W tej chwili najczęściej stosowanymi technologiami są CGI i PHP. Oczywiście Apache obsługuje oba, a także możliwość łączenia innych języków.

Moduł mod_cgi umożliwia hostowanie skryptów CGI na serwerze. Ogólnie rzecz biorąc, są to po prostu pliki wykonywalne napisane w jednym z obowiązujących języków programowania. Mogą być one zawarte zarówno w formie skompilowanej (dzieje się tak np., jeśli pisze się CGI w C++), jak i w tekście źródłowym (jeśli na serwerze jest zainstalowany Perl, to programista może takie pliki umieścić. Czasem mają one rozszerzenie .pl ).

Jeśli chodzi o PHP, możliwość integracji go z Apache zapewniają twórcy samego PHP. Apache działa jedynie jako pośrednik między skryptem a kompilatorem. Istnieją dwa sposoby integracji PHP z Apache. Pierwsza to instalacja specjalnego modułu, który rozszerza możliwości serwera, a następnie sam staje się zdolny do „kompilowania” skryptów. A drugim jest ustanowienie połączeń w plikach konfiguracyjnych pomiędzy plikami php a samym kompilatorem (znajduje się on na dysku w postaci plików .cgi lub .exe).

W ostatnim Wersje Apache'a istnieje moduł do pracy z silną ochroną kryptograficzną SSL/TSL

W oparciu o serwer Apache można tworzyć nie tylko proste strony amatorskie, ale także zasoby wymagające poważnych ochrona kryptograficzna przesyłane dane. Specjalnie do tego celu opracowano protokół SSL/TLS, którego obsługa została wbudowana w Apache 2.0. Za pomocą specjalnego modułu można przeprowadzić uwierzytelnianie w oparciu o spersonalizowane certyfikaty, co pozwala z niemal całkowitą pewnością zagwarantować autentyczność użytkownika.

Apache przechowuje szczegółowe dzienniki wszystkiego, co dzieje się na serwerze

I oczywiście serwer Apache może prowadzić dziennik wszystkich wykonanych na nim działań. Ponadto administrator może wybrać poziom szczegółowości protokołu. Dzienniki są prowadzone oddzielnie dla błędów, pomyślnych operacji i dla każdego hosta wirtualnego. Krótko mówiąc, kompletny zestaw do dokładnej analizy pojawiających się błędów.

W ramach jednego materiału nie udało nam się nie tylko szczegółowo omówić wszystkie możliwości serwera Apache, ale po prostu je wymienić. Artykuł ten miał na celu pierwszą powierzchowną znajomość użytkowników i przyszłych programistów z serwerem Apache. W innych materiałach na pewno poruszymy wszystkie zawiłości tworzenia stron internetowych w oparciu o ten wspaniały pakiet oprogramowania.