Výukové programy Apache pro začátečníky

Obsah

Co je Apache?

Apache je pozoruhodný kus aplikačního softwaru. Je to nejpoužívanější aplikace webového serveru na světě s více než 50% podílem na trhu komerčních webových serverů. Apache je nejrozšířenější aplikace webového serveru v operačních systémech typu Unix, ale lze jej použít téměř na všech platformách, jako jsou Windows, OS X, OS / 2 atd. Slovo Apache bylo převzato z názvu nativního Americký kmen „Apache“, známý svými dovednostmi ve válčení a vytváření strategií.

Jedná se o modulární procesově orientovanou aplikaci webového serveru, která vytváří nové vlákno při každém současném připojení. Podporuje řadu funkcí; mnoho z nich je kompilováno jako samostatné moduly a rozšiřuje jeho základní funkčnost a může poskytovat vše od podpory programovacího jazyka na straně serveru až po mechanismus autentizace. Virtuální hosting je jednou z takových funkcí, která umožňuje jedinému webovému serveru Apache obsluhovat řadu různých webových stránek.

Jak nainstalovat Apache

Existuje mnoho způsobů instalace balíčku nebo aplikace. Níže jsou zařazeni -

  1. Jednou z funkcí této webové aplikace s otevřeným zdrojovým kódem je, že si instalační program může vytvořit kdokoli podle vlastního prostředí. To umožnilo různým prodejcům, jako je Debian, Red Hat, FreeBSD, Suse atd., Přizpůsobit umístění souboru a konfiguraci apache s ohledem na ostatní nainstalované aplikace a základní OS.
  2. Kromě instalace z instalačního programu založeného na dodavateli existuje vždy možnost sestavení a instalace ze zdrojového kódu. Instalace Apache ze zdrojového souboru je nezávislá na platformě a funguje pro všechny operační systémy.

Webový server apache je modulární aplikace, kde si správce může vybrat požadovanou funkčnost a instalovat různé moduly podle svých požadavků.

Všechny moduly lze kompilovat jako dynamické sdílené objekty (DSO je soubor objektů, který může být sdílen více aplikacemi během jejich provádění), který existuje odděleně od hlavního souboru apache. Přístup DSO se velmi doporučuje, díky němuž je přidání / odebrání / aktualizace modulů z konfigurace serverů velmi jednoduché.

Nainstalujte Apache: Linux Platform

V systémech založených na Red Hat nebo rpm

Pokud používáte rpm (RedHat Package Manager je nástroj pro instalaci aplikace na systémech Linux) založená na linuxové distribuci, tj. Red Hat, Fedora, CentOs, Suse, můžete tuto aplikaci nainstalovat buď pomocí správce balíčků konkrétního dodavatele nebo přímo vytvořením souboru rpm z dostupného zdroje tarball.

Apache můžete nainstalovat pomocí výchozího správce balíčků, který je k dispozici ve všech distribucích založených na Red Hat, jako jsou CentOs, Red Hat a Fedora.

[root @ amsterdam ~] # yum install httpd

Zdrojový tarball apache lze převést na soubor rpm pomocí následujícího příkazu.

[root @ amsterdam ~] # rpmbuild -tb httpd-2.4.x.tar.bz2

Pro vytvoření souboru .rpm ze zdroje je nutné mít na serveru nainstalovaný balíček -devel.

Jakmile převedete zdrojový soubor na instalační program rpm, můžete použít následující příkaz k instalaci Apache.

[root @ amsterdam ~] # rpm -ivh httpd-2.4.4-3.1.x86_64.rpm

Po instalaci se server nespustí automaticky. Chcete-li spustit službu, musíte použít některý z následujících příkazů na Fedoře, CentOs nebo Red Hat.

[root @ amsterdam ~] # / usr / sbin / apachectl start[root @ amsterdam ~] # spuštění služby httpd[root @ amsterdam ~] # /etc/init.d/httpd start

Nainstalujte Apache ze zdroje

Instalace apache ze zdroje vyžaduje, aby byl na server nainstalován balíček -devel ... Nejnovější dostupnou verzi Apache najdete zde. Po stažení zdrojového souboru jej přesuňte do složky / usr / local / src.

