co je Apache?
Apache je nejoblíbenější webový server na internetu. Používá se k obsluze více než poloviny všech aktivních webových stránek.
přestože existuje mnoho životaschopných webových serverů, které budou sloužit vašemu obsahu, je užitečné pochopit, jak Apache funguje kvůli jeho všudypřítomnosti.
v tomto článku budeme zkoumat některé obecné konfigurační soubory a možnosti, které lze v nich ovládat., Tento článek bude následovat rozložení souborů Apache Ubuntu/Debian, které se liší od toho, jak ostatní distribuce vytvářejí konfigurační hierarchii.
Jak Nainstalovat Apache na Ubuntu a Debian
Pokud nemáte již máte Apache nainstalován, můžete tak učinit nyní vydáním následující příkazy:
sudo apt-get updatesudo apt-get install apache2
To je vše, co je nutné mít funkční webový server., Pokud navštívíte vaše VPS IP adresu ve webovém prohlížeči, budete mít výchozí Apache index stránka:
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.
Apache Hierarchii Souborů v Ubuntu a Debianu
Na Ubuntu a Debian, Apache udržuje jeho hlavní konfigurační soubory v „/etc/apache2“ složky:
cd /etc/apache2ls -F
apache2.conf envvars magic mods-enabled/ sites-available/conf.d/ httpd.conf mods-available/ ports.conf sites-enabled/
Existuje řada prostý text soubory a podadresáře v tomto adresáři. Toto jsou některá z užitečnějších míst, která je třeba znát:
- apache2.,conf: toto je hlavní konfigurační soubor pro server. Téměř všechny konfigurace lze provést z tohoto souboru, i když se doporučuje používat samostatné, určené soubory pro jednoduchost. Tento soubor nakonfiguruje výchozí hodnoty a bude ústředním bodem přístupu pro server, aby si přečetl podrobnosti o konfiguraci.
- porty.conf: tento soubor slouží k určení portů, které by virtuální hostitelé měli poslouchat. Nezapomeňte zkontrolovat, zda je tento soubor správný, pokud konfigurujete SSL.
- conf.d/ : tento adresář se používá pro ovládání specifických aspektů konfigurace Apache., Například se často používá k definování konfigurace SSL a výchozích možností zabezpečení.
- sites-available/: tento adresář obsahuje všechny virtuální hostitelské soubory, které definují různé webové stránky. Ty určí, který obsah dostane sloužil pro které požadavky. Jedná se o dostupné konfigurace, ne aktivní konfigurace.
- sites-enabled/: tento adresář stanoví, které definice virtuálních hostitelů se skutečně používají. Obvykle se tento adresář skládá ze symbolických odkazů na soubory definované v adresáři „weby-dostupné“.,
- mods -/: tyto adresáře mají podobnou funkci jako adresáře webů,ale definují moduly, které lze místo toho načíst.
jak vidíte, konfigurace Apache se nekoná v jediném monolitickém souboru, ale místo toho se děje modulárním designem, kde lze podle potřeby přidávat a upravovat nové soubory.
při pohledu na Apache2.conf soubor
hlavní konfigurační údaje pro váš server Apache jsou drženy v “ / etc / apache2 / apache2.spis conf.,
Tento soubor je rozdělen do tří hlavních sekcí: konfigurace pro globální Apache server proces, konfigurace pro výchozí server a konfigurace Virtuálních Hostitelů.
V Ubuntu a Debian, většina souboru je pro globální definice a konfigurace výchozí server a virtuálních hostitelů je zpracována na konci, pomocí „Patří …“ směrnice.
„Patří“ směrnice umožňuje Apache číst další konfigurační soubory do aktuálního souboru v umístění, které se zobrazí sdělení., Výsledkem je, že Apache dynamicky generuje zastřešující konfigurační soubor při spuštění.
pokud přejdete na spodní část souboru, existuje řada různých prohlášení“ zahrnout“. Tyto definice zatížení modulu, porty.conf dokument, specifické konfigurační soubory v “ conf.d / „adresář a nakonec definice virtuálního hostitele v adresáři“ sites-enabled/“.
zaměříme se na první část souboru, abychom zjistili, jak Apache definuje jeho globální nastavení.,
globální konfigurační sekce
tato část slouží ke konfiguraci některých možností, které řídí fungování Apache jako celku.
Tam jsou některé zajímavé možnosti, které chcete upravit v této části:
Limit
ve výchozím nastavení je tento parametr nastaven na „300“, což znamená, že server má maximálně 300 sekund splnit každý požadavek.
toto je pravděpodobně příliš vysoké pro většinu nastavení a může být bezpečně upuštěno na něco mezi 30 a 60 sekundami.,
Udržovací
Tato volba, pokud je nastavena na „On“, umožní každé připojení zůstat otevřené, aby zpracovat více žádostí od stejného klienta.
Pokud je nastavena na „vypnuto“, bude muset každý požadavek vytvořit nové připojení, což může mít za následek značnou režii v závislosti na Nastavení a dopravní situaci.
MaxKeepAliveRequests
to řídí, kolik samostatných požadavků bude každé připojení zpracovávat před smrtí. Udržování tohoto čísla vysoko umožní Apache efektivněji sloužit obsahu každému klientovi.,
nastavení této hodnoty na 0 umožní Apache sloužit neomezené množství požadavku pro každé připojení.
KeepAliveTimeout
toto nastavení určuje, jak dlouho čekat na další požadavek po dokončení posledního. Pokud je dosaženo prahové hodnoty časového limitu, spojení zemře.
To jen znamená, že příště obsahu je požadováno, server vytvoří nové připojení pro zpracování žádosti pro obsah, který tvoří straně klienta je na návštěvě.,
konfigurace MPM
další část určuje konfiguraci možností MPM (Multi-Processing Module). Můžete porovnat, která část vaší instalaci Apache byl sestaven s ukončením do terminálu a zadáním:
apache2 -l
Compiled in modules: core.c mod_log_config.c mod_logio.c prefork.c http_core.c mod_so.c
Jak můžete vidět, v tomto serveru, „prefork.c „je modul, který byl sestaven a je také v“ apache2.spis conf. Vaše instalace může mít více z čeho vybírat, ale pouze jeden může být vybrán.
konfiguraci PREFORK MPM můžete upravit v příslušné části.,
zkoumání výchozího virtuálního hostitelského souboru
výchozí deklarace virtuálního hostitele lze nalézt v souboru s názvem „default“ v adresáři „sites-available“.
o obecném formátu virtuálního hostitelského souboru se můžeme dozvědět prozkoumáním tohoto souboru. Otevřete soubor pomocí následujícího příkazu:
sudo nano /etc/apache2/sites-available/default
výchozí Virtuální Hostitel je nakonfigurován tak, aby zvládnout jakýkoli požadavek na port 80, standardní port http. To je definováno v záhlaví deklarace, kde se říká“*: 80″, což znamená port 80 na libovolném rozhraní.,
to neznamená, že bude nutně zpracovávat 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.
konfigurace nejvyšší úrovně virtuálního hostitele
tyto možnosti jsou nastaveny v rámci definice virtuálního hostitele mimo jakékoli jiné dílčí deklarace nižší úrovně. Vztahují se na celý virtuální hostitel.
volba „ServerAdmin“ určuje kontaktní e-mail, který by měl být použit v případě problémů se serverem.,
toto může být vloženo na chybovou stránku, pokud máte“ ServerSignature „nastavenou na“ e-mail „v“ /etc/apache2/conf.D / security“ soubor, takže se ujistěte, že jste ochotni přijmout poštu, pokud upravíte toto nastavení.
Pokud bychom to používali jako šablonu pro jiné definice virtuálních hostitelů, chtěli bychom přidat definici „název serveru“, která určuje název domény nebo IP adresu, kterou by tento požadavek měl zpracovat. Toto je možnost, která by virtuálnímu hostiteli přidala specifičnost a umožnila mu trumfnout výchozí definici, pokud odpovídá hodnotě názvu serveru.,
virtuální hostitel můžete také použít na více než jedno jméno pomocí definice „ServerAlias“. To poskytuje alternativní cesty, jak se dostat ke stejnému obsahu. Dobrým případem pro toto je přidání stejné domény, předcházející „www“.
volba „DocumentRoot“ určuje, kde bude umístěn obsah, který je požadován pro tento virtuální hostitel. Výchozí virtuální hostitel je nastaven tak, aby sloužil obsahu z adresáře „/var/www“ v Ubuntu.,
definice adresářů
v rámci definice virtuálního hostitele Existují definice toho, jak server zpracovává různé adresáře v systému souborů. Apache použije všechny tyto směry v pořadí od nejkratšího po nejdelší, takže je opět možnost přepsat předchozí možnosti.
definice prvního adresáře platí pravidla pro adresář “ / “ nebo kořenový adresář. To poskytne základní konfiguraci vašeho virtuálního hostitele, protože se vztahuje na všechny soubory podávané 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. Můžete upravit to takhle:
<Directory />Options FollowSymLinksAllowOverride NoneOrder Deny,AllowDeny from All</Directory>
Tento bude odepřít přístup ke všem obsahu pokud není uvedeno jinak v následujících definice adresáře.
další definice adresáře je pro kořen dokumentu, takže určuje možnost „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 obsahu., To není ve výchozím nastavení povoleno, ale může být užitečné povolit za různých okolností.
příkazy Alias A ScriptAlias
definice adresářů jsou někdy předcházeny příkazy“ Alias „nebo“ ScriptAlias“. Alias mapuje cestu url k adresářové cestě.
ScriptAlias funguje stejným způsobem, ale používá se k definování adresářů, které budou mít v nich spustitelné komponenty.
Alias /content/ /path/to/content/
po aliasu byste měli pamatovat na definování adresáře s přístupovými právy, jak je popsáno v předchozí části.,
povolení webů a modulů v Apache
jakmile máte virtuální hostitelský soubor, který splňuje vaše požadavky, můžete použít nástroje obsažené v Apache k jejich přechodu na živé weby.,
Chcete-li automaticky vytvořit symbolický odkaz na „sites-enabled“ adresáře do existujícího souboru v „sites-available“ directory, zadejte následující příkaz:
sudo a2ensite virtual_host_file_name
Po zapnutí web, spusťte následující příkaz, abyste říct, Apache, aby re-číst jeho konfigurační soubory, což umožňuje změnu propagovat:
sudo service apache2 reload
Tam je také společníkem příkaz pro zakázání Virtuální Hostitele., To pracuje tím, že odstraní symbolický odkaz z „sites-enabled“ adresář:
sudo a2dissite virtual_host_file_name
Znovu načíst konfiguraci, aby se změna stane:
sudo service apache2 reload
Moduly mohou být povoleno nebo zakázáno pomocí „a2enmod“ a „a2dismod“ příkazy v tomto pořadí. Pracují stejným způsobem jako verze těchto příkazů“ site“.
nezapomeňte znovu načíst změny konfigurace po aktivaci nebo deaktivaci modulů.
závěr
prošli jsme některé základní konfigurační soubory 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 mít dobré znalosti o tom, k čemu se používají hlavní konfigurační soubory a jak vzájemně spolupracují. Pokud potřebujete vědět o konkrétních možnostech konfigurace, poskytnuté soubory jsou dobře komentovány a Apache poskytuje vynikající dokumentaci.
doufejme, že konfigurační soubory nebudou tak zastrašující a budete se cítit pohodlněji experimentovat a upravovat tak, aby vyhovovaly vašim potřebám.