Apache ist der beliebteste Webserver. Wenn Sie als Middleware- / System- / Webadministrator arbeiten möchten, müssen Sie damit vertraut sein. Apache HTTP ist ein Open-Source-Webserver für Windows und UNIX.
Vor ein paar Tagen schrieb ich darüber Fragen zum WebSphere-Interviewund viele von Ihnen haben darum gebeten, über Apache Web Server zu schreiben.
Die folgenden Fragen werden häufig in einem Interview vom Anfänger bis zum Experten gestellt. In den meisten Unternehmen wird der Webserver vom Middleware- / Systemadministrator zusammen mit dem Anwendungsserver und anderen Komponenten verwaltet.
Beginnen wir mit Fragen und Antworten zu Interviews in Echtzeit...
1. Wie stoppe / starte ich Apache Web Server?
Sie können den Computer neu starten, indem Sie zum Ordner Apache-Instanz >> bin wechseln und das Skript apachectl ausführen.
./apachectl stop
./apachectl start
Sie können auch ein Skript in /etc/init.d/ verwenden. Meistens wird es entweder "Apache" oder "httpd" genannt.
/etc/init.d/apache stop
/etc/init.d/apache start
Ein anderes Verfahren wäre die Nutzung von Diensten
httpd stop
service httpd start
2. Was ist der Standardport für HTTP und HTTPS?
Der Standardport für HTTP ist 80 und HTTPS 443. Überprüfen Sie die Standardports für andere Anwendungen Hier finden Sie.
3. Können Sie mir den wichtigen Namen der Konfigurationsdatei mitteilen?
httpd.conf ist die Hauptkonfigurationsdatei, die in Apache verwendet wird.
4. Wie überprüfe ich die Version von Apache Web Server?
Es gibt mehrere Möglichkeiten, dies zu finden, aber genauer wäre;
- Melden Sie sich bei einem Webserver an
- Gehen Sie zur Apache-Instanz und zum bin-Ordner
- Habe httpd mit -v ausgeführt, um die Versionsdetails abzurufen.
[root@lab sbin]# ./httpd -v
Server version: Apache/2.2.15 (Unix)
Server built: Jul 18 2016 15:24:00
[root@lab sbin]#
Alternativ können Sie auch die verwenden rpm Befehl zum Überprüfen der installierten Version.
[root@lab ~]# rpm -qa |grep httpd
httpd-2.2.15-54.el6.centos.x86_64
httpd-tools-2.2.15-54.el6.centos.x86_64
[root@lab ~]#
5. Woher wissen, ob ein Webserver ausgeführt wird?
Es gibt mehrere Möglichkeiten, dies zu finden.
- Melden Sie sich bei einem Webserver an und suchen Sie nach dem httpd-Prozess
ps -ef |grep httpd
- Suchen Sie nach Warnungen in Ihrem Dashboard überwachen.
- Überprüfen Sie, ob auf Ihren Apache IP: -Port im Browser zugegriffen werden kann
Beispiel: http://yourapacheserver.com
- Überprüfen Sie, ob die konfigurierte IP und der konfigurierte Port den Server mit überwachen netstat
netstat -anlp |grep 80
6. Wie installiere ich Apache HTTP?
Es gibt drei Möglichkeiten, dies zu installieren.
Die Quellcode - Sie können die Quelle herunterladen und kompilieren.
- Laden Sie die neueste Version von herunter http://httpd.apache.org/download.cgi
- Extrahieren Sie die Quelle mit
tar
Dienstprogramm odergzip
Dienstprogramm abhängig vom Dateityp:.tar
or.tar.gz
tar xvf httpd-1.2.3.tar
gzip -d httpd-1.2.4.tar.gz
- Navigieren Sie zu dem Ort, an dem Sie die Quelle extrahiert haben
cd
Befehl und konfigurieren Sie es mit dem./configure
Befehl auf dem Terminal - Dann kompilieren Sie es mit dem
make
Befehl. - Zum Schluss benutze die
make install
Befehl, um es zu installieren.
Wenn Sie weitere Optionen zur Konfiguration erfahren möchten, können Sie die verwenden configure --help
Befehl.
YUM-Repositories - Wenn Ihr Server mit dem Internet verbunden ist oder über ein internes Repository verfügt, können Sie es mit yum installieren.
yum install httpd
RPM - Sie können die notwendigen herunterladen RPM-Paket und verwenden Sie den Befehl rpm.
rpm -ivh packagename.rpm
7. Wie kann sichergestellt werden, dass Apache nur eine IP-Adresse auf dem Server abhört?
Dies ist häufig erforderlich, wenn Sie mehrere IP-Adressen auf dem Server haben. Um sicherzustellen, dass Apache nur die angegebene IP-Adresse abhört, müssen Sie die IP-Adresse und den Port in der Listen-Direktive explizit angeben.
Ex:
Listen 10.10.10.10:80
8. Wie kann sichergestellt werden, dass Apache mit Nicht-Root- / Niemand-Benutzern ausgeführt wird?
Dies ist durch Hinzufügen der Benutzer- und Gruppenanweisung in der Datei httpd.conf möglich
User apache
Group apache
Das obige Konfigurationsbeispiel stellt sicher, dass es mit dem Benutzer "Apache" beginnt. Sie müssen sicherstellen, dass Benutzer auf dem Server vorhanden sind, bevor Sie ihn konfigurieren.
9. Wie deaktiviere ich die Verzeichnisindizierung?
Sie können "Options -Indexes" in der jeweiligen Verzeichnisanweisung verwenden.
Ex:
<Directory />
Options -Indexes
</Directory>
10. Welches Modul ist erforderlich, damit eine Umleitung möglich ist?
mod_rewrite ist für die Umleitung verantwortlich und muss in der Datei httpd.conf nicht kommentiert werden.
LoadModule rewrite_module modules/mod_rewrite.so
11. Können Sie den Überwachungsport von Standard auf etwas anderes ändern?
Ja, es ist möglich, indem Sie die Portnummer im Feld angeben zuhören Richtlinie.
Beispiel: Damit Apache den 9000-Port auf die IP-Adresse 10.10.10.10 überwacht.
Listen 10.10.10.10:9000
12. Wie sichere ich eine auf Apache Web Server gehostete Website?
Es gibt mehrere Möglichkeiten Sichern Sie den Apache-Webserver Folgendes ist mit eingeschlossen.
- SSL implementieren
- Integration in WAF (Web Application Firewall) wie ModSecurity usw.
- Die Cloud-basierter Sicherheitsanbieter
13. Welche Protokolldateien werden von Apache generiert?
Es werden zwei beliebte Protokolldateien erstellt.
- access.log - alle Anforderungsdetails mit dem Statuscode
- error.log - Erfasst alle Fehler in Apache oder stellt eine Verbindung zum Backend her
14. Wie erstelle ich eine CSR?
Sie können entweder den folgenden OpenSSL-Befehl verwenden oder CSR online generieren.
So erstellen Sie eine neue CSR mit einem privaten Schlüssel
openssl req -out geekflare.csr -newkey rsa:2048 -nodes -keyout geekflare.key
Probieren Sie auch die OpenSSL Spickzettel für mehr Befehle.
15. Was ist virtuelles Hosting?
Mit Virtual Hosting in Apache können Sie mehrere Websites auf einer einzigen Instanz hosten. Sie können entweder erstellen IP-basiert or Namensbasiert auf virtuellem Hosting.
16. Welches Modul wird benötigt, um eine Verbindung zu WebSphere herzustellen?
mod_was_ap22_http.so
muss hinzugefügt werden httpd.conf
Datei zur Integration in IBM WAS.
17. Wie versetze ich die Protokollstufe in den Debug-Modus?
Wird häufig benötigt, wenn Sie das Problem beheben und weitere Details erfassen möchten. Sie können die Protokollierungsstufe in Debug ändern, indem Sie in der Datei httpd.conf Folgendes sicherstellen.
LogLevel debug
18. Welches Modul ist erforderlich, um SSL zu aktivieren?
Das Modul mod_ssl muss vor der SSL-Implementierung auskommentiert werden.
LoadModule auth_basic_module modules/mod_ssl.so
19. Wie lautet der Name des WebLogic-Moduls?
mod_wl_22.so
20. Welche Protokollstufe ist in Apache verfügbar?
Die Standardkonfiguration ist auf „warnen”Ist jedoch auch folgendes möglich.
- debuggen
- Info
- warnen
- beachten
- krit
- Alarm
- emerg
- Fehler
21. Was ist DocumentRoot?
Die DocumentRoot-Direktive ist die Konfiguration, in der Sie den Ordner angeben können, von dem aus die statischen Dateien bereitgestellt werden. Es wird auch als WebRoot bezeichnet.
Default DocumentRoot location is /var/www/html
22. Wie kann ich Kriegs- oder JAVA-Anwendungen in Apache bereitstellen?
Ich fürchte, Apache ist ein Webserver und eine Java-basierte Anwendungsbereitstellung ist damit nicht möglich. Sie können jedoch Java-Anwendungsserver wie WebLogic, WebSphere und JBoss integrieren, auf denen Sie War-Ear-Dateien bereitstellen können.
23. Was ist ein Unterschied zwischen Apache Web Server und Apache Tomcat?
Apache Web ist ein HTTP-Server zum Bereitstellen statischer Inhalte, wobei Tomcat ein Servlet-Container zum Bereitstellen von JSP-Dateien ist.
Sie können Apache HTTP jedoch jederzeit in Tomcat integrieren, je nachdem, ob Sie eine der beiden Optionen auswählen müssen. Wenn Sie einen geeigneten Webserver benötigen, dann Apache HTTP oder Tomcat für JSP-Servlet Container.
24. Wie kann Apache als Proxyserver fungieren?
Sie können ein mod_proxy-Modul als Proxyserver verwenden. Das mod_proxy-Modul kann verwendet werden, um eine Verbindung zum Backend-Server herzustellen Kater, WebLogic, WebSphere usw.
25. Wie konfiguriere ich das Apache-Protokoll, damit es die Zeit erfasst, die für die Bearbeitung einer Anfrage benötigt wird?
Du kannst hinzufügen "%D”In der Datei httpd.conf unter der LogFormat-Direktive, um die Antwortzeit zu erfassen, die für die Bearbeitung der Anforderung benötigt wird. Es wird die Zeit in Mikrosekunden angezeigt.
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D" combined
Starten Sie den Apache-Webserver neu und Sie können die Ergebnisse sehen.
182.19.197.23 - - [02/Oct/2016:10:32:25 +0000] "GET / HTTP/1.1" 403 4961 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36" 1515
182.19.197.23 - - [02/Oct/2016:10:32:25 +0000] "GET /icons/apache_pb.gif HTTP/1.1" 304 - "http://lab.geekflare.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36" 424
182.19.197.23 - - [02/Oct/2016:10:32:25 +0000] "GET /icons/poweredby.png HTTP/1.1" 304 - "http://lab.geekflare.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36" 472
26. Welches Tool verwenden Sie für die Protokollanalyse?
Sie müssen die Wahrheit sagen, aber um Ihnen eine Idee zu geben, die Sie verwenden können GoAccess, SumoLogik oder wenige hier erwähnt.
27. An welchen Webservern haben Sie zusammen mit Apache gearbeitet?
Wiederum sollten Sie die Wahrheit sagen, aber um Sie darauf aufmerksam zu machen, gibt es auf dem Markt viele Webserver, darunter die folgenden.
- Nginx
- Microsoft IIS
- LiteSpeed
- GWS
28. Wie überprüfe ich die Datei httpd.conf, um sicherzustellen, dass kein Konfigurationssyntaxfehler vorliegt?
httpd –t hilft Ihnen bei der Überprüfung der Syntax.
[root@lab httpd]# /usr/sbin/httpd -t
Syntax OK
[root@lab httpd]#
Alternativ können Sie auch den Befehl apachectl verwenden.
[root@lab ~]# /usr/sbin/apachectl configtest
Syntax OK
[root@lab ~]#
29. Wie führe ich einen Apache-Leistungsbenchmark durch?
Sie können ein Werkzeug wie verwenden ApacheBench, SIEGE um den Lasttest auf Webservern einschließlich Apache durchzuführen. Eine weitere Möglichkeit, Stress auszuführen Online-Test um zu sehen, wie sich die Webanwendung insgesamt unter Last verhält.
30. Wie bekomme ich Unterstützung für Apache Web Server, wenn etwas nicht stimmt?
Apache ist ein Open Source-Webserver, daher gibt es keine Unterstützung auf Unternehmensebene. Sie können jedoch a erhöhen Fehlerbericht oder stellen Sie eine Frage zum Stapelüberlauf.
31. Wie kann sichergestellt werden, dass der Webserver nach einem Neustart des Servers gestartet wird?
Wenn Sie Linux ausführen, können Sie ein Skript in /etc/init.d/ einfügen und aktivieren Starten Sie beim Booten mit dem Befehl chkconfig
Angenommen, Sie erstellen eine Datei mit dem Namen Apache und unter /etc/init.d setzen
chkconfig --add apache
chkconfig apache on
Stellen Sie unter Windows sicher, dass der Starttyp "Automatisch" ausgewählt ist.
32. Was ist ein Unterschied zwischen Apache und Nginx Webserver?
Beide sind als Webserver kategorisiert und hier sind einige der Hauptunterschiede.
- Nginx ist ein ereignisbasierter Webserver, auf dem Apache prozessbasiert ist
- Nginx ist bekannt für eine bessere Leistung als Apache
- Apache unterstützt eine Vielzahl von Betriebssystemen, in denen Nginx OpenVMS und IBMi nicht unterstützt
- Apache verfügt über eine große Anzahl von Modulen, die in den Backend-Anwendungsserver integriert sind, wo Nginx noch aufholt
- Nginx ist leichtgewichtig und erobert schnell Marktanteile. Wenn Sie neu bei Nginx sind, könnten Sie daran interessiert sein, meine Artikel über Nginx zu lesen.
33. Wie würden Sie den Apachen töten, wenn Graceful-Stop nicht funktioniert?
Wenn Sie unter Linux ausgeführt werden, können Sie den Befehl kill verwenden.
Ermitteln Sie die PID von Apache mithilfe von ps -ef | grep http
Dann töte es
kill $PIDNUMBER
Wenn normales Töten nicht funktioniert, versuchen Sie es mit -9
kill -9 $PIDNUMBER
Unter Windows beenden Sie die Apache-Aufgabe im Task-Manager.
34. Wie finde ich die Datei httpd.conf, wenn Sie den Installationsort nicht kennen?
Unter Linux können Sie verwenden Befehl find.
Nehmen wir an, Sie wissen, dass es sich im Dateisystem / apps befinden muss, dann können Sie den folgenden Befehl verwenden.
find /apps -name httpd.conf
Wenn Sie sich jedoch nicht sicher sind, welches Dateisystem Sie verwenden können, können Sie das Dateisystem finden. Beachten Sie jedoch, dass es aufgrund der Gesamtgröße des Dateisystems sehr lange dauern kann.
find / -name httpd.conf
35. Welche verschiedenen Varianten des Apache-Webservers kennen Sie?
- IBM HTTP Server - bekannt als IHS und häufig mit IBM WebSphere Application Server verwendet
- Oracle HTTP Server - bekannt als OHS, wird häufig mit Oracle Weblogic-Servern verwendet
36. Wo befindet sich der Apache im Rechenzentrum?
Sie können dies anhand Ihrer Erfahrungen erklären. In der Regel handelt es sich jedoch bei Anwendungen mit Internetverbindung um das Internet-DMZ-Netzwerk und das Intranet-Kernnetzwerk.
Dies hängt jedoch wiederum von der Anwendung / Organisation ab.
37. Wie verstecke ich Serverversionsdetails im HTTP-Antwortheader?
Fügen Sie Folgendes in die Datei httpd.conf ein und starten Sie den Webserver neu
ServerTokens Prod
ServerSignature Off
Dadurch wird die Version ausgeblendet und der Server als "Apache" Nur.
38. Was bedeuten 200, 403 und 503 HTTP-Fehlercodes?
- 200 - Inhalt gefunden und serviert OK
- 403 - versucht, auf eingeschränkte Dateien / Ordner zuzugreifen
- 503 - Der Server ist zu beschäftigt, um die Anforderung zu bedienen, und mit anderen Worten - der Dienst ist nicht verfügbar.
- Verweisen Infografik zum HTTP-Antwortcode für mehr.
39. Wie deaktiviere ich Trace-HTTP-Anforderungen?
Fügen Sie Folgendes in die Datei httpd.conf ein und starten Sie die Instanz neu
TraceEnable off
40. Wie kann ein Problem mit Portkonflikten behoben werden?
netstat Dies ist hilfreich, um das Problem mit dem Portkonflikt zu beheben. Wenn mehrere Instanzen auf einem einzelnen Server ausgeführt werden, wird empfohlen, die absolute IP: Port für die Listen-Direktive zu konfigurieren.
41. Wie installiere ich das Modul eines Drittanbieters?
Sie können Gebrauch machen Apache-Toolbox. Nach dem Herunterladen extrahieren Sie es mit dem tar
Dienstprogramm.
tar -xf Apachetoolbox-1.5.72.tar.gz
Navigieren Sie zu dem Ordner Apachetoolbox-1.5.72
Verwendung der cd
Befehl und führen Sie den folgenden Befehl aus, um Module für Ihren Apache-Server auszuwählen.
./install.sh
Es bietet Module wie mod_ip_forwarding
, mod_auth_mysql
und mod_auth_samba
mit dem Apache-Webserver zu kompilieren. Obwohl Sie diese Module manuell einbinden können, ist dies mit der Apache Toolbox einfacher.
42. Wie kann man virtuellen Hosts mehrere Namen zuweisen?
Sie können die verwenden ServerAlias
Richtlinie wie unten gezeigt.
ServerName example.com
ServerAlias awesome.com fantastic.com
43. Wie kann die Upload-Größe begrenzt werden?
Ich habe eine Webanwendung, mit der Benutzer Dateien wie Word-Dokumente, PDF usw. hochladen können. Wie beschränke ich das Hochladen von Dateien durch Benutzer?
Sie können die verwenden LimitRequestBody
Anweisung zur Begrenzung der Größe von Upload-Dateien.
<Directory "usr/local/apache2/uploads">
LimitRequestBody 9000
</Directory>
Der dem zugewiesene Wert LimitRequestBody
ermöglicht es Apache, Datei-Uploads von 9000 Bytes durch Benutzer zu akzeptieren und zu speichern. Sie können den Wert je nach Anforderung anpassen.
44. Wie kann der Zugriff durch IPs eingeschränkt werden?
Möglicherweise möchten Sie, dass ein Teil des Kontextstamms über zulässige IPs zugänglich ist. Dazu können Sie nutzen mod_authz_core or mod_authz_host Module, um den Zugriff mit dem zu beschränken Require
Richtlinie.
Require 10.0.0.2 10.0.0.4 192.168.34.23 192.168.34.23
Auf diese Weise wird Apache Anfragen nur dann bearbeiten, wenn Anfragen von den aufgelisteten IPs gestellt werden.
Sie müssen die angeben Require
Direktive innerhalb des Verzeichnisses, in dem Sie den Zugriff auf Ressourcen zulassen oder verweigern möchten.
Fazit
Ich hoffe, die obigen Fragen und Antworten helfen Ihnen, sich auf einen Webserver-Administrator vorzubereiten Interview.