[root @ amserversterdam ~] cd / usr / local / src[root @ amserversterdam ~] gzip -d httpd-2.2.26.tar.gz[root @ amserversterdam ~] tar xvf httpd-2.2.26.tar[root @ amserversterdam ~] httpd-2.2.26

Chcete-li zobrazit všechny možnosti konfigurace dostupné pro Apache, můžete použít volbu ./configure -help. Nejběžnější možností konfigurace je -prefix = {název instalačního adresáře}.

[root @ amserversterdam ~] ./ configure --help[root @ amserversterdam ~] ./ configure -prefix = / usr / local / apache -enable-so[root @ amserversterdam ~] make[root @ amserversterdam ~] provést instalaci

Výše uvedený příklad ukazuje kompilaci Apache v adresáři / usr / local / apache s funkcí DSO. Možnost -enable-so, může načíst požadované moduly na apache za běhu pomocí mechanismu DSO, místo aby vyžadovala rekompilaci.

Po dokončení instalace můžete procházet výchozí stránku webových serverů pomocí svého oblíbeného prohlížeče. Pokud je na vašem serveru povolena brána firewall, musíte na brány firewall operačního systému udělat výjimku pro port 80. K otevření portu 80 můžete použít následující příkaz.

iptables -I VSTUP -p tcp --dport 80 -j PŘIJMOUT

služba iptables uložit

Výchozí uvítací obrazovku Apache2 můžete zobrazit procházením adresy IP vašeho serveru.

Co je to virtuální hostitel?

Webový server Apache může hostovat více webů na stejném serveru. Pro každou webovou stránku nepotřebujete samostatný serverový software a software Apache. Toho lze dosáhnout pomocí konceptu Virtual Host nebo VHost.

Každá doména, kterou chcete hostovat na svém webovém serveru, bude mít v konfiguračním souboru apache samostatnou položku.

Druhy Apache Virtualhost

  1. Název založený na virtuálním hostiteli
  2. Virtuální hostitel založený na adresách nebo IP a.

Název založený na virtuálním hostiteli

Název založený na virtuálním hostingu se používá k hostování více virtuálních webů na jedné IP adrese.

Chcete-li nakonfigurovat virtuální hostování založené na jménech, musíte nastavit adresu IP, na kterou budete přijímat požadavky Apache pro všechny požadované webové stránky. Můžete to udělat direktivou NameVirutalHost v rámci konfigurace apache, tj. Souboru httpd.conf / apache2.conf.

Příklad virtuálního hostitele Apache:

NázevVirtualHost *: 80ServerAdmin Tato e-mailová adresa je chráněna před spamboty. Abyste ji mohli zobrazit, musíte mít povolený JavaScript.DocumentRoot /var/www/html/example1.comNázev serveru www.example1.comServerAdmin Tato e-mailová adresa je chráněna před spamboty. Abyste ji mohli zobrazit, musíte mít povolený JavaScript. DocumentRoot /var/www/html/example2.com ServerName www.example2.com 

Podle vašeho požadavku můžete přidat tolik virtuálních hostitelů. Konfigurační soubory webu můžete zkontrolovat pomocí:

[root @ amsterdam ~] #httpd -tSyntaxe v pořádku

Pokud má konfigurační soubor nějakou nesprávnou syntaxi, vyvolá chybu

[root @ 115 conf.d] # httpd -tChyba syntaxe na řádku 978 /etc/httpd/conf/httpd.conf:Neplatný příkaz '*', pravděpodobně chybně napsaný nebo definovaný modulem, který není součástí konfigurace serveru

Virtuální hostitel založený na IP

Chcete-li nastavit virtuální hosting založený na IP, potřebujete na svém serveru nakonfigurovanou více než jednu IP adresu. Počet vhost apache tedy bude záviset na počtu IP adres nakonfigurovaných na vašem serveru. Pokud má váš server 10 IP adres, můžete vytvořit 10 virtuálních hostitelů založených na IP.

