Vad är Apache?
Apache är en anmärkningsvärd mjukvara. Det är den mest använda Webbserverprogrammet i världen med mer än 50% andel på den kommersiella webbservermarknaden. Apache är den mest använda Webbserverprogrammet i Unix – liknande operativsystem men kan användas på nästan alla plattformar som Windows, OS X, OS/2, etc., Ordet, Apache, har tagits från namnet på den indianska stammen ”Apache”, känd för sina färdigheter i krigföring och strategiskapande.
det är ett modulärt, processbaserat webbserverprogram som skapar en ny tråd med varje samtidig anslutning. Den stöder ett antal funktioner; Många av dem sammanställs som separata moduler och utöka sin kärnfunktionalitet, och kan ge allt från serversidan programmeringsspråk stöd till autentiseringsmekanism. Virtual hosting är en sådan funktion som gör att en enda Apache webbserver för att tjäna ett antal olika webbplatser.,
hur man installerar Apache
det finns många sätt att installera paketet eller programmet. Det finns värvning nedan –
- en av funktionerna i denna webbapplikation med öppen källkod är att vem som helst kan göra installationsprogrammet enligt sin egen miljö. Detta har gjort det möjligt för olika leverantörer som Debian, Red Hat, FreeBSD, Suse etc. att anpassa filen plats och konfiguration av apache med hänsyn till andra installerade program och bas OS.,
- förutom att installera det från en leverantörsbaserad installatör finns det alltid möjlighet att bygga och installera det från källkoden. Installera Apache från källfilen är en plattformsoberoende & fungerar för alla operativsystem.
webbservern apache är ett modulärt program där administratören kan välja önskad funktionalitet och installera olika moduler enligt hans / hennes krav.,
alla moduler kan kompileras som dynamiska Delade objekt (DSO är en objektfil som kan delas av flera appar medan de körs) som finns separat från huvud apache-filen. DSO-metoden rekommenderas starkt, det gör uppgiften att lägga till/ta bort/uppdatera moduler från servrarkonfigurationen mycket enkel.
installera Apache: Linux-plattformen
På Red Hat eller rpm-baserade system
om du använder ett rpm (RedHat Package Manager är ett verktyg för att installera program på Linux-system) baserad Linux-distribution, dvs, Red Hat, Fedora, CentOs, Suse, du kan installera det här programmet genom att antingen leverantörsspecifik pakethanterare eller direkt bygga rpm-filen från den tillgängliga källtarballen.
Du kan installera Apache via Standardpakethanteraren tillgänglig på alla Red Hat-baserade distributioner som CentOs, Red Hat och Fedora.
# yum install httpd
apache-källtarballen kan konverteras till en rpm-fil med följande kommando.
# rpmbuild -tb httpd-2.4.x.tar.bz2
det är obligatoriskt att ha-devel-paket installerat på din server för att skapa .rpm-fil från källan.,
När du konverterar källfilen till ett rpm-installationsprogram kan du använda följande kommando för att installera Apache.
# rpm –ivh httpd-2.4.4-3.1.x86_64.rpm
Efter installationen startar servern inte automatiskt, för att starta tjänsten måste du använda något av följande kommando på Fedora, CentOs eller Red Hat.
# /usr/sbin/apachectl start# service httpd start# /etc/init.d/httpd start
installera Apache från källa
installera apache från källan kräver att –devel-paketet ska installeras på din server. .Du kan hitta den senaste tillgängliga versionen av Apache, du kan ladda ner den här ., När du har hämtat källfilen flytta den till mappen/usr/local / src.
för att se alla konfigurationsalternativ tillgängliga för Apache kan du använda ./ configure-hjälp alternativ. Det vanligaste konfigurationsalternativet är-prefix={install directory name}.
exemplet ovan visar sammanställningen av Apache i katalogen/usr/local / apache med DSO-funktionen. Alternativet-Aktivera-så kan ladda nödvändiga moduler till apache vid körning via DSO-mekanismen istället för att kräva en omkompilering.,
När installationen är klar kan du bläddra på webbsidan för webbservrar med din favoritwebbläsare. Om brandväggen är aktiverad på din server måste du göra undantag för port 80 på din OS-brandvägg. Du kan använda följande kommando för att öppna port 80.
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
tjänsten iptables spara
Du kan se Standard Apache2 välkomstskärmen genom att bläddra din server IP-adress.
Vad är virtuell värd?
en Apache-webbserver kan vara värd för flera webbplatser på samma server., Du behöver inte separat server maskin och apache programvara för varje webbplats. Detta kan uppnås med hjälp av begreppet virtuell värd eller vhost.
alla domäner som du vill vara värd för på din webbserver kommer att ha en separat post i apache-konfigurationsfilen.
typer av Apache Virtualhost
- Namnbaserad virtuell värd
- Adressbaserad eller IP-baserad virtuell värd och.
Namnbaserad virtuell värd
Namnbaserad virtuell värd används för att vara värd för flera virtuella webbplatser på en enda IP-adress.,
för att konfigurera namnbaserad virtuell värd måste du ställa in den IP-adress som du ska ta emot Apacheförfrågningarna för alla önskade webbplatser. Du kan göra detta genom NameVirutalHost-direktivet inom apache-konfigurationen, dvs httpd.conf/apache2.conf-filen.
Apache virtual host exempel:
Du kan lägga till så många virtuella värdar, enligt dina krav., Du kan kontrollera dina webbkonfigurationsfiler med:
#httpd –tSyntax OK
om konfigurationsfilen har fel syntax, kommer det att kasta ett fel
IP-baserad virtuell värd
för att konfigurera IP-baserad virtuell värd behöver du mer än en IP-adress konfigurerad på din server. Så, antalet vhost apache beror påantal IP-adress konfigurerad på din server. Om din server har 10 IP-adresser kan du skapa 10 IP-baserade virtuella värdar.
i ovanstående diagram exempel två webbplatser1.,kom och example2.com tilldelades olika IP-adresser och använder IP-baserad virtuell värd.
vilken Apache behöver köra Php-fil?
Kör Php-filer på Apache behöver mod_php aktiverat på din server. Det tillåter Apache att tolka .Php-filer. Den har Php-hanterare som tolkar Php-koden i apache och skickar HTML till din webbserver.
om mod_php är aktiverat på din server kommer du att ha en fil som heter php.conf i /etc/httpd/conf.d / katalog., Du kan också kontrollera det med:
httpd -M | grep "php5_module"
utgången kommer att likna:
Php-hanterare i Apache
- mod_php
- CGI
- FastCGI
- suPHP
mod_phpis den äldsta PHP-hanteraren, det gör PHP en del av apache och kallar inte någon extern PHP-process. Denna modul installeras som standard i varje Linux-distributionsförråd, så det är väldigt enkelt att aktivera/inaktivera den här modulen.,
Om du använder FastCGI som din PHP-hanterare kan du ställa in flera versioner av PHP som ska användas av olika konton på din server.
FastCGI dvs mod_fastcgi är en förlängning av mod_fcgid, där som mod_fcgid är ett högpresterande alternativ för CGI dvs mod_cgi . Det börjar tillräckligt antal instanser av CGI att hantera samtidiga webbförfrågningar. Den använder också suexec för att stödja olika användare med sina egna instanser av PHP och förbättrar webbsäkerhet.
att köra ruby-filer på Apache behöver mod_ruby aktiveras. Apache kan också hantera ruby filer via FastCGI., Det är möjligt att använda flera versioner av ruby med hjälp av mod_fcgid dvs FastCGI.
Du kan också installera apache passagerare och konfigurera Apache att använda den för att betjäna ruby sidor.
(Phusion Passenger även känd som ”passenger” är en gratis webbserver modul som är utformad för att integreras med Apache och Nginx)
steg för att installera mod_ruby på din server –
hur man kör Ruby med Apache
Vi måste lägga till mod_ruby modulen till Apache konfiguration dvs/etc/httpd / conf.d/ruby.conf och Lägg till följande rad.
LoadModule ruby_module modules/mod_ruby.,så
om du vill aktivera eller inaktivera dessa moduler måste du redigera apache-konfigurationsfilen och kommentera eller Avkommentera dessa moduler, om webbservern redan är kompilerad med dessa moduler.
hur man säkrar Apache webbserver
säkra din webbserver är mycket viktigt, det innebär att andra kan se endast den avsedda informationen& skydda dina data och begränsa åtkomsten.
det här är vanliga saker som förbättrar dina Apaches webbservrar säkerhet.,
1) dölja Apache version och OS information:
Apache visar sin version och namnet på operativsystemet i fel som visas i nedan skärmdump.
en hacker kan använda denna information för att starta en attack med hjälp av allmänt tillgängliga sårbarheter i den specifika versionen av servern eller operativsystemet.
För att förhindra att Apache webserverfromdisplaying denna information, vi måste ändra
”server signatur” alternativet finns i apache konfigurationsfilen., Som standard är det ”på”, Vi måste ställa in det”av”.
vim /etc/httpd/conf/httpd.conf
ServerSignature OffServerTokens Prod
Vi har också satt ”ServerTokens Prod” som talar om för webbservern att returnera endast apache och undertrycka OS större och mindre version
efter modifiering av konfigurationsfilen måste du starta om / ladda din apache webbserver för att göra den effektiv.,
service httpd restart
2) Inaktivera kataloglistning
om dokumentets rotkatalog inte har en indexfil visar din apache-webbserver som standard allt innehåll i dokumentets rotkatalog.
den här funktionen kan stängas av för en specifik katalog genom ”optionsdirektivet” som finns i Apache-konfigurationsfilen.,
<Directory /var/www/html> Options -Indexes</Directory>
3) Inaktivera onödiga moduler
det är bra att inaktivera alla onödiga moduler som inte används. Du kan se Lista över aktiverade modulen finns i din apache konfigurationsfil –
många av de listade modulerna kan inaktiveras likemod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, eftersom de knappast används av någon produktion webbservrar.
vi /etc/httpd/conf/httpd.conf#LoadModule auth_digest_module modules/mod_auth_digest.so
När du kommenterade modulen, spara filen.,
Starta om apache-tjänster med följande kommando.
/etc/init.d/httpd restart
4) begränsa åtkomsten till filer utanför webbrotkatalogen
om du vill se till att filer som ligger utanför webbrotkatalogen inte är tillgängliga måste du se till att katalogen är begränsad med ”tillåt” och ”Neka alternativet” i konfigurationsfilen för webbservern.
<Directory/>Options NoneAllowOverride NoneOrder deny,allowDeny from all</Directory>
När du begränsar acess utanför web root directoy, kommer du inte att kunna komma åt någon fil som finns på någon annan mapp på din webbserver, får du 404 returkod.,
5) med mod_evasive för att motverka DoS-attacken
om du vill skydda din webbserver från Dos (dvs. överbelastning) måste du aktivera modulen mod_evasive. Det är en tredje part modul som upptäcker Dos attack och förhindrar attacken från att göra så mycket skada som det skulle göra om de lämnas för att köra sin kurs. Den kan laddas ner här.,
ladda ner ovanstående fil
6) använda mod_security för att förbättra apache-säkerheten
den här modulen fungerar som en brandvägg för Apache och låter dig övervaka trafiken i realtid. Det förhindrar också webbservern från brute force attacker. Mod_security-modulen kan installeras med standardpakethanteraren för din distribution.
7) begränsande begäranstorlek
Apache har ingen begränsning av den totala storleken på http-begäran som kan leda till en DoS-attack., Du kan begränsa begärandestorleken för ett Apache-direktiv ”LimitRequestBody” med katalogtaggen. Värdet kan ställas in allt från 0 till 2 GB (dvs 2147483647 byte) enligt ditt krav.
<Directory "/var/www/html/uploads"> LimitRequestBody 512000</Directory>
Apache Log Format
Apache loggar ger detaljerad information som hjälper till att upptäcka vanliga problem med servern.
för att skapa åtkomstloggar måste mod_log_configmodule vara aktiverat.
tre direktiv som finns i apache config-filen, dvs.
- TransferLog: skapa en loggfil.
- LogFormat : ange ett eget format.,
- CustomLog : skapa och formatera en loggfil.
TransferLog direktivet är tillgängligt i apache konfigurationsfilen och det roterar virtuella värdloggfiler enligt inställda parametrar.
två typer av Apache Log Format
- Common Log Format
- kombinerat Log Format.
Du kan aktivera dem genom att redigera apache-konfigurationsfilen, dvs. apache2.conf (Debian/ubuntu) eller httpd.,conf (rpm-baserade system) fil
Common Log Format
LogFormat "%h %l %u %t \"%r\" %>s %b" commonCustomLog logs/access_log common
Common Log generated by Apache
client denied by server configuration: /export/home/live/ap/htdocs/test
kombinerat loggformat
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combinedCustomLog log/access_log combined
Här,
- %h är fjärrvärden
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combinedCustomLog log/access_log combined
kombinerad logg som genereras av Apache:
Anpassad logg skapar separat loggfil för varje virtuell värd på din server. Det måste anges i avsnittet virtuell värd i konfigurationsfilen.,
Du kan se nedan nämnda virtuell värdkonfiguration, genererad logg kommer att vara anpassad för den virtuella värden och formatet kommer att kombineras.
konfigurera din allra första produktion Web Sever
1. För att få en löpande produktion webbserver behöver du en dedikerad nod (fysisk/virtuell eller molninstans) som kör Linux/Unix, Windows, MacOS etc.
2. Webbservern måste ha en direkt nätverksanslutning och en staticIP adress konfigurerad på det.
3., Det måste ha alla moduler som krävs för att köra webbsidor. Om en webbserver behandlar PHP-sidor måste den ha PHP-modulen aktiverad.
- Det måste också ha ett bra antivirusprogram konfigurerat och körs för att säkra webbservern från skadlig kod eller virusattacker. Du behöver också mekanism för att uppdatera den konfigurerade antivirus / anti malware program regelbundet utan någon manuell ingripande för att få maximal nytta av dem.,
- Om du har hundratals domäner att vara värd för på din webbserver måste du implementera begränsningar för filsystemkvot för varje domän, antal databaser varje domän kan skapa, antal e-postkonton per domän etc.
- om din webbserver har konfigurerats för delade hostingtjänster måste användare på din webbserver begränsas. En delad hostelanvändare bör ha minst användarrättigheter så att han inte skadar viktiga filer & bryter hela servern., Apache ger inte någon sådan funktionalitet och behöver olika tredjepartsprogram, anpassning av OS för att uppnå detta.
- Om du lägger till en ny domän på din webbserver behöver den redigera hundratals konfigurationsfiler för att aktivera alla funktioner för den tillagda domänen.
- om en av de värd domäner kräver annan PHP-inställning än resten av domänerna, genomföra detta i core Apache webbserver är mycket komplex och behöver anpassning av din webbserver i stor utsträckning.,
- en produktion webbserver behöver en brandvägg för att blockera oönskad trafik som kan orsaka hög belastning på din server. Genomförande av IPTABLE-regler med kommandoraden är mycket komplex. Den behöver expertis av core Linux / Unix-miljö för att skriva effektiva brandväggsregler för att blockera oönskad trafik. IPTABLE är baserad på netfilter modul; det är en OS-nivå brandvägg som tillåter en administratör att skapa regler för inkommande / utgående trafik på servern.
- en produktion webbserver kräver flera olika program som e-post, FTP för filuppladdning, domännamnssystem för parkerade domäner., Hantera alla dessa program på en kärna Linux / Unix-system kräver expertis på respektive teknik.
så kan man säga att hantera en webbserver för flera domäner är mycket komplex uppgift och kräver redigering hundratals konfigurationsfil, anpassa varje program för att uppfylla önskat resultat. Felsökning någon Miss konfiguration kommer att bli mycket svårt för nybörjare.
lösningen med cPanel eller liknande programvara
cPanel ger ett grafiskt sätt att hantera din webbserver., Det är tänkt att ge mass hosting-tjänster som är lätt att använda och konfigurera. cPanel har minskat de tekniska hindren för inträde i webbhotellet och webbserverhanteringen. Det gör komplicerad uppgift enklare, det ger många användbara och lättanvända webbgränssnitt som utför gemensamma systemadministrationsuppgifter som krävs för att driva en webbserver.
cPanel sammanställer sin egen version av programvaran.
om du måste kompilera om din webbserver, dvs., apache på normal Linux-plattform måste du manuellt välja/söka modulen som krävs. cPanel ger Easyapache funktionalitet som är ett skript baserad webbserver sammanställning metod.
det ger dig inte bara webbtjänster utan även e-post, DNS, FTP och många fler tjänster som krävs för din webbapplikation.,
en uppgift som behöver expertis på core Linux / Unix – baserad värd som att installera SSL, kompilera Apache med olika PHP-moduler, uppdatera webbsäkerhet, konfigurera effektiva IPTABLE-regler, lägga till ftp-användare, skapa e-postkonton för varje domän, skanna din dokumentrot med antivirus och skapa databaser är lätta att slutföra med cPanel.
det ger många skript som fixar, installerar och felsöker vanliga administrativa uppgifter.
det ger en säkerhetskopiering och återställning funktionalitet eliminerar behovet av att manuellt kopiera filer till backup lagring., Om du säkerhetskopierar din domän, cPanel kommer att skapa en tar-fil som kommer att innehålla dokument rotmapp, e-postkonton och e-post, ftp-konton, databaser, DNS-poster och andra program.
det ger också en robust dokumentation, ochhar en mycket stor användargrupp där du kan diskutera och få lösning på dina problem.
så kan man säga att cPanel är ett bästa program för att hantera din webbserver med nödvändiga funktioner. Det ger dig, lättanvänt gränssnitt för att hantera din domän och en mekanism för att undvika komplexitet hantera core webbserver.,
Det finns många konkurrerande produkter till cPanel som Plesk, ISPConfig, Ajenti, Kloxo, Öppna Panelen, Zpanel etc.