Was ist Apache?
Apache ist eine bemerkenswerte Anwendungssoftware. Es ist die weltweit am weitesten verbreitete Webserver-Anwendung mit einem Anteil von mehr als 50% am kommerziellen Webserver-Markt. Apache ist die am häufigsten verwendete Webserveranwendung in Unix-ähnlichen Betriebssystemen, kann jedoch auf fast allen Plattformen wie Windows, OS X, OS/2 usw. verwendet werden., Das Wort Apache stammt aus dem Namen des Stammes der amerikanischen Ureinwohner „Apache“, der für seine Fähigkeiten in der Kriegsführung und Strategieherstellung bekannt ist.
Es ist eine modulare, prozessbasierte Webserveranwendung, die bei jeder gleichzeitigen Verbindung einen neuen Thread erstellt. Es unterstützt eine Reihe von Funktionen; Viele von ihnen werden als separate Module kompiliert und erweitern ihre Kernfunktionalität und können alles von serverseitiger Programmiersprachenunterstützung bis hin zum Authentifizierungsmechanismus bereitstellen. Virtuelles Hosting ist eine solche Funktion, mit der ein einzelner Apache-Webserver eine Reihe verschiedener Websites bedienen kann.,
So installieren Sie Apache
Es gibt zahlreiche Möglichkeiten, das Paket oder die Anwendung zu installieren. Es gibt unten aufgeführt –
- Eine der Funktionen dieser Open-Source-Webanwendung ist, dass jeder Installer gemäß seiner eigenen Umgebung erstellen kann. Dies hat verschiedene Anbieter wie Debian, Red Hat, FreeBSD, Suse usw. zugelassen. so passen Sie den Speicherort und die Konfiguration von Apache unter Berücksichtigung anderer installierter Anwendungen und des Basis-Betriebssystems an.,
- Abgesehen von der Installation von einem herstellerbasierten Installationsprogramm besteht immer die Möglichkeit, es aus dem Quellcode zu erstellen und zu installieren. Die Installation von Apache aus der Quelldatei ist plattformunabhängig & funktioniert für alle Betriebssysteme.
Der Apache-Webserver ist eine modulare Anwendung, bei der der Administrator die erforderliche Funktionalität auswählen und verschiedene Module gemäß seinen Anforderungen installieren kann.,
Alle Module können als dynamische gemeinsam genutzte Objekte kompiliert werden (DSO ist eine Objektdatei, die während der Ausführung von mehreren Apps gemeinsam genutzt werden kann), die getrennt von der Apache-Hauptdatei vorhanden ist. Der DSO-Ansatz wird dringend empfohlen, da er das Hinzufügen/Entfernen/Aktualisieren von Modulen aus der Serverkonfiguration sehr einfach macht.
Installieren Sie Apache: Linux Platform
auf Red Hat-oder RPM-basierten Systemen
Wenn Sie eine Rpm-basierte Linux-Distribution verwenden (RedHat Package Manager ist ein Dienstprogramm zum Installieren von Anwendungen auf Linux-Systemen), dh, Red Hat, Fedora, CentOS, Suse, können Sie diese Anwendung entweder durch herstellerspezifische Paket-Manager installieren oder direkt die RPM-Datei aus dem verfügbaren Quell-Tarball zu bauen.
Sie können Apache über den Standard-Paketmanager installieren, der auf allen Red Hat-basierten Distributionen wie CentOS, Red Hat und Fedora verfügbar ist.
# yum install httpd
Der apache source tarball konnte mit dem folgenden Befehl in eine RPM-Datei konvertiert werden.
# rpmbuild -tb httpd-2.4.x.tar.bz2
Zum Erstellen muss das-devel-Paket auf Ihrem Server installiert sein .rpm-Datei aus der Quelle.,
Sobald Sie die Quelldatei in ein RPM-Installationsprogramm konvertiert haben, können Sie den folgenden Befehl verwenden, um Apache zu installieren.
# rpm –ivh httpd-2.4.4-3.1.x86_64.rpm
Nach der Installation startet der Server nicht automatisch, um den Dienst zu starten, müssen Sie einen der folgenden Befehle in Fedora, CentOS oder Red Hat verwenden.
# /usr/sbin/apachectl start# service httpd start# /etc/init.d/httpd start
Apache von der Quelle installieren
apache von der Quelle installieren erfordert die Installation des Pakets –devel auf Ihrem Server. .Sie können die neueste verfügbare Version von Apache finden, Sie können es hier herunterladen ., Sobald Sie die Quelldatei heruntergeladen haben, verschieben Sie sie in den Ordner /usr/local/src.
Um alle Konfigurationsoptionen für Apache zu sehen, können Sie verwenden ./configure –help-option. Die häufigste Konfigurationsoption ist-prefix={install directory name}.
Das obige Beispiel zeigt die Kompilierung von Apache im Verzeichnis /usr/local/apache mit der DSO-Funktion. Die Option-enable-so kann erforderliche Module zur Laufzeit über den DSO-Mechanismus in Apache laden, anstatt eine Neukompilierung zu erfordern.,
Sobald die Installation abgeschlossen ist, können Sie die Standardseite des Webservers mit Ihrem bevorzugten Browser durchsuchen. Wenn die Firewall auf Ihrem Server aktiviert ist, müssen Sie eine Ausnahme für Port 80 in Ihrer Betriebssystemfirewall machen. Sie können den folgenden Befehl verwenden, um Port 80 zu öffnen.
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
Service iptables save
Sie können den Standard-Apache2-Begrüßungsbildschirm anzeigen, indem Sie die IP-Adresse Ihres Servers durchsuchen.
Was ist ein Virtueller Host?
Ein Apache-Webserver kann mehrere Websites auf DEMSELBEN Server hosten., Sie benötigen keine separate Servermaschine und Apache-Software für jede Website. Dies kann mit dem Konzept des virtuellen Hosts oder VHost erreicht werden.
Jede Domäne, die Sie auf Ihrem Webserver hosten möchten, hat einen separaten Eintrag in der Apache-Konfigurationsdatei.
Typen von Apache Virtualhost
- Namenbasierter virtueller Host
- Adressbasierter oder IP-basierter virtueller Host und.
Name-based Virtual Host
Name based virtual hosting verwendet wird, um host mehrere virtuelle-sites auf einer einzigen IP-Adresse.,
Um namenbasiertes virtuelles Hosting zu konfigurieren, müssen Sie die IP-Adresse festlegen, auf der Sie die Apache-Anforderungen für alle gewünschten Websites empfangen möchten. Sie können dies mit der NameVirutalHost-Direktive innerhalb der Apache-Konfiguration tun, dh httpd.conf/apache2.conf-Datei.
Apache virtual host-Beispiel:
Sie können so viele virtuelle hosts, wie pro Ihre Anforderung., Sie können Ihre Webkonfigurationsdateien überprüfen mit:
#httpd –tSyntax OK
Wenn die Konfigurationsdatei eine falsche Syntax hat, wird ein Fehler ausgegeben
IP-basierter virtueller Host
Um IP-basiertes virtuelles Hosting einzurichten, benötigen Sie mehr als eine auf Ihrem Server konfigurierte IP-Adresse. Die Anzahl der vhost Apache hängt also davon abAnzahl der auf Ihrem Server konfigurierten IP-Adresse. Wenn Ihr Server über 10 IP-Adressen verfügt, können Sie 10 IP-basierte virtuelle Hosts erstellen.
Im obigen Diagramm zwei Webseiten Beispiel1.,com und example2.com wurden verschiedene IPs zugewiesen und verwenden IP-basiertes virtuelles Hosting.
Was Apache braucht PHP-Datei auszuführen?
Wenn Sie PHP-Dateien auf Apache ausführen, muss mod_php auf Ihrem Server aktiviert sein. Es erlaubt Apache zu interpretieren .Php-Dateien. Es verfügt über PHP-Handler, die den PHP-Code in Apache interpretieren und HTML an Ihren Webserver senden.
Wenn mod_php auf Ihrem Server aktiviert ist, haben Sie eine Datei namens php.conf in /etc/httpd/conf.d/ – Verzeichnis., Sie können es auch überprüfen mit:
httpd -M | grep "php5_module"
Die Ausgabe wird ähnlich sein wie:
PHP-Handler in Apache
- mod_php
- CGI
- FastCGI
- suPHP
mod_phpist der älteste PHP-Handler, macht PHP Teil von Apache und ruft keinen externen PHP-Prozess auf. Dieses Modul ist standardmäßig in jedem Linux-Distributions-Repository installiert, sodass das Aktivieren/Deaktivieren dieses Moduls sehr einfach ist.,
Wenn Sie FastCGI als PHP-Handler verwenden, können Sie mehrere PHP-Versionen festlegen, die von verschiedenen Konten auf Ihrem Server verwendet werden sollen.
FastCGI dh mod_fastcgi ist eine Erweiterung von mod_fcgid, wobei as mod_fcgid eine Hochleistungsalternative von CGI ist, dh mod_cgi . Es startet eine ausreichende Anzahl von Instanzen von CGI, um gleichzeitige Webanforderungen zu verarbeiten. Es verwendet auch suexec, um verschiedene Benutzer mit ihren eigenen Instanzen von PHP zu unterstützen und die Websicherheit zu verbessern.
Wenn Ruby-Dateien auf Apache ausgeführt werden, muss mod_ruby aktiviert sein. Apache kann Ruby-Dateien auch über FastCGI verarbeiten., Es ist möglich, mehrere Versionen von Ruby mit Hilfe von mod_fcgid dh FastCGI zu verwenden.
Sie können Apache Passenger auch installieren und Apache so konfigurieren, dass es zum Bereitstellen von Ruby-Seiten verwendet wird.
(Phusion Passenger auch bekannt als „passenger“ ist ein kostenloses Webservermodul, das für die Integration in Apache und Nginx entwickelt wurde)
Schritte zur Installation von mod_ruby auf Ihrem Server –
So führen Sie Ruby mit Apache
aus Wir müssen das Modul mod_ruby zur Apache-Konfiguration hinzufügen, dh / etc/httpd / conf.d/Rubin.conf und fügen Sie die folgende Zeile hinzu.
LoadModule ruby_module Module/mod_ruby.,wenn Sie also diese Module aktivieren oder deaktivieren möchten, müssen Sie die Apache-Konfigurationsdatei bearbeiten und diese Module kommentieren oder auskommentieren, wenn der Webserver bereits mit diesen Modulen kompiliert ist.
So sichern Sie den Apache-Webserver
Die Sicherung Ihres Webservers ist sehr wichtig.
Dies sind häufige Dinge, die die Sicherheit Ihrer Apache-Webserver verbessern.,
1) Apache-Version und Betriebssysteminformationen ausblenden:
Apache zeigt seine Version und den Namen des Betriebssystems fehlerhaft an, wie im folgenden Screenshot gezeigt.
Ein Hacker kann diese Informationen verwenden, um einen Angriff mit den öffentlich verfügbaren Schwachstellen in der jeweiligen Version des Servers oder Betriebssystems zu starten.
Um zu verhindern, dass Apache webserverfromdisplaying diese Informationen, wir müssen ändern
„server signature“ Option in der Apache-Konfigurationsdatei., Standardmäßig ist es „on“, wir müssen es“off“ einstellen.
vim /etc/httpd/conf/httpd.conf
ServerSignature OffServerTokens Prod
Wir haben auch“ ServerTokens Prod “ festgelegt, das den Webserver anweist, nur Apache zurückzugeben und die Haupt-und Nebenversion des Betriebssystems zu unterdrücken
Nachdem Sie die Konfigurationsdatei geändert haben, müssen Sie Ihren Apache-Webserver neu starten/neu laden, um ihn wirksam zu machen.,
service httpd restart
2) Deaktivieren Sie die Verzeichnisliste
Wenn Ihr Dokumentstammverzeichnis keine Indexdatei hat, zeigt Ihr Apache-Webserver standardmäßig den gesamten Inhalt des Dokumentstammverzeichnisses an.
Diese Funktion kann für ein bestimmtes Verzeichnis über die in der Apache-Konfigurationsdatei verfügbare“ options directive “ deaktiviert werden.,
<Directory /var/www/html> Options -Indexes</Directory>
3) Deaktivieren unnötiger Module
Es empfiehlt sich, alle nicht benötigten Module zu deaktivieren, die nicht verwendet werden. Sie können die Liste der aktivierten Module sehen, die in Ihrer Apache-Konfigurationsdatei verfügbar sind –
Viele der aufgelisteten Module können deaktiviert werdenmod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, da sie kaum von Produktionswebservern verwendet werden.
vi /etc/httpd/conf/httpd.conf#LoadModule auth_digest_module modules/mod_auth_digest.so
Sobald Sie das Modul kommentiert haben, speichern Sie die Datei.,
Starten Sie Apache-Dienste mit folgendem Befehl neu.
/etc/init.d/httpd restart
4) Zugriff auf Dateien außerhalb des Webstammverzeichnisses einschränken
Wenn Sie sicherstellen möchten, dass Dateien außerhalb des Webstammverzeichnisses nicht zugänglich sind, müssen Sie sicherstellen, dass das Verzeichnis mit den Optionen“ Zulassen „und“ Verweigern “ in Ihrer Webserver-Konfigurationsdatei eingeschränkt ist.
<Directory/>Options NoneAllowOverride NoneOrder deny,allowDeny from all</Directory>
Sobald Sie den Zugriff außerhalb des Webstammverzeichnisses einschränken, können Sie auf keine Datei in einem anderen Ordner auf Ihrem Webserver zugreifen Server, Sie erhalten 404 Rückgabecode.,
5) Verwenden von mod_evasive zum Widerlegen des DoS-Angriffs
Wenn Sie Ihren Webserver vor Dos schützen möchten (dh Denial of Service), müssen Sie das Modul mod_evasive aktivieren. Es ist ein Drittanbieter-Modul, das Dos-Angriffe erkennt und verhindert, dass der Angriff so viel Schaden anrichtet, wie es tun würde, wenn er seinen Kurs fortsetzen würde. Es könnte hier heruntergeladen werden.,
Laden Sie die obige Datei herunter
6) Verwenden von mod_security zur Verbesserung der Apache-Sicherheit
Dieses Modul funktioniert als Firewall für Apache und ermöglicht die Überwachung des Datenverkehrs in Echtzeit. Es verhindert auch, dass der Webserver Brute-Force-Angriffe. Das Modul mod_security kann mit dem Standardpaketmanager Ihrer Distribution installiert werden.
7) Begrenzung der Anforderungsgröße
Apache hat keine Einschränkung der Gesamtgröße der http-Anforderung, die zu einem DoS-Angriff führen könnte., Sie können die Anforderungsgröße einer Apache-Direktive „LimitRequestBody“ mit dem Verzeichnis-Tag begrenzen. Der Wert kann je nach Anforderung zwischen 0 und 2 GB (dh 2147483647 Byte) festgelegt werden.
<Directory "/var/www/html/uploads"> LimitRequestBody 512000</Directory>
Apache-Protokollformat
Apache-Protokolle liefern detaillierte Informationen, die helfen, häufige Probleme mit dem Server zu erkennen.
Um Zugriffsprotokolle zu erstellen, muss mod_log_configmodule aktiviert sein.
Drei Direktiven in der Apache-Konfigurationsdatei verfügbar, dh
- TransferLog: Erstellen einer Protokolldatei.
- LogFormat: Angabe eines benutzerdefinierten Formats.,
- CustomLog: Erstellen und Formatieren einer Protokolldatei.
Die TransferLog-Direktive ist in der Apache-Konfigurationsdatei verfügbar und dreht die Protokolldateien des virtuellen Hosts gemäß den festgelegten Parametern.
Zwei Arten von Apache-Protokollformat
- Gemeinsames Protokollformat
- Kombiniertes Protokollformat.
Sie können sie aktivieren, indem Sie die Apache-Konfigurationsdatei, dh apache2, bearbeiten.conf (Debian/ubuntu) oder httpd.,conf (rpm based systems) file
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
Combined Log Format
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combinedCustomLog log/access_log combined
- %h is the remote host
- %l is the identität des Benutzers bestimmt durch identd
- %u ist der Benutzername bestimmt durch HTTP-Authentifizierung
- %t ist der Zeitpunkt, zu dem der Server die Verarbeitung der Anforderung beendet hat.
- %r ist die Anforderungszeile vom Client. („GET / HTTP/1.,0“)
- %>s ist der Statuscode, der vom Server an den Client gesendet wird (500, 404 usw.)
- %b ist die Größe der Antwort auf den Client (in Bytes)
- Referer ist die Seite, die mit dieser URL verknüpft ist.
- User-agent ist die browser-Identifikation-string.
Kombiniertes Protokoll, das von Apache generiert wird:
Benutzerdefiniertes Protokoll erstellt eine separate Protokolldatei für jeden virtuellen Host auf Ihrem Server. Es muss im Abschnitt virtueller Host der Konfigurationsdatei angegeben werden.,
Sie können die unten erwähnte Konfiguration des virtuellen Hosts sehen, das generierte Protokoll wird für diesen virtuellen Host angepasst und das Format wird kombiniert.
Konfigurieren Sie Ihre erste Produktion Web-Sever
1. Um einen Produktionswebserver ausführen zu können, benötigen Sie einen dedizierten Knoten (physische/virtuelle oder Cloud-Instanz), auf dem Linux/Unix, Windows, macOS usw. ausgeführt werden.
2. Der Webserver muss über eine direkte Netzwerkverbindung und eine darauf konfigurierte staticIP-Adresse verfügen.
3., Es muss über alle Module verfügen, die zum Ausführen von Webseiten erforderlich sind. Wenn ein Webserver PHP-Seiten verarbeitet, muss das PHP-Modul aktiviert sein.
- Außerdem muss eine gute Antivirenanwendung konfiguriert und ausgeführt werden, um den Webserver vor Malware-oder Virenangriffen zu schützen. Sie benötigen außerdem einen Mechanismus, um die konfigurierte Antiviren – /Anti-Malware-Anwendung regelmäßig ohne manuellen Eingriff zu aktualisieren, um den maximalen Nutzen daraus zu ziehen.,
- Wenn Hunderte von Domänen auf Ihrem Webserver gehostet werden sollen, müssen Sie Einschränkungen für das Dateisystemkontingent für jede Domäne, die Anzahl der Datenbanken, die jede Domäne erstellen kann, die Anzahl der E-Mail-Konten pro Domäne usw. implementieren.
- Wenn Ihr Webserver für Shared Hosting Services eingerichtet wurde, müssen Benutzer auf Ihrem Webserver eingeschränkt werden. Ein Shared-Hosting-Benutzer sollte über die geringsten Benutzerrechte verfügen, damit er wichtige Dateien nicht beschädigt & Unterbrechen Sie den gesamten Server., Apache bietet keine solche Funktionalität und benötigt verschiedene Anwendungen von Drittanbietern, Anpassung des Betriebssystems, um dies zu erreichen.
- Wenn Sie eine neue Domäne auf Ihrem Webserver hinzufügen, müssen Hunderte von Konfigurationsdateien bearbeitet werden, um alle Funktionen für die hinzugefügte Domäne zu aktivieren.
- Wenn eine der gehosteten Domänen eine andere PHP-Einstellung als die übrigen Domänen erfordert, ist die Implementierung in den Apache-Kernwebserver sehr komplex und erfordert in hohem Maße eine Anpassung Ihres Webservers.,
- Ein Produktionswebserver benötigt eine Firewall, um unerwünschten Datenverkehr zu blockieren, der zu einer hohen Belastung Ihres Servers führen kann. Die Implementierung von IPTABLE-Regeln mit der Befehlszeile ist sehr komplex. Es benötigt Expertise der Kern-Linux / Unix-Umgebung, um effektive Firewall-Regeln zum Blockieren unerwünschten Datenverkehrs zu schreiben. IPTABLE basiert auf dem Netfilter-Modul; Es ist eine Firewall auf Betriebssystemebene, mit der ein Administrator Regeln für eingehenden/ausgehenden Datenverkehr auf dem Server erstellen kann.
- Ein Produktions-Webserver erfordert verschiedene Anwendungen wie E-Mail, FTP zum Hochladen von Dateien, Domain Name System für geparkte Domains., Die Verwaltung all dieser Anwendungen auf einem Linux/Unix-Kernsystem erfordert Fachwissen über die jeweiligen Technologien.
Man kann also sagen, dass die Verwaltung eines Webservers für mehrere Domänen eine sehr komplexe Aufgabe ist und Hunderte von Konfigurationsdateien bearbeiten und jede Anwendung anpassen muss, um das gewünschte Ergebnis zu erzielen. Die Fehlerbehebung bei Fehlerkonfigurationen ist für Anfänger sehr schwierig.
Die Lösung mit Cpanel oder ähnlicher Software
Cpanel bietet eine grafische Möglichkeit zur Verwaltung Ihres Webservers., Es soll Massenhosting-Dienste bereitstellen, die einfach zu bedienen und zu konfigurieren sind. cPanel hat die technischen Barrieren für den Eintritt in die Hosting-und Web-Server-Management reduziert. Es erleichtert komplexe Aufgaben und bietet viele nützliche und einfach zu bedienende Webschnittstellen, die allgemeine Systemadministrationsaufgaben ausführen, die für den Betrieb eines Webservers erforderlich sind.
cPanel kompiliert eine eigene Softwareversion.
Wenn Sie Ihren Webserver neu kompilieren müssen, dh, apache auf einer normalen Linux-Plattform müssen Sie das erforderliche Modul manuell auswählen/durchsuchen. cPanel bietet Easyapache-Funktionalität, die eine Skript – basierte Webserver-Kompilierungsmethode ist.
Es bietet Ihnen nicht nur Webdienste, sondern auch E-Mails, DNS, FTP und viele weitere Dienste, die für Ihre Webanwendung erforderlich sind.,
Eine Aufgabe, die Know-how auf Kern Linux/Unix-basierten Hosting wie die Installation von SSLs benötigt, Apache mit verschiedenen PHP-Modulen neu zu kompilieren, Web-Sicherheit zu aktualisieren, effektive IPTABLE Regeln konfigurieren, FTP-Benutzer hinzufügen, E-Mail-Konten für jede Domäne erstellen, Scannen Sie Ihr Dokument Root mit Antivirus und Erstellen von Datenbanken sind einfach mit cPanel abzuschließen.
Es bietet viele Skripte, die häufige Verwaltungsaufgaben beheben, installieren und beheben.
Es bietet eine Sicherungs – und Wiederherstellungsfunktion, sodass Dateien nicht manuell in den Sicherungsspeicher kopiert werden müssen., Wenn Sie Ihre Domain sichern, erstellt cPanel eine TAR-Datei, die Dokumentstammordner, E-Mail-Konten und E-Mails, FTP-Konten, Datenbanken, DNS-Einträge und andere Anwendungen enthält.
Es bietet auch eine robuste Dokumentation und verfügt über eine sehr große Community von Benutzern, in der Sie Ihre Probleme diskutieren und lösen können.
Man kann also sagen, dass cPanel eine beste Anwendung für die Verwaltung Ihres Webservers mit den erforderlichen Funktionen ist. Es bietet Ihnen eine einfach zu bedienende Benutzeroberfläche für die Verwaltung Ihrer Domain und einen Mechanismus, um die Komplexität der Verwaltung des Core-Webservers zu vermeiden.,
Es gibt viele konkurrierende Produkte für cPanel wie Plesk,ISPConfig, Ajenti, Kloxo, Open Panel, Zpanel usw.