Ve výše uvedeném diagramu byly dvěma webům example1.com a example2.com přiřazeny různé adresy IP a používají virtuální hosting založený na protokolu IP.

Poslouchejte 192.168.0.100:80ServerAdmin Tato e-mailová adresa je chráněna před spamboty. Abyste ji mohli zobrazit, musíte mít povolený JavaScript.DocumentRoot /var/www/html/example1.comNázev serveru www.example1.comServerAdmin Tato e-mailová adresa je chráněna před spamboty. Abyste ji mohli zobrazit, musíte mít povolený JavaScript. DocumentRoot /var/www/html/example2.com ServerName www.example2.com 

Co Apache potřebuje ke spuštění souboru PHP?

Spuštění souborů Php na Apache vyžaduje na vašem serveru povolený mod_php . Umožňuje Apache interpretovat soubory .Php. Má obslužné rutiny Php, které interpretují kód Php v apache a odesílají HTML na váš webový server.

Pokud je na vašem serveru povolen mod_php, budete mít v adresáři /etc/httpd/conf.d/ soubor s názvem php.conf. Můžete to také zkontrolovat pomocí:

httpd -M | grep "php5_module"

Výstup bude podobný:

Obslužné rutiny PHP v Apache

  • mod_php
  • CGI
  • FastCGI
  • suPHP

mod_php je nejstarší obslužný program PHP, dělá z PHP součást apache a nevyvolává žádný externí proces PHP. Tento modul je ve výchozím nastavení nainstalován do každého distribučního úložiště Linux, takže povolení / zakázání tohoto modulu je velmi snadné.

Pokud používáte FastCGI jako obslužný program PHP, můžete nastavit více verzí PHP, které budou používat různé účty na vašem serveru.

FastCGI tj. Mod_fastcgi je rozšíření mod_fcgid , kde jako mod_fcgid je vysoce výkonnou alternativou CGI tj. Mod_cgi. Spustí dostatečný počet instancí CGI pro zpracování souběžných webových požadavků. Používá také suexec k podpoře různých uživatelů s jejich vlastními instancemi PHP a zlepšuje zabezpečení webu.

Spuštění rubínových souborů na Apache vyžaduje povolení mod_ruby. Apache může také zpracovávat rubínové soubory prostřednictvím FastCGI. Je možné použít více verzí ruby ​​pomocí mod_fcgid tj. FastCGI.

Můžete také nainstalovat apache spolujezdce a nakonfigurovat Apache tak, aby jej používal pro poskytování rubínových stránek.

(Phusion Passenger také známý jako „ passenger “ je bezplatný modul webového serveru, který je navržen pro integraci s Apache a Nginx)

Kroky k instalaci mod_ruby na váš server -

cd / tmpwget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gztar zxvf mod_ruby-1.2.6.tar.gzcd mod_ruby-1.2.6 /./configure.rb --with-apr-includes = / usr / include / apr-1udělatprovést instalaci

Jak spustit Ruby s Apache

Musíme přidat modul mod_ruby do konfigurace Apache, tj. /Etc/httpd/conf.d/ruby.conf a přidat následující řádek.

LoadModule ruby_module modules / mod_ruby.so

Pokud chcete tyto moduly povolit nebo zakázat, musíte upravit konfigurační soubor apache a tyto moduly komentovat nebo odkomentovat, pokud je webový server již s těmito moduly kompilován.

Jak zabezpečit webový server Apache

Zabezpečení vašeho webového serveru je velmi důležité, to znamená umožnit ostatním vidět pouze zamýšlené informace a chránit vaše data a omezovat přístup.

Toto jsou běžné věci, které zvyšují bezpečnost vašich webových serverů Apache.

1) Skrytí informací o verzi Apache a OS:

Apache zobrazuje svou verzi a název operačního systému chybně, jak je znázorněno na následujícím snímku obrazovky.

Hacker může tyto informace použít k zahájení útoku pomocí veřejně dostupných chyb zabezpečení v konkrétní verzi serveru nebo operačního systému.

Abychom zabránili zobrazování těchto informací webovým serverem Apache, musíme je upravit

