Jak skonfigurować serwer WWW Apache na Ubuntu lub Debianie VPS

Co To jest Apache?

Apache jest najpopularniejszym serwerem WWW w Internecie. Służy do obsługi ponad połowy wszystkich aktywnych stron internetowych.

Chociaż istnieje wiele realnych serwerów internetowych, które będą obsługiwać twoje treści, pomocne jest zrozumienie, jak działa Apache ze względu na jego wszechobecność.

w tym artykule przeanalizujemy niektóre ogólne pliki konfiguracyjne i opcje, które można w nich kontrolować., Ten artykuł będzie zgodny z układem Ubuntu / Debian plików Apache, który różni się od tego, jak inne dystrybucje budują hierarchię konfiguracji.

Jak zainstalować Apache na Ubuntu i Debianie

Jeśli nie masz jeszcze zainstalowanego Apache ' a, możesz to zrobić teraz, wydając następujące polecenia:

sudo apt-get updatesudo apt-get install apache2

To wszystko, co jest konieczne, aby mieć działający serwer WWW., Jeśli odwiedzisz swój adres IP VPS w przeglądarce internetowej, otrzymasz domyślną stronę indeksu Apache:

your_domain_name_or_ip_address
It works!This is the default web page for this server.The web server software is running but no content has been added, yet.

hierarchia plików Apache w Ubuntu i Debianie

w Ubuntu i Debianie Apache przechowuje swoje główne pliki konfiguracyjne w folderze „/etc/apache2”:

cd /etc/apache2ls -F
apache2.conf envvars magic mods-enabled/ sites-available/conf.d/ httpd.conf mods-available/ ports.conf sites-enabled/

