Apache je nejoblíbenější webový server na internetu. Používá se k obsluhování více než poloviny všech aktivních webových stránek.
Ačkoli existuje mnoho životaschopných webových serverů, které budou poskytovat váš obsah, je užitečné pochopit, jak Apache funguje, protože je všudypřítomný.
V tomto článku prozkoumáme některé obecné konfigurační soubory a možnosti, které v nich lze ovládat. Tento článek se bude řídit rozložením souborů Apache Ubuntu/Debian, které se liší od toho, jak ostatní distribuce vytvářejí hierarchii konfigurace.
Pokud ještě Apache nemáte nainstalovaný, můžete tak učinit nyní zadáním následujících příkazů:
sudo apt-get updatesudo apt-get install apache2Toto je vše, co je potřeba k tomu, abyste měli funkční webový server. Pokud navštívíte IP adresu svého VPS ve webovém prohlížeči, získáte výchozí indexovou stránku Apache:
your_domain_name_or_ip_addressFunguje to! Toto je výchozí webová stránka pro tento server. Software webového serveru je spuštěn, ale zatím nebyl přidán žádný obsah.Na Ubuntu a Debianu , Apache uchovává své hlavní konfigurační soubory ve složce "/etc/apache2":
cd /etc/apache2ls -Fapache2.confenvvars magicmods-enabled/sites-available/conf.d/ httpd.confmods-available/ports.conf sites-enabled/Existuje řada souborů ve formátu prostého textu a některé podadresáře v tomto adresáři.Toto jsou některá z užitečnějších umístění, která je třeba znát:
apache2.conf: Toto je hlavní konfigurační soubor pro server. Téměř veškerou konfiguraci lze provést z tohoto souboru, i když se pro jednoduchost doporučuje používat samostatné, určené soubory. Tento soubor nakonfiguruje výchozí nastavení a bude centrálním bodem přístupu aby server četl konfigurační detaily.ports.conf: Tento soubor se používá k určení portů, na kterých by virtuální hostitelé měli naslouchat. Ujistěte se, že je tento soubor správný, pokud konfigurujete SSL.conf.d/: Tento adresář je používá se pro ovládání konkrétních aspektů konfigurace Apache. Často se například používá k definování konfigurace SSL a výchozích bezpečnostních voleb.sites-available/: Tento adresář obsahuje všechny soubory virtuálního hostitele, které definují různé webové stránky. obsah je obsluhován pro které požadavky.Toto jsou dostupné konfigurace, nikoli aktivní konfigurace.sites-enabled/: Tento adresář určuje, které definice virtuálního hostitele se skutečně používají. Obvykle se tento adresář skládá ze symbolických odkazů na soubory definované v "sites-available" " directory.mods-[enabled,available]/: Tyto adresáře mají podobnou funkci jako adresáře webů, ale definují moduly, které lze místo toho volitelně načíst.Jak vidíte, konfigurace Apache neprobíhá v jeden monolitický soubor, ale místo toho se děje prostřednictvím modulárního designu, kde lze přidávat a upravovat nové soubory podle potřeby.
Hlavní podrobnosti o konfiguraci vašeho serveru Apache jsou uloženy v souboru "/etc/apache2/apache2.conf".
Tento soubor je rozdělen do tří hlavních částí: konfigurace pro proces globálního serveru Apache, konfigurace pro výchozí server a konfigurace virtuálních hostitelů.
V Ubuntu a Debianu je většina souboru pro globální definice a konfigurace výchozího serveru a virtuálních hostitelů je řešena na konci pomocí direktivy "Include ...".
Direktiva "Include" umožňuje Apache načíst další konfigurační soubory do aktuálního souboru v místě, kde se příkaz objeví. Výsledkem je, že Apache při spuštění dynamicky generuje zastřešující konfigurační soubor.
Pokud přejdete na konec souboru, zobrazí se řada různých příkazů „Zahrnout“. Tyto definice načítacího modulu, dokument ports.conf, specifické konfigurační soubory v adresáři „conf.d/“ a konečně definice virtuálního hostitele v adresáři "sites-enabled/".
Zaměříme se na první část souboru, abychom zjistili, jak Apache definuje svá globální nastavení.
Tato sekce se používá ke konfiguraci některých možností, které řídí, jak Apache funguje jako celek.
V této části je několik zajímavých možností, které byste mohli chtít upravit:
Ve výchozím nastavení je tento parametr nastaven na „300“, což znamená, že server má na splnění každého požadavku maximálně 300 sekund.
Toto je pravděpodobně příliš vysoké pro většinu nastavení a lze jej bezpečně snížit na něco mezi 30 a 60 sekundami.
Pokud je tato možnost nastavena na „Zapnuto“, umožní každému připojení zůstat otevřené pro zpracování více požadavků od stejného klienta.
Pokud je tato možnost nastavena na „Vypnuto“, každý požadavek bude muset vytvořit nové připojení, což může mít za následek značnou režii v závislosti na vašem nastavení a dopravní situaci.
Toto řídí, kolik samostatných požadavků každé připojení zpracuje, než zemře. Udržení tohoto čísla na vysoké úrovni umožní Apache efektivněji poskytovat obsah každému klientovi.
Nastavení této hodnoty na 0 umožní Apache obsloužit neomezené množství požadavků pro každé připojení.
Toto nastavení určuje, jak dlouho se má čekat na další požadavek po dokončení posledního. Pokud je dosaženo prahu časového limitu, spojení přestane fungovat.
To pouze znamená, že při příštím požadavku na obsah server naváže nové připojení, aby zpracoval požadavek na obsah, který tvoří stránku, kterou klient navštěvuje.
Další část specifikuje konfiguraci možností MPM (Multi-Processing modul).
apache2 -lZkompilováno v modules:core.cmod_log_config.cmod_logio.cprefork.chttp_core.cmod_so.cJak můžete vidět na tomto serveru, "prefork.c" je modul, který byl zkompilován a je také v "apache2" .conf". Vaše instalace může mít na výběr několik, ale vybrat lze pouze jednu.
Konfiguraci prefork MPM můžete upravit v příslušné sekci.
Výchozí deklaraci virtuálního hostitele lze nalézt v souboru s názvem „default“ v adresáři „sites-available“.
Zkoumáním tohoto souboru se můžeme dozvědět o obecném formátu souboru virtuálního hostitele. Otevřete soubor pomocí následujícího příkazu:
sudo nano /etc/apache2/sites-available/defaultServerAdmin webmaster@localhostDocumentRoot /var/wwwOptions FollowSymLinksAllowOverride NoneOptions Indexy FollowSymLinks MultiViewsAllowOverride NoneOrder povolit, odepřít od všech. . .Výchozí virtuální hostitel je nakonfigurován tak, aby zpracovával jakýkoli požadavek na portu 80, standardním portu http. Ten je definován v záhlaví deklarace, kde je uvedeno "*:80", což znamená port 80 na jakémkoli rozhraní.
To však neznamená, že nezbytně zpracuje každý požadavek na server na tomto portu. Apache používá nejkonkrétnější definici virtuálního hostitele, která odpovídá požadavku. To znamená, že pokud by existovala konkrétnější definice, mohla by tuto definici nahradit definice.
Tyto možnosti jsou nastaveny v rámci definice virtuálního hostitele mimo jakoukoli jinou dílčí deklaraci nižší úrovně. Platí pro celého virtuálního hostitele.
Volba "ServerAdmin" určuje kontaktní e-mail, který by měl být použit v případě problémů se serverem.
Toto lze vložit na chybovou stránku, pokud máte „ServerSignature“ nastaven na „E-mail“ v souboru „/etc/apache2/conf.d/security“, takže se ujistěte, že chcete e-mail přijímat, pokud upravit toto nastavení.
Pokud bychom to použili jako šablonu pro jiné definice virtuálního hostitele, chtěli bychom přidat definici "ServerName", která specifikuje název domény nebo IP adresu, kterou by měl tento požadavek zpracovat. Toto je možnost, která by přidala specifičnost virtuálního hostitele, což mu umožňuje překonat výchozí definici, pokud odpovídá hodnotě ServerName.
Můžete také nastavit, aby se virtuální hostitel vztahoval na více než jeden název pomocí definice "ServerAlias". To poskytuje alternativní cesty, jak se dostat ke stejnému obsahu. Dobrým případem použití je přidání stejné domény, které předchází „www“.
Volba "DocumentRoot" určuje, kde bude umístěn obsah požadovaný pro tohoto virtuálního hostitele. Výchozí virtuální hostitel je nastaven tak, aby poskytoval obsah z adresáře "/var/www" na Ubuntu.
V rámci definice virtuálního hostitele existují definice, jak server zachází s různými adresáři v systému souborů. Apache použije všechny tyto směry v pořadí od nejkratšího po nejdelší, takže opět možnost přepsat předchozí možnosti.
První definice adresáře používá pravidla pro adresář "/" neboli kořenový adresář. To poskytne základní konfiguraci pro vašeho virtuálního hostitele, protože se vztahuje na všechny soubory obsluhované v systému souborů.
Ve výchozím nastavení Ubuntu nenastavuje žádná omezení přístupu k souborovému systému. Apache doporučuje přidat některá výchozí omezení přístupu. Toto můžete upravit takto:
Možnosti FollowSymLinksAllowOverride NoneOrder Deny,AllowDeny from AllToto zakáže přístup k veškerému obsahu, pokud není v následujících definicích adresáře uvedeno jinak.
Další definice adresáře je pro kořen dokumentu, takže specifikuje volbu "povolit ze všech", která přepíše volbu "/" pro tento adresář.
Volba "AllowOverride" se používá k rozhodnutí, zda soubor ".htaccess" může přepsat nastavení, pokud je umístěn v adresáři s obsahem. Ve výchozím nastavení to není povoleno, ale za různých okolností to může být užitečné.
Definicím adresáře někdy předchází příkazy „Alias“ nebo „ScriptAlias“. Alias mapuje cestu url na cestu k adresáři.
ScriptAlias funguje stejným způsobem, ale používá se k definování adresářů, které budou obsahovat spustitelné komponenty.
Například tento řádek ve virtuálním hostiteli, který zpracovává požadavek na „example.com“, by umožnil přístup k obsahu v „/cesta/k/obsahu/“ přechodem na „example.com/obsah/“:
Alias /content/ /cesta/k/obsahu/Za aliasem byste měli nezapomenout definovat adresář s přístupovými právy, jak je uvedeno v předchozí části.
Jakmile budete mít soubor virtuálního hostitele, který splňuje vaše požadavky, můžete je pomocí nástrojů, které jsou součástí Apache, převést na živé weby.
Chcete-li automaticky vytvořit symbolický odkaz v adresáři „sites-enabled“ na existující soubor v adresáři „sites-available“, zadejte následující příkaz:
sudo a2ensite název_souboru_virtuálního_hostitelePo povolení webu zadejte následující příkaz, kterým sdělíte Apache, aby znovu načetl své konfigurační soubory, čímž umožníte rozšíření změny:
sudo service apache2 reloadExistuje také doprovodný příkaz pro deaktivaci virtuálního hostitele. Funguje odstraněním symbolického odkazu z adresáře „sites-enabled“:
sudo a2dissite virtual_host_file_nameZnovu znovu načtěte konfiguraci, aby se změna projevila:
sudo service apache2 reloadModuly lze povolit nebo zakázat pomocí příkazů "a2enmod" a "a2dismod". Fungují stejným způsobem jako "site" verze těchto příkazů.
Nezapomeňte znovu načíst změny konfigurace poté, co byly moduly povoleny nebo zakázány.
Prošli jsme několik základních konfiguračních souborů Apache. Apache je univerzální a velmi modulární, takže potřeby konfigurace se budou lišit v závislosti na vašem nastavení.
Měli byste dobře rozumět tomu, k čemu slouží hlavní konfigurační soubory a jak se vzájemně ovlivňují. Pokud potřebujete vědět o konkrétních konfiguračních možnostech, poskytnuté soubory jsou dobře komentovány a Apache poskytuje vynikající dokumentaci.
Doufáme, že konfigurační soubory nebudou nyní tak zastrašující a budete se cítit pohodlněji experimentovat a upravovat podle svých potřeb.
Od Justina Ellingwooda
PREV: Odstraňování problémů na serveru DHCP | Dokumenty Microsoft
NEXT: „Nelze se připojit k vašemu serveru DHCP“ *Řešení* – Xbox One