Možnost „podpis serveru“ dostupná v konfiguračním souboru apache. Ve výchozím nastavení je „zapnuto“, musíme jej nastavit na „vypnuto“.

vim /etc/httpd/conf/httpd.conf
Podpis serveru je vypnutýServerTokens Prod

Také jsme nastavili „ServerTokens Prod“, který říká webovému serveru, aby vrátil pouze apache a potlačil hlavní a vedlejší verzi operačního systému

Po úpravě konfiguračního souboru musíte svůj webový server Apache restartovat / znovu načíst, aby byl efektivní.

restart služby httpd

2) Zakažte výpis adresářů

Pokud váš kořenový adresář dokumentu nemá indexový soubor, ve výchozím nastavení váš webový server Apache zobrazí veškerý obsah kořenového adresáře dokumentu.

Tuto funkci lze vypnout pro konkrétní adresář pomocí „direktivy možností“ dostupné v konfiguračním souboru Apache.

Možnosti - Indexy

3) Zakázání nepotřebných modulů

Osvědčeným postupem je deaktivovat všechny nepotřebné moduly, které se nepoužívají. Seznam povolených modulů dostupných v konfiguračním souboru apache -

[root @ amsterdam ~] #httpd -Mperl_module (sdílené)php5_module (sdílené)proxy_ajp_module (sdílené)python_module (sdílené)ssl_module (sdílené)

Mnoho z uvedených modulů lze deaktivovat likemod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, protože je těžko používají jakékoli produkční webové servery.

vi /etc/httpd/conf/httpd.conf#LoadModule auth_digest_module modules / mod_auth_digest.so

Jakmile okomentujete modul, uložte soubor.

Restartujte služby apache pomocí následujícího příkazu.

/etc/init.d/httpd restart

4) Omezení přístupu k souborům mimo kořenový adresář webu

Pokud se chcete ujistit, že soubory, které jsou mimo kořenový adresář webu, nejsou přístupné, musíte se ujistit, že je adresář omezen pomocí „Povolit“ a „Odmítnout“ v konfiguračním souboru webového serveru.

Možnosti ŽádnéAllowOverride ŽádnýObjednávka zamítnuta, povolenaOdepřít všem

Jakmile omezíte přístup mimo webový kořenový adresář, nebudete mít přístup k žádnému souboru umístěnému v jiné složce na vašem webovém serveru, dostanete 404 návratový kód.

5) Použití mod_evasive k vyvrácení útoku DoS

Pokud chcete chránit svůj webový server před Dos (tj. Odmítnutím služby), musíte povolit modul mod_evasive. Jedná se o modul třetí strany, který detekuje útok Dos a brání tomu, aby útok způsobil tolik škody, jaké by způsobil, pokud by byl ponechán jeho běhu. Lze jej stáhnout zde.

Stáhněte si výše uvedený soubor

6) Použití mod_security ke zvýšení zabezpečení apache

Tento modul funguje jako firewall pro Apache a umožňuje vám sledovat provoz v reálném čase. Rovněž zabrání webovým serverům před útoky hrubou silou. Modul mod_security lze nainstalovat pomocí výchozího správce balíčků vaší distribuce.

7) Omezení velikosti požadavku

Apache nemá žádná omezení na celkovou velikost požadavku http, která by mohla vést k útoku DoS. Velikost požadavku direktivy Apache „LimitRequestBody“ můžete omezit pomocí tagu adresáře. Hodnotu lze podle vašeho požadavku nastavit na cokoli od 0 do 2 GB (tj. 2147483647 bajtů).

LimitRequestBody 512000

Formát protokolu Apache

Protokoly Apache poskytují podrobné informace, které pomáhají detekovat běžné problémy se serverem.

Aby bylo možné vytvořit protokoly přístupu, musí být povolen mod_log_configmodule.

Tři směrnice dostupné v konfiguračním souboru apache, tj

  • TransferLog: Vytvoření souboru protokolu.
  • LogFormat: Určení vlastního formátu.
  • CustomLog: Vytvoření a formátování souboru protokolu.

Direktiva TransferLog je k dispozici v konfiguračním souboru apache a rotuje soubory protokolu virtuálního hostitele podle nastavených parametrů.

