Apache õpetused algajatele
Mis on Apache?
Apache on tähelepanuväärne rakendustarkvara. See on maailmas enimkasutatav veebiserverirakendus, millel on enam kui 50% osakaal kommertsveebiserverite turul. Apache on Unixi-laadsetes operatsioonisüsteemides kõige laialdasemalt kasutatav veebiserveri rakendus, kuid seda saab kasutada peaaegu kõigil platvormidel, näiteks Windows, OS X, OS/2 jne. Sõna Apache on võetud põlisameeriklaste hõimu nimest Apache, mis on kuulus oma sõjapidamise ja strateegiate loomise oskuste poolest.
See on modulaarne protsessipõhine veebiserveri rakendus, mis loob iga samaaegse ühendusega uue lõime. See toetab mitmeid funktsioone; paljud neist on koostatud eraldi moodulitena ja laiendavad selle põhifunktsioone ning võivad pakkuda kõike alates serveripoolsest programmeerimiskeele toest kuni autentimismehhanismini. Virtuaalne hostimine on üks selline funktsioon, mis võimaldab ühel Apache veebiserveril teenindada mitmeid erinevaid veebisaite.
Kuidas Apache installida
Paketi või rakenduse installimiseks on mitmeid viise. Need on loetletud allpool -
- Üks selle avatud funktsioonidest lähteveebirakendus on see, et igaüks saab installija teha vastavalt oma keskkonnale. See on võimaldanud erinevatel müüjatel, nagu Debian, Red Hat, FreeBSD, Suse jne, kohandada faili asukohta ja apache konfiguratsiooni, võttes arvesse teisi installitud rakendusi ja baasOS-i.
- Peale selle installimise müüjapõhiselt installijalt, on alati võimalus see luua ja installida lähtekoodist. Apache'i installimine lähtefailist on platvormist sõltumatu ja töötab kõigi operatsioonisüsteemidega.
Apache veebiserver on modulaarne rakendus, kus administraator saab valida vajaliku funktsionaalsuse ja installida erinevaid mooduleid vastavalt oma soovile.
Kõiki mooduleid saab koostada a Dünaamilised jagatud objektid (DSO on objektifail, mida võivad käitamise ajal jagada mitmed rakendused), mis eksisteerib peamisest apache-failist eraldi. DSO lähenemine on väga soovitatav, see muudab moodulite lisamise/eemaldamise/värskendamise serveri konfiguratsioonist väga lihtsaks.
Installige Apache: Linuxi platvorm
Red Hatil või pöörete arvul põhinevatel süsteemidel
Kui kasutate rpm-põhist Linuxi distributsiooni (nt Red Hat, Fedora, CentOs, Suse) (RedHat Package Manager on utiliit rakenduste installimiseks Linuxi süsteemidesse), saate selle rakenduse installida kas müüjapõhise paketihalduri kaudu või otse rpm-faili loomisega. saadaolevast allika tarballist.
Saate installida Apache'i vaikepaketihalduri kaudu, mis on saadaval kõigis Red Hatil põhinevates distributsioonides, nagu CentOs, Red Hat ja Fedora.
[root@amsterdam ~]# yum install httpd
Apache allika tarballi saab teisendada rpm-failiks, kasutades järgmist käsku.
[root@amsterdam ~]# rpmbuild -tb httpd-2.4.x.tar.bz2
Algallikast .rpm-faili loomiseks on teie serverisse installitud pakett -devel.
Kui olete lähtefaili rpm-installeriks teisendanud, saate Apache'i installimiseks kasutada järgmist käsku.
[root@amsterdam ~]# rpm –ivh httpd-2.4.4-3.1.x86_64.rpm
Pärast installimist ei käivitu server automaatselt, teenuse käivitamiseks peate Fedoras, CentOs või Red Hatis kasutama mõnda järgmistest käskudest.
[root@amsterdam ~]# /usr/sbin/apachectl start [root@amsterdam ~]# service httpd start [root@amsterdam ~]# /etc/init.d/httpd start
Installige Apache allikast
Apache'i installimine allikast nõuab, et teie serverisse oleks installitud pakett –devel. .Leiate Apache uusima saadaoleva versiooni, saate selle alla laadida siin . Kui olete lähtefaili alla laadinud, teisaldage see kausta /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
Kõigi Apache jaoks saadaolevate konfiguratsioonivalikute nägemiseks võite kasutada suvandit ./configure –help. Kõige tavalisem konfiguratsioonivalik on –prefix={install directory name}.
[root@amserversterdam ~]./configure --help [root@amserversterdam ~]./configure –prefix=/usr/local/apache –enable-so [root@amserversterdam ~] make [root@amserversterdam ~] make install
Ülaltoodud näide näitab Apache'i kompileerimist kataloogis /usr/local/apache koos DSO-võimalusega. Valik –enable-so saab DSO mehhanismi kaudu käitamise ajal laadida nõutavad moodulid apache'i, mitte nõuda uuesti kompileerimist.
Kui installimine on lõppenud, saate oma lemmikbrauseriga sirvida veebiserveri vaikelehte. Kui tulemüür on teie serveris lubatud, peate oma OS-i tulemüüris tegema erandi pordi 80 jaoks. Port 80 avamiseks saate kasutada järgmist käsku.
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
teenuse iptables salvestada
Näete vaikeseadet Apache2 tervituskuva sirvides oma serveri IP-aadressi.
Mis on virtuaalne host?
Apache veebiserver võib majutada mitut veebisaiti SAMA server. Iga veebisaidi jaoks pole vaja eraldi serverimasinat ja apache tarkvara. Seda saab saavutada kontseptsiooni abil Virtuaalne hostija or VHost.
Igal domeenil, mida soovite oma veebiserveris majutada, on apache konfiguratsioonifailis eraldi kirje.
Apache Virtualhosti tüübid
- Nimepõhine virtuaalne host
- Aadressipõhine või IP-põhine virtuaalne host ja.
Nimepõhine virtuaalne host
Nimepõhist virtuaalset hostimist kasutatakse mitme virtuaalse saidi majutamiseks ühel IP-aadressil.
Nimepõhise virtuaalmajutuse konfigureerimiseks peate määrama IP-aadressi, millelt saate kõigi soovitud veebisaitide Apache päringuid. Seda saate teha NameVirutalHosti direktiiviga apache konfiguratsioonis, st httpd.conf/apache2.conf fail.
Apache virtuaalne host Näide:
NameVirtualHost *:80 <VirtualHost 192.168.0.108:80> ServerAdmin webmaster@example1.com DocumentRoot /var/www/html/example1.com ServerName www.example1.com </VirtualHost> <VirtualHost 192.168.0.108:80> ServerAdmin admin@example2.com DocumentRoot /var/www/html/example2.com ServerName www.example2.com </VirtualHost>
Saate lisada nii palju virtuaalseid hoste, nagu soovite. Veebi konfiguratsioonifaile saate kontrollida järgmiselt:
[root@amsterdam ~]#httpd –t Syntax OK
Kui konfiguratsioonifailil on vale süntaks, annab see veateate
[root@115 conf.d]# httpd -t Syntax error on line 978 of /etc/httpd/conf/httpd.conf: Invalid command '*', perhaps misspelled or defined by a module not included in the server configuration
IP-põhine virtuaalne host
IP-põhise virtuaalse hostimise seadistamiseks on teil vaja serveris rohkem kui ühte IP-aadressi. Seega sõltub vhost apache'i arv teie serveris konfigureeritud IP-aadresside arvust. Kui teie serveril on 10 IP-aadressi, saate luua 10 IP-põhist virtuaalset hosti.
Ülaltoodud diagrammil määrati kahele veebisaidile example1.com ja example2.com erinevad IP-d ja need kasutavad IP-põhist virtuaalset hostimist.
Listen 192.168.0.100:80 <VirtualHost 192.168.10.108:80> ServerAdmin webmaster@example1.com DocumentRoot /var/www/html/example1.com ServerName www.example1.com </VirtualHost> <VirtualHost 192.168.10.109:80> ServerAdmin admin@example2.com DocumentRoot /var/www/html/example2.com ServerName www.example2.com </VirtualHost>
Mida Apache vajab Php-faili käivitamiseks?
Php-failide käitamine Apache'is vajab mod_php teie serveris lubatud. See võimaldab Apache'il tõlgendada .php-faile. Sellel on Php-käitlejad, mis tõlgendavad apache'is sisalduvat Php-koodi ja saadavad HTML-i teie veebiserverisse.
Kui mod_php on teie serveris lubatud, on teil kataloogis /etc/httpd/conf.d/ fail nimega php.conf. Saate seda kontrollida ka:
httpd -M | grep "php5_module"
Väljund on sarnane:
Php töötlejad Apache'is
- mod_php
- CGI
- FastCGI
- suPHP
mod_phpon vanim PHP töötleja, see muudab PHP osaks apache'ist ega kutsu välja ühtegi välist PHP protsessi. See moodul on vaikimisi installitud igasse Linuxi distributsioonihoidlasse, seega on selle mooduli lubamine/keelamine väga lihtne.
Kui kasutate FastCGI PHP-käsitlejana saate määrata mitu PHP versiooni, mida kasutavad teie serveri erinevad kontod.
FastCGI st mod_fastcgi on laiendus mod_fcgid, kus as mod_fcgid on CGI st mod_cgi suure jõudlusega alternatiiv. See käivitab samaaegsete veebipäringute käsitlemiseks piisava arvu CGI eksemplare. Samuti kasutab see suexeci erinevate kasutajate toetamiseks nende enda PHP eksemplaridega ja parandab veebiturvalisust.
Ruby-failide käitamiseks Apache'is peab mod_ruby olema lubatud. Apache saab FastCGI kaudu käsitleda ka rubiinfaile. Mod_fcgid ehk FastCGI abil on võimalik kasutada mitut ruby versiooni.
Samuti saate installida apache reisija ja konfigureerida Apache'i kasutama seda rubiinlehtede teenindamiseks.
(Phusion Passenger tuntud ka kui "reisija” on tasuta veebiserveri moodul, mis on loodud integreerimiseks Apache'i ja Nginxiga)
Mod_ruby serverisse installimise sammud -
cd /tmp wget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gz tar zxvf mod_ruby-1.2.6.tar.gz cd mod_ruby-1.2.6/ ./configure.rb --with-apr-includes=/usr/include/apr-1 make make install
Kuidas Rubyt Apache'iga käivitada
Peame lisama mooduli mod_ruby Apache konfiguratsiooni, st /etc/httpd/conf.d/ruby.conf ja lisama järgmise rea.
LoadModule ruby_module modules/mod_ruby.so
Kui soovite neid mooduleid lubada või keelata, peate redigeerima apache konfiguratsioonifaili ja neid mooduleid kommenteerima või tühistama, kui veebiserver on nende moodulitega juba koostatud.
Kuidas kaitsta Apache veebiserverit
Teie veebiserveri turvalisus on väga oluline, see tähendab, et lubate teistel näha ainult ettenähtud teavet ning oma andmete kaitsmist ja juurdepääsu piiramist.
Need on tavalised asjad, mis suurendavad teie Apache veebiserverite turvalisust.
1) Apache versiooni ja OS-i teabe peitmine:
Apache kuvab oma versiooni ja operatsioonisüsteemi nime vigade korral, nagu on näidatud alloleval ekraanipildil.
Häkker saab seda teavet kasutada rünnaku käivitamiseks, kasutades avalikult kättesaadavaid haavatavusi serveri või OS-i konkreetses versioonis.
Selleks, et Apache veebiserver ei saaks seda teavet kuvada, peame seda muutma
Apache konfiguratsioonifailis on saadaval valik "serveri allkiri". Vaikimisi on see sisse lülitatud, peame selle välja lülitama.
vim /etc/httpd/conf/httpd.conf
ServerSignature Off ServerTokens Prod
Samuti oleme määranud "ServerTokens Prod", mis käsib veebiserveril tagastada ainult apache ja suruda alla OS-i põhi- ja väikeversioon
Pärast konfiguratsioonifaili muutmist peate selle tõhustamiseks taaskäivitama / uuesti laadima oma apache veebiserveri.
service httpd restart
2) Keela kataloogide loend
Kui teie dokumendi juurkataloogis ei ole indeksifaili, kuvab teie apache veebiserver vaikimisi kogu dokumendi juurkataloogi sisu.
Selle funktsiooni saab konkreetse kataloogi jaoks välja lülitada Apache konfiguratsioonifailis saadaoleva "suvandite direktiivi" kaudu.
<Directory /var/www/html> Options -Indexes </Directory>
3) Mittevajalike moodulite keelamine
Hea tava on keelata kõik mittevajalikud moodulid, mida ei kasutata. Saadaolevate lubatud moodulite loendit näete oma apache konfiguratsioonifailis –
[root@amsterdam ~]#httpd –M perl_module (shared) php5_module (shared) proxy_ajp_module (shared) python_module (shared) ssl_module (shared)
Paljud loetletud moodulid saab keelata, näiteks mod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, kuna neid ei kasuta peaaegu ükski tootmisveebiserver.
vi /etc/httpd/conf/httpd.conf #LoadModule auth_digest_module modules/mod_auth_digest.so
Kui olete moodulit kommenteerinud, salvestage fail.
Taaskäivitage apache'i teenused järgmise käsuga.
/etc/init.d/httpd restart
4) Juurdepääsu piiramine failidele väljaspool veebi juurkataloogi
Kui soovite veenduda, et failid, mis asuvad väljaspool veebi juurkataloogi, pole juurdepääsetavad, peate veenduma, et kataloog on teie veebiserveri konfiguratsioonifailis piiratud valikutega "Luba" ja "Keela".
<Directory/> Options None AllowOverride None Order deny,allow Deny from all </Directory>
Kui piirate juurdepääsu väljaspool veebi juurkataloogi, ei pääse te juurde ühelegi failile, mis asub teie veebiserveri üheski teises kaustas, vaid saate 404 tagastuskoodi.
5) Mod_evasive kasutamine DoS-rünnaku ümberlükkamiseks
Kui soovite kaitsta oma veebiserverit Dosi (st teenuse keelamise) eest, peate lubama mooduli mod_evasive. See on kolmanda osapoole moodul, mis tuvastab Dosi rünnaku ja ei lase rünnakul teha nii palju kahju, kui see teeks, kui see jäetakse käima. Selle saab alla laadida siit.
6) mod_security kasutamine apache turvalisuse suurendamiseks
See moodul töötab Apache tulemüürina ja võimaldab teil liiklust reaalajas jälgida. Samuti takistab see veebiserverit jõhkra jõu rünnakute eest. Mooduli mod_security saab installida teie distributsiooni vaikepaketihalduriga.
7) Taotluse suuruse piiramine
Apache ei piira http-päringu kogusuurust, mis võib viia DoS-i rünnakuni. Saate piirata Apache direktiivi LimitRequestBody päringu suurust kataloogimärgendiga. Väärtuse saab vastavalt teie nõudele määrata vahemikus 0 kuni 2 GB (st 2147483647 baiti).
<Directory "/var/www/html/uploads"> LimitRequestBody 512000 </Directory>
Apache logivorming
Apache logid pakuvad üksikasjalikku teavet, mis aitab tuvastada serveriga seotud levinud probleeme.
Juurdepääsulogide loomiseks peab mod_log_configmodule olema lubatud.
Apache konfiguratsioonifailis on saadaval kolm direktiivi, st
- TransferLog: logifaili loomine.
- LogFormat : kohandatud vormingu määramine.
- CustomLog : logifaili loomine ja vormindamine.
TransferLogi direktiiv on saadaval apache konfiguratsioonifailis ja see pöörab virtuaalse hosti logifaile vastavalt seatud parameetritele.
<VirtualHost www.example.com> ServerAdmin webmaster@example.com DocumentRoot /usr/www/example/httpd/htdocs/ ServerName www.example.com ServerAlias example.com www.example ErrorLog /usr/www/example/httpd/logs/error_log TransferLog/usr/www/example/httpd/logs/accesslog CustomLog /usr/www/example/httpd/logs/accesslog combined </VirtualHost>
Kaks tüüpi Apache logivormingut
- Ühine logivorming
- Kombineeritud logivorming.
Saate need lubada, redigeerides apache konfiguratsioonifaili, st faili apache2.conf (Debian/ubuntu) või httpd.conf (rpm-põhised süsteemid)
Ühine logivorming
LogFormat "%h %l %u %t \"%r\" %>s %b" common CustomLog logs/access_log common
Apache genereeritud ühine logi
[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test
Kombineeritud logivorming
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined CustomLog log/access_log combined
Siin
- %h on kaughost
- %l on kasutaja identiteet, mille määrab identd
- %u on HTTP autentimisega määratud kasutajanimi
- %t on aeg, mil server päringu töötlemise lõpetas.
- %r on kliendi päringurida. ("GET / HTTP/1.0")
- %>s on serverist kliendile saadetud olekukood (500, 404 jne)
- %b on kliendile saadetud vastuse suurus (baitides)
- Viitaja on leht, mis viitas sellele URL-ile.
- User-agent on brauseri identifitseerimisstring.
Apache'i loodud kombineeritud logi:
199.187.122.91 - - [06/Mar/2014:04:22:58 +0100] "GET /robots.txt HTTP/1.1" 404 1228 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"
Kohandatud logi loob teie serveri iga virtuaalhosti jaoks eraldi logifaili. See tuleb määrata konfiguratsioonifaili virtuaalse hosti jaotises.
Allpool näete mainitud virtuaalse hosti konfiguratsiooni, genereeritud logi kohandatakse selle virtuaalse hosti jaoks ja vorming kombineeritakse.
Konfigureerige oma esimene tootmise veebiserver
1. Töötava tootmisveebiserveri kasutamiseks on vaja spetsiaalset sõlme (füüsiline/virtuaalne või pilveeksemplar), kus töötab Linux/Unix, Windows, MacOS jne.
2. Veebiserveril peab olema a otsene võrguühendus ja staatiline IP-aadress sellele konfigureeritud.
3. Sellel peab olema kõik moodulid vajalik veebilehtede käitamiseks. Kui veebiserver töötleb PHP-lehti, peab sellel olema PHP-moodul lubatud.
- Samuti peab sellel olema hea viirusetõrje rakendus, mis on konfigureeritud ja töötab veebiserveri kaitsmiseks pahavara või viiruse rünnakute eest. Selleks on vaja ka mehhanismi ajakohastama konfigureeritud viirusetõrje-/ründevaratõrjerakendused regulaarselt ilma käsitsi sekkumiseta, et neist maksimaalset kasu saada.
- Kui teil on veebiserveris sadu domeene, peate need juurutama piirangud failisüsteemi kvoodile iga domeeni jaoks, andmebaaside arv, mida iga domeen saab luua, meilikontode arv domeeni kohta jne.
- Kui teie veebiserver on seadistatud jagatud hostimisteenuste puhul tuleb teie veebiserveri kasutajaid piirata. Jagatud hostimise kasutajal peaks olema kõige vähem kasutajaõigusi, et ta ei kahjustaks olulisi faile ega purustaks kogu serverit. Apache ei paku selliseid funktsioone ja vajab selle saavutamiseks erinevaid kolmanda osapoole rakendusi ja operatsioonisüsteemi kohandamist.
- Kui lisate a uus domeen teie veebiserveris vajab see sadade konfiguratsioonifailide redigeerimist, et lubada kõik lisatud domeeni funktsioonid.
- Kui üks hostitud domeenidest nõuab erinev PHP seade kui ülejäänud domeenid, on selle rakendamine Apache põhiveebiserveris väga keeruline ja vajab teie veebiserveri kohandamist suurel määral.
- Tootmisveebiserver vajab a tulemüüri soovimatu liikluse blokeerimiseks, mis võib teie serveris suure koormuse põhjustada. Rakendamine IPTABLE käsurea reeglid on väga keerulised. Tõhusate tulemüürireeglite kirjutamiseks soovimatu liikluse blokeerimiseks on vaja Linuxi/Unixi põhikeskkonna teadmisi. IPTABLE põhineb netfiltri moodulil; see on OS-i tasemel tulemüür, mis võimaldab administraatoril luua serverisse sissetuleva/väljamineva liikluse reegleid.
- Tootmisveebiserver nõuab mitut erinevat rakendust, näiteks E-POST, FTP failide üleslaadimiseks, Domain Name System pargitud domeenide jaoks. Kõigi nende rakenduste haldamine Linuxi/Unixi põhisüsteemis nõuab vastavate tehnoloogiate alast teadmisi.
Seega võib öelda, et veebiserveri haldamine mitme domeeni jaoks on väga keeruline ülesanne ja nõuab sadade konfiguratsioonifailide redigeerimist, iga rakenduse kohandamist soovitud tulemuse saavutamiseks. Mis tahes puuduliku konfiguratsiooni tõrkeotsing on algajatele väga keeruline.
Lahendus Cpaneli või sarnase tarkvara abil
Cpanel pakub graafilist viisi teie veebiserveri haldamiseks. See on mõeldud masshostimisteenuste pakkumiseks, mida on lihtne kasutada ja konfigureerida. cPanel on vähendanud tehnilisi tõkkeid hostimisse ja veebiserveri haldamisse sisenemisel. See muudab keeruka ülesande lihtsamaks, pakub palju kasulikke ja hõlpsasti kasutatavaid veebiliideseid, mis täidavad veebiserveri tööks vajalikke tavalisi süsteemihaldusülesandeid.
cPanel koostab oma tarkvaraversiooni.
Kui peate oma veebiserveri, st apache'i tavalisel Linuxi platvormil uuesti kompileerima, peate vajaliku mooduli käsitsi valima/otsima. cPanel pakub Easyapache'i funktsioone, mis on skriptipõhine veebiserveri kompileerimismeetod.
See mitte ainult ei paku teile veebiteenuseid, vaid ka Mail, DNS, FTP ja palju muid teie veebirakenduse jaoks vajalikke teenuseid.
Ülesanne, mis vajab teadmisi Linuxi/Unixi põhihostimise alal, nagu SSL-ide installimine, Apache'i ümberkompileerimine erinevate PHP moodulitega, veebiturbe värskendamine, tõhusate IPTABLE reeglite konfigureerimine, ftp-kasutajate lisamine, iga domeeni jaoks meilikontode loomine, dokumendi juure skannimine viirusetõrjega ja cPaneliga on andmebaaside loomine lihtne.
See pakub palju skripte, mis parandavad, installivad ja teevad tõrkeotsinguks levinud haldustoiminguid.
See pakub varundamise ja taastamise funktsiooni, välistades vajaduse faile käsitsi varundusmällu kopeerida. Kui varundate oma domeeni, loob cPanel tar-faili, mis sisaldab dokumendi juurkausta, meilikontosid ja e-kirju, ftp-kontosid, andmebaase, DNS-kirjeid ja muid rakendusi.
See pakub ka tugevat dokumentatsiooni ja sellel on väga suur kasutajate kogukond, kus saate oma probleeme arutada ja neile lahendusi leida.
Nii et võib öelda cPanel on parim rakendus vajalike funktsioonidega veebiserveri haldamiseks. See pakub teile hõlpsasti kasutatavat liidest teie domeeni haldamiseks ja mehhanismi põhiveebiserveri haldamise keerukuse vältimiseks.
cPanelil on palju konkureerivaid tooteid, nagu Plesk, ISPConfig, Ajenti, Kloxo, Open Panel, Zpanel jne.