w tym katalogu znajduje się wiele plików tekstowych oraz kilka podkatalogów. Jest to jedna z najbardziej rozpoznawalnych marek na świecie.,conf: jest to główny plik konfiguracyjny serwera. Prawie całą konfigurację można wykonać z tego pliku, chociaż dla uproszczenia zaleca się stosowanie oddzielnych, wyznaczonych plików. Plik ten skonfiguruje ustawienia domyślne i będzie centralnym punktem dostępu dla serwera do odczytu szczegółów konfiguracji.

  • porty.conf: plik ten służy do określenia portów, na których powinny nasłuchiwać wirtualne hosty. Upewnij się, że ten plik jest poprawny, Jeśli konfigurujesz protokół SSL.
  • conf.d/: ten katalog jest używany do kontrolowania konkretnych aspektów konfiguracji Apache., Na przykład jest często używany do definiowania konfiguracji SSL i domyślnych wyborów zabezpieczeń.
  • sites-available/: ten katalog zawiera wszystkie pliki hostów wirtualnych, które definiują różne strony internetowe. Ustalą One, które treści będą serwowane dla których żądań. Są to dostępne konfiguracje, a nie aktywne konfiguracje.
  • sites-enabled/: ten katalog określa, które definicje wirtualnych hostów są faktycznie używane. Zazwyczaj katalog ten składa się z dowiązań symbolicznych do plików zdefiniowanych w katalogu „sites-available”.,
  • mods -/: katalogi te są podobne funkcjonalnie do katalogów stron, ale definiują moduły, które mogą być opcjonalnie załadowane.
  • jak widać, konfiguracja Apache nie odbywa się w pojedynczym pliku monolitycznym, ale zamiast tego odbywa się poprzez modułową konstrukcję, w której nowe pliki mogą być dodawane i modyfikowane w razie potrzeby.w tym roku mamy już ponad 1000 zdjęć z całego świata.zapraszamy do zapoznania się z naszą ofertą oraz do zapoznania się z naszą ofertą.plik conf.,

    ten plik jest podzielony na trzy główne sekcje: konfiguracja dla globalnego procesu serwera Apache, konfiguracja dla domyślnego serwera i konfiguracja hostów wirtualnych.

    w Ubuntu i Debianie większość pliku jest przeznaczona do definicji globalnych, a konfiguracja domyślnego serwera i wirtualnych hostów jest obsługiwana na końcu, za pomocą „Include …”dyrektywa.

    dyrektywa „Include” pozwala Apache ' owi odczytać inne pliki konfiguracyjne do bieżącego pliku w miejscu, w którym pojawia się instrukcja., W rezultacie Apache dynamicznie generuje nadrzędny plik konfiguracyjny podczas uruchamiania.

    Jeśli przewiń do dołu pliku, istnieje wiele różnych poleceń „Include”. Te definicje modułu ładowania, porty.dokument conf, specyficzne pliki konfiguracyjne w „conf.d / „katalog, i wreszcie, definicje wirtualnego hosta w katalogu” sites-enabled/”.

    skupimy się na pierwszej części pliku, aby dowiedzieć się, jak Apache definiuje swoje ustawienia globalne.,

    sekcja konfiguracji globalnej

    sekcja ta służy do konfiguracji niektórych opcji, które kontrolują działanie Apache jako całości.

    istnieje kilka interesujących opcji, które możesz zmodyfikować w tej sekcji:

    Timeout

    domyślnie parametr ten jest ustawiony na „300”, co oznacza, że serwer ma maksymalnie 300 sekund na spełnienie każdego żądania.

    jest to prawdopodobnie zbyt wysokie dla większości zestawów i można bezpiecznie upuścić do czegoś między 30 a 60 sekund.,

    KeepAlive

    Ta opcja, jeśli jest ustawiona na „On”, pozwoli każdemu połączeniu pozostać otwartym, aby obsłużyć wiele żądań od tego samego klienta.

    Jeśli jest to ustawione na „Off”, każde żądanie będzie musiało ustanowić nowe połączenie, co może spowodować znaczne obciążenie w zależności od konfiguracji i sytuacji na drodze.

    MaxKeepAliveRequests

    Ta opcja określa, ile osobnych żądań obsłuży każde połączenie przed śmiercią. Utrzymanie tej liczby na wysokim poziomie pozwoli Apache na skuteczniejsze serwowanie treści każdemu klientowi.,

    ustawienie tej wartości na 0 pozwoli Apache ' owi obsłużyć nieograniczoną ilość żądań dla każdego połączenia.

    KeepAliveTimeout

    To ustawienie określa, jak długo należy czekać na następne żądanie po zakończeniu ostatniego. Jeśli zostanie osiągnięty próg timeout, połączenie umrze.

    oznacza to po prostu, że przy następnym żądaniu zawartości serwer nawiąże nowe połączenie, aby obsłużyć żądanie treści, które składają się na stronę odwiedzaną przez Klienta.,

    Konfiguracja MPM

    następna sekcja określa konfigurację opcji MPM (Multi-Processing Module). Możesz porównać, z którą sekcją została skompilowana instalacja Apache, wychodząc z terminala i wpisując:

    apache2 -l
    Compiled in modules: core.c mod_log_config.c mod_logio.c prefork.c http_core.c mod_so.c

    jak widać na tym serwerze, „prefork.w naszej ofercie znajdują się również akcesoria do wózków widłowych, wózków widłowych, wózków widłowych, wózków widłowych, wózków widłowych, wózków widłowych, wózków widłowych.plik conf. Twoja instalacja może mieć wiele do wyboru, ale można wybrać tylko jedną.

    możesz dostosować konfigurację prefork MPM w odpowiedniej sekcji.,

    przeglądanie domyślnego pliku hosta wirtualnego

    domyślna deklaracja hosta wirtualnego znajduje się w pliku o nazwie „default” w katalogu „sites-available”.

    możemy dowiedzieć się o ogólnym formacie pliku wirtualnego hosta, badając ten plik. Otwórz plik za pomocą następującego polecenia:

    sudo nano /etc/apache2/sites-available/default

    domyślny Host wirtualny jest skonfigurowany do obsługi dowolnego żądania na porcie 80, standardowym porcie http. Jest to zdefiniowane w nagłówku deklaracji, gdzie jest napisane”*: 80″, co oznacza port 80 na dowolnym interfejsie.,

    nie oznacza to jednak, że musi obsługiwać każde żądanie do serwera na tym porcie. Apache używa najbardziej specyficznej definicji wirtualnego hosta, która odpowiada żądaniu. Oznacza to, że gdyby istniała bardziej szczegółowa definicja, mogłaby ona zastąpić tę definicję.

    Konfiguracja najwyższego poziomu hosta wirtualnego

    opcje te są ustawiane w definicji hosta wirtualnego poza inną poddeklaracją niższego poziomu. Dotyczą one całego wirtualnego hosta.

    opcja „ServerAdmin” określa kontaktowy adres e-mail, który powinien być używany w przypadku problemów z serwerem.,w związku z tym, że nie jesteśmy w stanie zrealizować zamówienia, nie będziemy w stanie zrealizować zamówienia w terminie 14 dni od daty otrzymania zamówienia.plik D / security, więc upewnij się, że chcesz otrzymać pocztę, jeśli dostosujesz to ustawienie.

    gdybyśmy używali tego jako szablonu dla innych definicji wirtualnego hosta, chcielibyśmy dodać definicję „ServerName”, która określa nazwę domeny lub adres IP, który to żądanie powinno obsłużyć. Jest to opcja, która dodałaby specyficzność do wirtualnego hosta, pozwalając mu na przebicie domyślnej definicji, jeśli pasuje do wartości nazwy serwera.,

    za pomocą definicji „ServerAlias” można również sprawić, że wirtualny Host będzie miał zastosowanie do więcej niż jednej nazwy. Zapewnia to alternatywne ścieżki do tej samej zawartości. Dobrym przykładem użycia jest dodanie tej samej domeny, poprzedzonej „www”.

    opcja „DocumentRoot” określa, gdzie będzie znajdować się zawartość żądana dla tego wirtualnego hosta. W związku z tym, że nie jest to możliwe, nie jest to możliwe.,

    definicje katalogów

    w definicji wirtualnego hosta znajdują się definicje, w jaki sposób serwer obsługuje różne katalogi w systemie plików. Apache zastosuje wszystkie te kierunki w kolejności od najkrótszej do najdłuższej, więc znowu jest szansa na nadpisanie poprzednich opcji.

    pierwsza definicja katalogu stosuje reguły dla katalogu ” / ” lub katalogu głównego. Zapewni to podstawową konfigurację dla Twojego wirtualnego hosta, ponieważ ma ona zastosowanie do wszystkich plików serwowanych w systemie plików.

    domyślnie Ubuntu nie ustawia żadnych ograniczeń dostępu do systemu plików., Apache zaleca dodanie pewnych domyślnych ograniczeń dostępu. Możesz to zmodyfikować w następujący sposób:

    <Directory />Options FollowSymLinksAllowOverride NoneOrder Deny,AllowDeny from All</Directory>

    spowoduje to zablokowanie dostępu do całej zawartości, chyba że zostanie to określone inaczej w kolejnych definicjach katalogów.

    Następna definicja katalogu dotyczy katalogu głównego, więc określa opcję „allow from all”, która nadpisuje opcję „/” dla tego katalogu.

    opcja” AllowOverride „jest używana, aby zdecydować, czy”.htaccess ” plik może zastąpić ustawienia, jeśli jest umieszczony w katalogu zawartości., Domyślnie nie jest to dozwolone, ale może być przydatne w różnych okolicznościach.

    polecenia Alias i ScriptAlias

    definicje katalogów są czasami poprzedzone instrukcjami „Alias” lub „ScriptAlias”. Alias mapuje ścieżkę url do ścieżki katalogu.

    ScriptAlias działa w ten sam sposób, ale jest używany do definiowania katalogów, które będą miały w sobie komponenty wykonywalne.

    Alias /content/ /path/to/content/

    podążając za aliasem, należy pamiętać o zdefiniowaniu katalogu z uprawnieniami dostępu, jak opisano w poprzedniej sekcji.,

    Włączanie witryn i modułów w Apache

    Gdy Masz plik hosta wirtualnego, który spełnia Twoje wymagania, możesz użyć narzędzi dołączonych do Apache, aby przenieść je do witryn na żywo.,

    aby automatycznie utworzyć dowiązanie symboliczne w katalogu „sites-enabled” do istniejącego pliku w katalogu „sites-available”, wydaj następujące polecenie:

    sudo a2ensite virtual_host_file_name

    Po włączeniu witryny, wydaj następujące polecenie, aby powiedzieć Apache, aby ponownie odczytał pliki konfiguracyjne, umożliwiając rozprzestrzenianie zmiany:

    sudo service apache2 reload

    jest również poleceniem towarzyszącym do wyłączania wirtualnego hosta., Działa poprzez usunięcie dowiązania symbolicznego z katalogu „sites-enabled”:

    sudo a2dissite virtual_host_file_name

    ponownie załaduj konfigurację, aby dokonać zmiany:

    sudo service apache2 reload

    moduły mogą być włączane lub wyłączane za pomocą odpowiednio poleceń” a2enmod „i” a2dismod”. Działają one w taki sam sposób jak wersje” site ” tych poleceń.

    pamiętaj, aby ponownie załadować zmiany konfiguracji również po włączeniu lub wyłączeniu modułów.

    podsumowanie

    przejrzeliśmy kilka podstawowych plików konfiguracyjnych Apache., Apache jest wszechstronny i bardzo modułowy, więc potrzeby konfiguracji będą różne w zależności od konfiguracji.

    powinieneś dobrze zrozumieć, do czego służą główne pliki konfiguracyjne i jak ze sobą współdziałają. Jeśli chcesz wiedzieć o konkretnych opcjach konfiguracyjnych, dostarczone pliki są dobrze skomentowane, A Apache zapewnia doskonałą dokumentację.

    Mam nadzieję, że pliki konfiguracyjne nie będą teraz tak onieśmielające i poczujesz się bardziej komfortowo eksperymentując i modyfikując je zgodnie z Twoimi potrzebami.

    by Justin Ellingwood

    Share

    Dodaj komentarz

    Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *