26.3. Konfigurace webového serveru

Pokud potřebujete zvláštní nastavení, proveďte je po instalaci Apache. V naprosté většině případů můžete Apache používat, jak je. Apache lze nastavit pomocí YaST a SuSEconfig nebo přímou editací souboru /etc/apache2/httpd.conf.

26.3.1. Konfigurace webového serveru pomocí YaST

Apache snadno nastavíte pomocí programu YaST. Nastavení vyžaduje alespoň základní znalosti o nastavení webového serveru. Po výběru Síťové služby+HTTP server vás může YaST před samotným nastavením webového serveru požádat o doinstalování potřebných balíčků. Po úspěšné instalaci se zobrazí konfigurační dialog.

Nejdřív povolte spuštění serveru zatrhnutím položky Povoleno. Zaškrtnutím Na zvolených portech otevřít firewall otevřete potřebné porty. Ve spodní části okna (Nastavení/Shrnutí) lze nastavit vlastnosti HTTP serveru: Naslouchat na (výchozí je port 80), Moduly, Výchozí server a Servery. Zvolenou položku změníte kliknutím na tlačítko Upravit.

Nejdřív překontrolujte nastavení položky Výchozí server a případně ji přizpůsobte svému serveru. Pak aktivujte potřebné moduly v položce Moduly. Dostupné jsou také další dialogy umožňující detailnější nastavení např. vytváření virtuálních serverů.

26.3.2. Ruční konfigurace webového serveru

Ruční konfigurace webového serveru představuje editaci textových souborů jako uživatel root.

26.3.2.1. Konfigurační soubory

Konfigurační soubory Apache najdete na dvou místech:

  • /etc/sysconfig/apache2

  • /etc/apache2/

26.3.2.1.1. /etc/sysconfig/apache2

Soubor /etc/sysconfig/apache2 obsahuje některá obecná nastavení webového serveru Apache jako zavádění modulů, přidávání souborů do konfigurace a příznaky pro spuštění serveru. Všechny volby jsou v souboru komentované. Přednastavené hodnoty jsou obvykle vhodné pro většinu běžných konfigurací.

[Important]SuSEconfig modul Apache

SuSEconfig modul Apache byl ze systému SUSE Linux odstraněn. Spuštění skriptu SuSEconfig po ručné změně /etc/sysconfig/apache2 již není nutné.

26.3.2.1.2. /etc/apache2/

Adresář /etc/apache2/ obsahuje všechny konfigurační soubory Apache. V následujícím příkladu najdete popis jejich účelu. Každý soubor obsahuje konfigurační volby (nebo-li příkazy). Všechny příkazy jsou komentovány a proto je zde nebudeme zvlášť rozebírat.

Konfigirační soubory Apache jsou organizovány následujícím způsobem:

        /etc/apache2/
        |
        |- charset.conv 
        |- conf.d/
        |   |
        |   |- *.conf
        |
        |- default-server.conf
        |- errors.conf
        |- httpd.conf
        |- listen.conf
        |- magic
        |- mime.types
        |- mod_*.conf
        |- server-tuning.conf
        |- ssl-global.conf
        |- ssl.*
        |- sysconfig.d
        |   |
        |   |- global.conf
        |   |- include.conf
        |   |- loadmodule.conf . .
        |
        |- uid.conf
        |- vhosts.d
        |   |- *.conf
      

Konfigurační soubory Apache v /etc/apache2/

charset.conv

nastavení znakových sad pro jednotlivé jazyky. Needitujte.