ServerAdmin Tato e-mailová adresa je chráněna před spamboty. Abyste ji mohli zobrazit, musíte mít povolený JavaScript.DocumentRoot / usr / www / example / httpd / htdocs /Název serveru www.example.comServerAlias ​​example.com www.exampleErrorLog / usr / www / example / httpd / logs / error_logTransferLog / usr / www / example / httpd / logs / accesslogCustomLog / usr / www / example / httpd / logs / accesslog dohromady

Dva typy formátu protokolu Apache

  • Společný formát protokolu
  • Kombinovaný formát protokolu.

Můžete je povolit úpravou konfiguračního souboru apache, tj. Souboru apache2.conf (Debian / ubuntu) nebo httpd.conf (systémy založené na rpm)

Společný formát protokolu

LogFormat "% h% l% u% t \"% r \ "%> s% b" společnýCustomLog logs / access_log common

Společný protokol generovaný Apache

[St 11. října 14:32:52 2000] [chyba] [klient 127.0.0.1] klient odepřen konfigurací serveru: / export / home / live / ap / htdocs / test

Kombinovaný formát protokolu

LogFormat "% h% l% u% t \"% r \ "%> s% b \"% {Referer} i \ "\"% {User-agent} i \ "" dohromadyKombinovaný protokol CustomLog / access_log

Tady,

  • % h je vzdálený hostitel
  • % l je identita uživatele určená identd
  • % u je uživatelské jméno určené ověřováním HTTP
  • % t je čas, kdy server dokončil zpracování požadavku.
  • % r je řádek požadavku od klienta. („GET / HTTP / 1.0“)
  • %> s je stavový kód odeslaný ze serveru klientovi (500, 404 atd.)
  • % b je velikost odpovědi klientovi (v bajtech)
  • Referer je stránka, která odkazovala na tuto adresu URL.
  • User-agent je identifikační řetězec prohlížeče.

Kombinovaný protokol generovaný Apache:

199.187.122.91 - - [06 / Mar / 2014: 04: 22: 58 +0100] „GET /robots.txt HTTP / 1.1" 404 1228 "-" "Mozilla / 4.0 (kompatibilní; MSIE 6.0; Windows NT 5.1; SV1 ; .NET CLR 2.0.50727) ""

Vlastní protokol vytvoří samostatný soubor protokolu pro každého virtuálního hostitele na vašem serveru. Je třeba jej zadat v části virtuálního hostitele konfiguračního souboru.

Níže vidíte konfiguraci virtuálního hostitele, vygenerovaný protokol bude pro tohoto virtuálního hostitele vlastní a formát bude kombinován.

Nakonfigurujte si svůj úplně první produkční web Sever

1. Abyste mohli mít spuštěný produkční webový server, potřebujete vyhrazený uzel (fyzická / virtuální nebo cloudová instance) se systémem Linux / Unix, Windows, MacOS atd.

2. Webový server musí mít přímé síťové připojení a nakonfigurovanou statickou adresu IP .

