Wat is Apache?
Apache is een opmerkelijk stuk toepassingssoftware. Het is de meest gebruikte webserver applicatie in de wereld met meer dan 50% aandeel in de commerciële webserver markt. Apache is de meest gebruikte webserver applicatie in Unix – achtige besturingssystemen, maar kan worden gebruikt op bijna alle platforms zoals Windows, OS X, OS / 2, enz., Het woord, Apache, is afgeleid van de naam van de inheemse Amerikaanse stam ‘Apache’, beroemd om zijn vaardigheden in oorlogvoering en strategievorming.
het is een modulaire, procesgebaseerde webservertoepassing die een nieuwe thread maakt bij elke gelijktijdige verbinding. Het ondersteunt een aantal functies; veel van hen zijn gecompileerd als afzonderlijke modules en de kernfunctionaliteit uit te breiden, en kan alles bieden van server side programmeertaal ondersteuning tot authenticatie mechanisme. Virtual hosting is een dergelijke functie die het mogelijk maakt een enkele Apache webserver om een aantal verschillende websites te dienen.,
hoe Apache
te installeren Er zijn tal van manieren om het pakket of de toepassing te installeren. Er zijn hieronder –
- een van de kenmerken van deze open source webtoepassing is dat iedereen installer kan maken volgens zijn eigen omgeving. Dit heeft verschillende leveranciers toegestaan zoals Debian, Red Hat,FreeBSD, Suse etc. om de bestandslocatie en configuratie van apache aan te passen rekening houdend met andere geïnstalleerde toepassingen en basis OS.,
- behalve het installeren van een installatieprogramma op basis van een leverancier, is er altijd de optie om het te bouwen en te installeren vanaf de broncode. Het installeren van Apache vanuit het bronbestand is een platformonafhankelijk & werkt voor alle besturingssystemen.
De apache webserver is een modulaire applicatie waar de beheerder de vereiste functionaliteit kan kiezen en verschillende modules kan installeren volgens zijn/haar vereiste.,
alle modules kunnen gecompileerd worden als dynamische gedeelde objecten (DSO is een objectbestand dat gedeeld kan worden door meerdere apps tijdens het uitvoeren) dat los staat van het hoofdbestand van apache. De DSO aanpak wordt sterk aanbevolen, het maakt de taak van het toevoegen/verwijderen/updaten van modules van de server configuratie zeer eenvoudig.
installeer Apache:Linux Platform
Op Red Hat of rpm gebaseerde systemen
Als u een rpm (RedHat Package Manager is een hulpprogramma voor het installeren van toepassing op Linux-systemen) gebaseerde Linux distributie gebruikt, d.w.z., Red Hat, Fedora, CentOs, Suse, je kunt deze applicatie installeren door ofwel leverancier specifieke Package Manager of direct het RPM bestand bouwen van de beschikbare bron tarball.
Je kunt Apache installeren via de standaard Package Manager die beschikbaar is op alle Red Hat gebaseerde distributies zoals CentOs, Red Hat en Fedora.
# yum install httpd
De apache-brontarball kan worden omgezet in een rpm-bestand met het volgende commando.
# rpmbuild -tb httpd-2.4.x.tar.bz2
Het is verplicht om-devel pakket geïnstalleerd te hebben op uw server voor het maken .rpm-bestand van broncode.,
zodra u het bronbestand converteert naar een rpm installer, kunt u het volgende commando gebruiken om Apache te installeren.
# rpm –ivh httpd-2.4.4-3.1.x86_64.rpm
na de installatie start de server niet automatisch, om de service te starten, moet je een van de volgende commando ‘ s gebruiken op Fedora, CentOs of Red Hat.
# /usr/sbin/apachectl start# service httpd start# /etc/init.d/httpd start
Apache installeren vanaf de bron
apache installeren vanaf de bron vereist dat het –devel pakket op uw server geïnstalleerd wordt. .U kunt de laatste beschikbare versie van Apache vinden, U kunt het hier downloaden ., Zodra je het bronbestand hebt gedownload, verplaats je het naar de map /usr/local/src.
om alle configuratie optie beschikbaar voor Apache te zien, kunt u deze gebruiken ./ configure –help optie. De meest voorkomende configuratie optie is-prefix = {install directory name}.
het bovenstaande voorbeeld toont de compilatie van Apache in de map /usr/local/apache met de DSO mogelijkheid. De optie-enable-so kan vereiste modules naar apache laden tijdens het draaien via het DSO mechanisme in plaats van een hercompilatie te vereisen.,
zodra de installatie is voltooid, kunt u door de standaardpagina van webservers bladeren met uw favoriete browser. Als firewall is ingeschakeld op uw server, moet u een uitzondering maken voor poort 80 op uw OS firewall. U kunt het volgende commando gebruiken om poort 80 te openen.
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
service iptables save
u kunt het standaard Apache2 welkomstscherm zien door te bladeren door het IP-adres van uw server.
Wat is virtuele Host?
een Apache-webserver kan meerdere websites op dezelfde server hosten., Je hebt geen aparte server machine en apache software nodig voor elke website. Dit kan worden bereikt met behulp van het concept van virtuele Host of VHost.
elk domein dat u wilt hosten op uw webserver zal een aparte ingang hebben in het apache configuratiebestand.
typen Apache Virtualhost
- Naamgebaseerde virtuele host
- adres-of IP-gebaseerde virtuele host en.
op naam gebaseerde virtuele Host
op naam gebaseerde virtuele host wordt gebruikt om meerdere virtuele sites op één IP-adres te hosten.,
om op naam gebaseerde virtuele hosting te configureren, moet u het IP-adres instellen waarop u de Apache-verzoeken voor alle gewenste websites gaat ontvangen. Je kunt dit doen door NameVirutalHost directive binnen de apache configuratie i. e. httpd.conf / apache2.conf file.
Apache virtual host voorbeeld:
u kunt zoveel virtuele hosts toevoegen, zoals vereist., U kunt uw webconfiguratiebestanden controleren met:
#httpd –tSyntax OK
als het configuratiebestand een verkeerde syntaxis heeft, zal het een fout geven
IP-gebaseerde virtuele host
om IP-gebaseerde virtuele hosting in te stellen, hebt u meer dan één IP-adres geconfigureerd op uw server nodig. Zo, het aantal vhost apache zal afhangen vanaantal IP-adres geconfigureerd op uw server. Als uw server 10 IP-adressen heeft, kunt u 10 IP-gebaseerde virtuele hosts maken.
in het bovenstaande diagram twee websites voorbeeld1.,com en example2.com werden toegewezen verschillende IP ‘ s en zijn met behulp van IP-gebaseerde virtuele hosting.
wat heeft Apache nodig om een Php-bestand uit te voeren?
het draaien van Php-bestanden op Apache heeft mod_php ingeschakeld nodig op uw server. Het staat Apache toe om te interpreteren .Php bestanden. Het heeft Php handlers die de Php-code in apache interpreteren en HTML naar uw webserver sturen.
als mod_php is ingeschakeld op uw server, krijgt u een bestand met de naam php.conf in/etc/httpd / conf.d / directory., U kunt ook controleren met:
httpd -M | grep "php5_module"
De uitvoer op het volgende lijkt:
Php-handlers in Apache
- mod_php
- CGI
- Pg
- suPHP
mod_phpis de oudste PHP handler, het maakt PHP deel van apache en geen beroep doet op een externe PHP-proces. Deze module wordt standaard geà nstalleerd in elke Linux distributie repository, dus het in – /uitschakelen van deze module is zeer eenvoudig.,
als u FastCGI gebruikt als uw PHP-handler, kunt u meerdere versies van PHP instellen die gebruikt worden door verschillende accounts op uw server.
FastCGI i. e. mod_fastcgi is een uitbreiding van mod_fcgid, waarbij mod_fcgid een high performance alternatief is voor CGI i .e. mod_cgi. Het Start voldoende aantal gevallen van CGI om gelijktijdige webaanvragen af te handelen. Het maakt ook gebruik van suexec om verschillende gebruikers te ondersteunen met hun eigen exemplaren van PHP en verbetert de webbeveiliging.
het draaien van ruby-bestanden op Apache moet mod_ruby inschakelen. Apache kan ook ruby bestanden verwerken via FastCGI., Het is mogelijk om meerdere versies van ruby te gebruiken met behulp van mod_fcgid dwz FastCGI.
u kunt ook apache passenger installeren en Apache configureren om het te gebruiken voor ruby pages.
(Phusion Passenger ook bekend als “passenger” is een gratis webserver module die is ontworpen om te integreren met Apache en Nginx)
stappen om mod_ruby op uw server te installeren –
hoe Ruby te draaien met Apache
We moeten de mod_ruby module toevoegen aan de Apache configuratie dwz/etc/httpd / conf.d / ruby.conf en voeg de volgende regel toe.
LoadModule ruby_module modules / mod_ruby.,dus
als u deze modules wilt in-of uitschakelen, moet u het apache configuratiebestand bewerken en deze modules becommentariëren of verwijderen, als de webserver al gecompileerd is met deze modules.
hoe Apache webserver te beveiligen
uw webserver beveiligen is erg belangrijk, het betekent dat anderen alleen de bedoelde informatie mogen zien & uw gegevens beschermen en toegang beperken.
Dit zijn veelvoorkomende dingen die de beveiliging van uw Apache webservers verbeteren.,
1) Apache-versie en OS-informatie Verbergen:
Apache toont zijn versie en de naam van het besturingssysteem in fouten zoals weergegeven in onderstaande schermafbeelding.
een hacker kan deze informatie gebruiken om een aanval te starten met behulp van de publiekelijk beschikbare kwetsbaarheden in de specifieke versie van de server of het besturingssysteem.
om te voorkomen dat Apache webserverfromdisplay deze informatie, we moeten wijzigen
“Server signature” optie beschikbaar in het apache configuratiebestand., Standaard is het” aan”, we moeten het”uit” zetten.
vim /etc/httpd/conf/httpd.conf
ServerSignature OffServerTokens Prod
we hebben ook” ServerTokens Prod ” ingesteld dat de webserver vertelt om alleen apache terug te geven en de OS major en minor versie te onderdrukken
na het wijzigen van het configuratiebestand moet u uw apache webserver herstarten/herladen om het effectief te maken.,
service httpd restart
2) Directoryweergave uitschakelen
als uw document-hoofdmap geen indexbestand heeft, zal standaard uw apache-webserver alle inhoud van de hoofdmap van het document weergeven.
Deze functie kan worden uitgeschakeld voor een specifieke map via” options directive ” beschikbaar in het Apache configuratiebestand.,
<Directory /var/www/html> Options -Indexes</Directory>
3) onnodige modules uitschakelen
Het is een goede gewoonte om alle onnodige modules die niet in gebruik zijn uit te schakelen. U kunt een lijst met ingeschakelde module zien die beschikbaar is in uw apache configuratiebestand –
veel van de genoemde modules kunnen worden uitgeschakeld zoals mod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, omdat ze nauwelijks worden gebruikt door een productie webserver.
vi /etc/httpd/conf/httpd.conf#LoadModule auth_digest_module modules/mod_auth_digest.so
sla het bestand op als u de module hebt becommentarieerd.,
herstart apache-services met het volgende commando.
/etc/init.d/httpd restart
4) toegang beperken tot bestanden buiten de webmap
Als u ervoor wilt zorgen dat bestanden buiten de webmap niet toegankelijk zijn, moet u ervoor zorgen dat de map beperkt is met” Allow “en” Deny option ” in uw webserver configuratiebestand.
<Directory/>Options NoneAllowOverride NoneOrder deny,allowDeny from all</Directory>
zodra u acess buiten de web root directoy beperkt, zult u niet in staat zijn om toegang te krijgen tot een bestand in een andere map op uw webserver, krijgt u 404 return code.,
5) mod_evasive gebruiken om de DoS-aanval te weerleggen
Als u uw webserver wilt beschermen tegen Dos (d.w.z. Denial of Service), moet u de module mod_evasive inschakelen. Het is een derde partij module die Dos aanval detecteert en voorkomt dat de aanval van het doen van zo veel schade als het zou doen als links om zijn koers uit te voeren. Het kan hier gedownload worden.,
Download het bovenstaande bestand
6) mod_security gebruiken om de apache-beveiliging te verbeteren
Deze module werkt als een firewall voor Apache en stelt u in staat om het verkeer in real time te monitoren. Het voorkomt ook dat de webserver brute force aanvallen. De mod_security module kan geà nstalleerd worden met de standaard package manager van je distributie.
7) Limiting request size
Apache heeft geen beperking op de totale grootte van het http-verzoek dat kan leiden tot een DoS-aanval., Je kunt de aanvraaggrootte van een Apache directive “LimitRequestBody” beperken met de directory tag. De waarde kan om het even wat van 0 Aan 2 GB (d.w.z. 2147483647 bytes) vanaf uw vereiste worden geplaatst.
<Directory "/var/www/html/uploads"> LimitRequestBody 512000</Directory>
Apache Log Format
Apache logs bieden gedetailleerde informatie die helpen om veelvoorkomende problemen met de server te detecteren.
om toegangslogboeken aan te maken, moet mod_log_configmodule ingeschakeld zijn.
drie richtlijnen beschikbaar in apache configuratiebestand dwz
- TransferLog: een logbestand aanmaken.
- LogFormat: een aangepast formaat opgeven.,
- CustomLog: aanmaken en formatteren van een logbestand.
TransferLog directive is beschikbaar in het apache configuratiebestand en het roteert virtuele host logbestanden volgens ingestelde parameters.
twee typen Apache Log formaat
- gemeenschappelijk Log formaat
- gecombineerd Log formaat.
u kunt ze inschakelen door het apache-configuratiebestand te bewerken, d.w.z. apache2.conf (Debian / ubuntu) of httpd.,conf (RPM based systems) bestand
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
gecombineerd Log Format
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combinedCustomLog log/access_log combined
Hier,
- %H is de externe host
- %l is de identiteit van de gebruiker bepaald door identd
- %u is de gebruikersnaam bepaald door HTTP-authenticatie
- %t is de tijd dat de server klaar is met het verwerken van het verzoek.
- % r is de aanvraagregel van de client. (“GET / HTTP / 1.,0”)
- %>s is de statuscode die van de server naar de client wordt verzonden (500, 404 enz.)
- %b is de grootte van het antwoord op de client (in bytes)
- Referer is de pagina die is gekoppeld aan deze URL.
- User-agent is de browseridentificatiestring.
gecombineerd logboekbestand gegenereerd door Apache:
aangepast logboekbestand maakt een apart logbestand aan voor elke virtuele Host op uw server. Het moet worden gespecificeerd in de virtuele host sectie van het configuratiebestand.,
u kunt de onderstaande virtuele hostconfiguratie zien, gegenereerde log zal aangepast zijn voor die virtuele host en het formaat zal gecombineerd worden.
configureer uw allereerste Production Web Sever
1. Om een actieve productie webserver te hebben, heb je een speciaal knooppunt nodig (fysiek/virtueel of cloud instance) met Linux/Unix, Windows, MacOS etc.
2. De webserver moet een directe netwerkverbinding hebben en er een staticIP-adres op hebben geconfigureerd.
3., Het moet alle modules die nodig zijn voor het uitvoeren van webpagina ‘ s hebben. Als een webserver PHP-pagina ‘ s verwerkt, moet de PHP-module ingeschakeld zijn.
- Het moet ook een goede antivirustoepassing hebben geconfigureerd en uitgevoerd voor het beveiligen van de webserver tegen Malware of virusaanvallen. U moet ook mechanisme om de geconfigureerde antivirus/anti malware applicatie op regelmatige basis bij te werken zonder enige handmatige interventie om maximaal voordeel van hen te krijgen.,
- als u honderden domeinen hebt die gehost moeten worden op uw webserver, moet u beperkingen implementeren op bestandssysteemquota voor elk domein, het aantal databases dat elk domein kan aanmaken, het aantal e-mailaccounts per domein, enz.
- als uw webserver is ingesteld voor shared hosting services, moeten gebruikers op uw webserver worden beperkt. Een shared hosting gebruiker zou de minste gebruikersrechten moeten hebben zodat hij geen belangrijke bestanden beschadigt & de hele server verbreekt., Apache biedt geen dergelijke functionaliteit en heeft verschillende applicaties van derden nodig, aanpassing van het besturingssysteem om dit te bereiken.
- als u een nieuw domein aan uw webserver toevoegt, moet het honderden configuratiebestanden bewerken om alle functies voor het toegevoegde domein in te schakelen.
- als een van de gehoste domeinen een andere PHP-instelling vereist dan de rest van de domeinen, is het implementeren van dit in de Core Apache webserver zeer complex en vereist het in grote mate aanpassen van uw webserver.,
- een productiewebserver heeft een firewall nodig om ongewenst verkeer te blokkeren dat een hoge belasting op uw server kan veroorzaken. Het implementeren van IPTABLE regels met de opdrachtregel is erg complex. Het heeft expertise van core Linux / Unix omgeving nodig om effectieve firewall regels te schrijven voor het blokkeren van ongewenst verkeer. IPTABLE is gebaseerd op de netfilter module; het is een firewall op OS-niveau waarmee een beheerder regels kan maken voor inkomend/uitgaand verkeer op de server.
- een production webserver vereist verschillende toepassingen zoals e-mail, FTP voor het uploaden van bestanden, Domain Name System voor geparkeerde domeinen., Het beheren van al deze applicaties op een kern Linux/Unix systeem vereist expertise over de respectievelijke technologieën.
het beheren van een webserver voor meerdere domeinen is dus een zeer complexe taak en vereist het bewerken van honderden configuratiebestanden, waarbij elke toepassing wordt aangepast om het gewenste resultaat te bereiken. Problemen oplossen elke miss configuratie zal erg moeilijk zijn voor beginners.
de oplossing die Cpanel of soortgelijke software gebruikt
Cpanel biedt een grafische manier om uw webserver te beheren., Het is bedoeld om massa hosting diensten die is eenvoudig te gebruiken en te configureren. cPanel heeft de technische belemmeringen voor toegang tot de hosting en webserver management verminderd. Het maakt complexe taak gemakkelijker, het biedt veel nuttige en eenvoudig te gebruiken web interfaces die gemeenschappelijke systeembeheer taken die nodig zijn om een webserver te bedienen uit te voeren gebruiken.
cPanel stelt zijn eigen softwareversie samen.
Als u uw webserver opnieuw moet compileren, d.w.z., apache op normaal Linux platform, moet je handmatig selecteren / zoeken de module die nodig is. cPanel biedt Easyapache functionaliteit dat is een script gebaseerde webserver compilatiemethode.
Het biedt u niet alleen webservices, maar ook Mail, DNS, FTP en nog veel meer services die nodig zijn voor uw webapplicatie.,
een taak die expertise nodig heeft op core Linux/Unix gebaseerde hosting zoals het installeren van SSLs, het opnieuw compileren van Apache met verschillende PHP-modules, het updaten van webbeveiliging, het configureren van effectieve IPTABLE regels, het toevoegen van ftp-gebruikers, het creëren van e-mailaccounts voor elk domein, het scannen van uw document root met antivirus en het creëren van databases zijn eenvoudig aan te vullen met cPanel.
Het biedt veel scripts die veelvoorkomende beheertaken repareren, installeren en oplossen.
Het biedt een back-up en herstel functionaliteit waardoor het niet nodig is om handmatig bestanden naar back-upopslag te kopiëren., Als u een back-up maakt van uw domein, zal cPanel een tar-bestand maken dat de hoofdmap van het document, e-mailaccounts en e-mails, ftp-accounts, databases, DNS-records en andere toepassingen bevat.
Het biedt ook een robuuste documentatie, en heeft een zeer grote gemeenschap van gebruikers waar u kunt bespreken en oplossing van uw problemen te krijgen.
dus, kan men zeggen dat cPanel is een beste applicatie voor het beheren van uw webserver met de vereiste functies. Het biedt u, eenvoudig te gebruiken interface voor het beheren van uw domein en een mechanisme om complexiteit van het beheren van de Core webserver te voorkomen.,
er zijn veel concurrerende producten voor cPanel zoals Plesk, ISPConfig, Ajenti, Kloxo, Open Panel, Zpanel etc.