conf.d/*.conf

Konfigurační soubory vložené externími moduly. Tyto soubory lze začlenit do konfigurace virtuálního serveru. Příklad najdete v vhosts.d/vhost.template. Tímto způsobem můžete použít různé moduly pro různé virtuální servery.

default-server.conf

Obecná konfigurace virtuálních serverů. Místo změn hodnot voleb je přepíšete konfigurací virtuálního serveru.

errors.conf

Způsob odpovědi serveru Apache na chyby. Pokud chcete přizpůsobit chybová hlášení pro všechny virtuální servery, upravte zde obsažené soubory. Tato nastavení jsou přepsána nastavením jednotlivých virtuálních serverů.

httpd.conf

Hlavní konfigurační soubor serveru Apache. Zde můžete obecná nastavení Apache. Nastavení pro jednotlivé visrtuální servery proveďte v konfiguraci jednotlivých virtuálních serverů.

listen.conf

Nastavení spojení IP adres a portů pro server. Také zde najdete nastavení virtuálních serverů založených na jméně (viz 26.3.2.2.1 – „Virtuální server založený na jménu“).

magic

Data pro mime_magic modul, který umožňuje server Apache automaticky zjistit MIME typneznámých souborů. Neměňte.

mime.types

Seznam známých MIME typů (odkaz na /etc/mime.types). Neměňte. Pokud potřebujete přidat nový MIME typ, vložte jej do souboru mod_mime-defaults.conf.

mod_*.conf

Konfigurační soubory pro výchozí moduly. Více informací o modulech najdete v části 26.6 – „Moduly Apache“. Konfigurace dodatečně dotaných souborů se nachází v adresáři conf.d.

server-tuning.conf

Konfigurace pro různé MPM a volby ovlivňující výkon Apache. Pokud zde provedete změny, nezapomeňte server řádně otestovat.

ssl-global.conf and ssl.*

Obecné nastavení SSL a data SSL certifikátu.

sysconfig.d/*.conf

Konfigurační soubory automaticky generované z /etc/sysconfig/apache2. Neměňte. Nevkládejte nové soubory. Pokud potřebujete změnit nastavení, změňte přímo /etc/sysconfig/apache2.

uid.conf

Nastavení ID uživatele a skupiny Apache. Neměňte.

vhosts.d/*.conf

Konfigurace virtuálních serverů. Adresář obsahuje šablonu pro virtuální server bez podpory SSL. Každý zde obsažený .conf soubor je automaticky připojen do nastavení serveru Apache. Podrobnosti o virtuálních serverech najdete v části 26.3.2.2 – „Virtuální servery“.

26.3.2.2. Virtuální servery

Virtuální servery umožňují hostovat na jednom počítači více domén. Je to spolehlivý a ověřený způsob, jak ušetřit náklady na administraci zvláštního serveru pro každou doménu. Apache nabízí hned několik možností, jak virtuální servery nastavit:

  • Virtuální server založený na jménu.

  • Virtuální server založený na IP.

  • Vícenásobné instance Apache na jednom počítači.

26.3.2.2.1. Virtuální server založený na jménu

Virtuální server založený na jménu hostuje na jedné instanci Apache několik domén. Není nutné nastavovat žádné další IP adresy. Jedná se o nejjednodušší a nejčastěji používanou možnost. Důvody proti této konfiguraci najdete v dokumentaci Apache.

Konfigurace se provádí pomocí programu YaST nebo přímo v konfiguračním souboru /etc/apache2/httpd.conf. Abyste aktivovali virtuální server založený na jménu, musíte zadat NameVirtualHost *. Nastavení * způsobí, že bude Apache přijímat všechny příchozí požadavky. Pak nastavte jednotlivé servery:


          <VirtualHost *>
          ServerName www.example.com
          DocumentRoot /srv/www/htdocs/example.com
          ServerAdmin webmaster@example.com
          ErrorLog /var/log/apache2/www.example.com-error_log
          CustomLog /var/log/apache2/www.example.com-access_log common
          </VirtualHost>
        

          <VirtualHost *>
          ServerName www.myothercompany.com
          DocumentRoot /srv/www/htdocs/myothercompany.com
          ServerAdmin webmaster@myothercompany.com
          ErrorLog /var/log/apache2/www.myothercompany.com-error_log
          CustomLog /var/log/apache2/www.myothercompany.com-access_log common
          </VirtualHost>
        

VirtualHost musí být nastaven i pro originální doménu serveru (www.example.com). Originální doména i dodatečná doména (www.myothercompany.com) jsou v našem příkladě hostovány na stejném serveru.

Stejně jako v NameVirtualHost je v direktivách VirtualHost použita *. Apache používá pole "host" v HTTP hlavičce pro spojení požadavků s virtuálním serverem. Požadavek je doručen tomu virtuálnímu serveru, jehož nastavení v ServerName odpovídá údaji v HTTP hlavičce.

Pro direktivy ErrorLog a CustomLog nemusí záznamy obsahovat jméno domény. Použijte jméno podle vlastní volby.

Serveradmin obsahuje e-mailovou adresu osoby, která má být kontaktována v případě problémů. Apache tuto adresu předává klientům v případě potíží.

26.3.2.2.2. Virtuální server založený na IP

Alternativou serveru založeného na jménu je nastavení více IP adres pro jeden jediný počítač. V takovém případě jediná instance Apache hostuje více domén s různými IP adresami. V následujícím příkladu si ukážeme konfiguraci Apache používajícího vlastní IP adresu (192.168.1.10) plus další dvě dodatečné IP adresy (192.168.1.20 a 192.168.1.21). Tento konkrétní příklad funguje pouze na intranetu, protože se jedná o privátní adresy, které nejsou na Internetu směrovány.

Aby Apache mohl pracovat s více IP, musí počítač přijímat požadavky na více IP. Tomu se říká multi-IP hosting. Tato funkce vyžaduje podporu IP aliasingu v jádře. Tato podpora je v SUSE Linuxu výchozí.

Pokud je v jádře povolen IP aliasing, lze pomocí příkazů ifconfig a route nastavovat další IP adresy počítače. Tyto příkazy musí vykonávat uživatel root. V následujícím příkladě budeme předpokládat, že počítač již má vlastní IP adresu (např. 192.168.1.10), která je přiřazena zařízení eth0.

Příkazem ifconfig bez parametrů zjistíte IP adresu počítače. Další IP nastavíte příkazem:

ip addr add 192.168.1.20/24 dev eth0

Všechny IP adresy používají stejné síťové fyzické zařízení (eth0).

26.3.2.2.3. Virtuální počítače s IP

Jakmile je na počítači nastaveno IP aliasování nebo má počítač více síťových karet, můžete nastavit virtuální servery Apache. Pro každý virtuální server musíte vložit vlastní blok VirtualHost:


            <VirtualHost 192.168.1.20>
            ServerName www.myothercompany.com
            DocumentRoot /srv/www/htdocs/myothercompany.com
            ServerAdmin webmaster@myothercompany.com
            ErrorLog /var/log/apache2/www.myothercompany.com-error_log
            CustomLog /var/log/apache2/www.myothercompany.com-access_log common
            </VirtualHost>
            
            <VirtualHost 192.168.1.21>
            ServerName www.anothercompany.com
            DocumentRoot /srv/www/htdocs/anothercompany.com
            ServerAdmin webmaster@anothercompany.com
            ErrorLog /var/log/apache2/www.anothercompany.com-error_log
            CustomLog /var/log/apache2/www.anothercompany.com-access_log common
            </VirtualHost>
          

Proměnná VirtualHost se používá pouze pro dodatečné domény. Výchozí doména (www.example.com) je nastavena zvlášť v DocumentRoot mimo bloky VirtualHost.