3. Musí mít všechny moduly potřebné pro běh webových stránek. Pokud webový server zpracovává stránky PHP, musí mít povolený modul PHP.

  1. Musí také mít nakonfigurovanou a spuštěnou dobrou antivirovou aplikaci pro zabezpečení webového serveru před malwarovými nebo virovými útoky. Potřebujete také mechanismus k pravidelné aktualizaci nakonfigurované antivirové / antimalwarové aplikace bez jakéhokoli ručního zásahu, abyste z nich měli maximální užitek.
  2. Pokud máte na svém webovém serveru stovky domén, které musíte hostovat, musíte zavést omezení kvót systému souborů pro každou doménu, počet databází, které může každá doména vytvořit, počet e-mailových účtů na doménu atd.
  3. Pokud byl váš webový server nastaven na sdílené hostingové služby, musí být uživatelé na vašem webovém serveru omezeni . Uživatel sdíleného hostingu by měl mít nejmenší oprávnění uživatele, aby nepoškodil důležité soubory a nerozbil celý server. Apache neposkytuje žádné takové funkce a k dosažení tohoto cíle potřebuje různé aplikace třetích stran, přizpůsobení OS.
  4. Pokud na svůj webový server přidáváte novou doménu , je třeba upravit stovky konfiguračních souborů, aby bylo možné pro přidanou doménu povolit všechny funkce.
  5. Pokud jedna z hostovaných domén vyžaduje jiné nastavení PHP než ostatní domény, je implementace v jádru webového serveru Apache velmi složitá a vyžaduje do značné míry přizpůsobení vašeho webového serveru.
  6. Produkční webový server potřebuje bránu firewall, aby blokoval nežádoucí provoz, který by mohl způsobit vysoké zatížení vašeho serveru. Implementace pravidel IPTABLE pomocí příkazového řádku je velmi složitá. K psaní účinných pravidel brány firewall pro blokování nežádoucího provozu potřebuje znalosti jádra prostředí Linux / Unix. IPTABLE je založen na modulu netfilter; jedná se o bránu firewall na úrovni OS, která umožňuje správci vytvářet pravidla pro příchozí / odchozí provoz na serveru.
  7. Produkční webový server vyžaduje několik různých aplikací, jako je e-mail , FTP pro nahrávání souborů, systém doménových jmen pro zaparkované domény. Správa všech těchto aplikací na základním systému Linux / Unix vyžaduje odborné znalosti příslušných technologií.

Lze tedy říci, že správa webového serveru pro více domén je velmi složitý úkol a vyžaduje úpravy stovek konfiguračních souborů a přizpůsobení každé aplikace tak, aby splňovalo požadovaný výsledek. Odstraňování problémů s konfigurací slečny bude pro začátečníky velmi obtížné.

Řešení využívající Cpanel nebo podobný software

Cpanel poskytuje grafický způsob správy vašeho webového serveru . Je určen k poskytování hromadných hostingových služeb, které se snadno používají a konfigurují. cPanel snížil technické překážky vstupu do správy hostingu a webového serveru. Usnadňuje složitý úkol, poskytuje mnoho užitečných a snadno použitelných webových rozhraní, která provádějí běžné úkoly správy systému vyžadované pro provoz webového serveru.

cPanel sestavuje vlastní verzi softwaru.

Pokud musíte překompilovat svůj webový server, tj. Apache na normální platformě Linux, musíte ručně vybrat / prohledat požadovaný modul. cPanel poskytuje funkce Easyapache, což je metoda kompilace webového serveru založená na skriptu.

Poskytuje nejen webové služby, ale také poštu, DNS, FTP a mnoho dalších služeb požadovaných pro vaši webovou aplikaci.

Úkol, který vyžaduje odborné znalosti na základním hostování založeném na systému Linux / Unix, jako je instalace SSL, překompilování Apache s různými moduly PHP, aktualizace zabezpečení webu, konfigurace účinných pravidel IPTABLE, přidávání uživatelů ftp, vytváření poštovních účtů pro každou doménu, skenování kořenového adresáře dokumentu pomocí antiviru a vytváření databází je snadné pomocí cPanel.

Poskytuje mnoho skriptů, které opravují, instalují a řeší běžné administrativní úkoly.

Poskytuje funkce zálohování a obnovení, což eliminuje potřebu ručního kopírování souborů do záložního úložiště. Pokud zálohujete svou doménu, cPanel vytvoří soubor tar, který bude obsahovat kořenovou složku dokumentu, e-mailové účty a e-maily, účty ftp, databáze, záznamy DNS a další aplikace.

Poskytuje také robustní dokumentaci a má velmi velkou komunitu uživatelů, kde můžete diskutovat a získat řešení svých problémů.

Dá se tedy říci, že cPanel je nejlepší aplikace pro správu vašeho webového serveru s požadovanými funkcemi. Poskytuje vám snadno použitelné rozhraní pro správu vaší domény a mechanismus, jak se vyhnout složitosti správy základního webového serveru.

Existuje mnoho konkurenčních produktů pro cPanel jako Plesk, ISPConfig, Ajenti, Kloxo, Open Panel, Zpanel atd.

Zajímavé články...