Apache est le serveur Web le plus populaire, et si vous avez l'intention de travailler en tant qu'administrateur middleware / système / Web, vous devez le connaître. Apache HTTP est un serveur Web open source pour Windows et UNIX.
Il y a quelques jours, j'ai écrit sur Questions d'entretiens chez WebSphere, et beaucoup d'entre vous ont demandé d'écrire sur Apache Web Server, alors c'est parti.
Les questions suivantes sont souvent posées lors d'un entretien du niveau débutant au niveau expert. La plupart des organisations auront un serveur Web géré par un administrateur middleware / système avec un serveur d'applications et d'autres composants.
Commençons par questions et réponses d'entretien en temps réel...
1. Comment arrêter / démarrer le serveur Web Apache?
Vous pouvez redémarrer en accédant à l'emplacement de l'instance Apache >> dossier bin et exécuter le script apachectl.
./apachectl stop
./apachectl start
Vous pouvez également utiliser un script situé dans /etc/init.d/. La plupart du temps, il sera nommé «apache» ou «httpd»
/etc/init.d/apache stop
/etc/init.d/apache start
Une autre procédure consisterait à utiliser des services
httpd stop
service httpd start
2. Quel est le port par défaut pour HTTP et HTTPS?
Le port par défaut pour HTTP est 80 et HTTPS 443. Vérifier les ports par défaut pour d'autres applications énumérées ici.
3. Pouvez-vous me dire le nom du fichier de configuration important?
httpd.conf est le principal fichier de configuration utilisé dans Apache.
4. Comment vérifier la version du serveur Web Apache en cours d'exécution?
Il existe plusieurs façons de trouver cela, mais ce serait plus précisément;
- Connectez-vous à un serveur Web
- Accédez à l'instance Apache et au dossier bin
- Exécuté httpd avec -v pour obtenir les détails de la version.
[root@lab sbin]# ./httpd -v
Server version: Apache/2.2.15 (Unix)
Server built: Jul 18 2016 15:24:00
[root@lab sbin]#
Vous pouvez également utiliser le rpm commande pour vérifier la version installée.
[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. Comment savoir si un serveur Web est en cours d'exécution?
Il existe plusieurs façons de trouver cela.
- Connectez-vous à un serveur Web et grep pour le processus «httpd»
ps -ef |grep httpd
- Recherchez toute alerte dans votre tableau de bord de surveillance.
- Vérifiez si votre IP Apache: le port est accessible dans le navigateur
Ex : http://votreserveurapache.com
- Vérifiez si l'IP et le port configurés écoutent sur le serveur avec netstat
netstat -anlp |grep 80
6. Comment installer Apache HTTP?
Il existe trois façons possibles de l'installer.
En utilisant code source - vous pouvez télécharger la source et la compiler.
- Téléchargez la dernière version sur http://httpd.apache.org/download.cgi
- Extraire la source avec
tar
utilitaire ougzip
utilitaire selon le type de fichier:.tar
or.tar.gz
tar xvf httpd-1.2.3.tar
gzip -d httpd-1.2.4.tar.gz
- Accédez à l'endroit où vous avez extrait la source via le
cd
et configurez-la à l'aide de la./configure
commande sur le terminal - Puis compilez-le en utilisant le
make
commander. - Enfin, utilisez le
make install
commande pour l'installer.
Si vous souhaitez en savoir plus sur la façon de le configurer, vous pouvez utiliser le configure --help
commander.
Dépôts YUM - si votre serveur est connecté à Internet ou possède un référentiel interne, vous pouvez utiliser yum pour l'installer.
yum install httpd
RPM - Vous pouvez télécharger le nécessaire Paquet RPM et utilisez la commande rpm.
rpm -ivh packagename.rpm
7. Comment s'assurer qu'Apache n'écoute qu'une seule adresse IP sur le serveur?
Ceci est souvent nécessaire lorsque vous avez plusieurs adresses IP sur le serveur. Pour vous assurer qu'Apache n'écoute que sur l'IP spécifiée, vous devez mentionner explicitement l'IP et le port dans la directive Listen.
Ex:
Listen 10.10.10.10:80
8. Comment s'assurer qu'Apache fonctionne avec un utilisateur non root / personne?
Ceci est faisable en ajoutant la directive User & Group dans le fichier httpd.conf
User apache
Group apache
L'exemple de configuration ci-dessus garantira qu'il démarre avec l'utilisateur «apache». Vous devez vous assurer que les utilisateurs existent sur le serveur avant de le configurer.
9. Comment désactiver l'indexation des répertoires?
Vous pouvez utiliser «Options -Indexes» dans la directive de répertoire correspondante.
Ex:
<Directory />
Options -Indexes
</Directory>
10. Quel module est requis pour que la redirection soit possible?
mod_rewrite est responsable de la redirection, et ceci doit être décommenté dans le fichier httpd.conf.
LoadModule rewrite_module modules/mod_rewrite.so
11. Pouvez-vous changer le port d'écoute par défaut à autre chose?
Oui, c'est possible en spécifiant le numéro de port dans le Écoutez Directive.
Ex: pour faire écouter Apache sur le port 9000 à l'adresse IP 10.10.10.10.
Listen 10.10.10.10:9000
12. Comment sécuriser un site Web hébergé sur Apache Web Server?
Il y a plusieurs façons de sécuriser le serveur Web Apache y compris ce qui suit.
- Mettre en œuvre SSL
- Intégration avec WAF (Web Application Firewall) comme ModSecurity, etc.
- En utilisant fournisseur de sécurité basé sur le cloud
13. Quels sont les fichiers journaux générés par Apache?
Il existe deux fichiers journaux populaires créés;
- access.log - tous les détails de la demande avec le code d'état
- error.log - capture toutes les erreurs dans apache ou en se connectant au backend
14. Comment créer un CSR?
Vous pouvez utiliser la commande OpenSSL suivante ou générer de la RSE en ligne.
Pour créer un nouveau CSR avec une clé privée
openssl req -out geekflare.csr -newkey rsa:2048 -nodes -keyout geekflare.key
Jetez un coup d'œil au Aide-mémoire OpenSSL pour plus de commandes.
15. Qu'est-ce que l'hébergement virtuel?
L'hébergement virtuel dans Apache vous permet d'héberger plusieurs sites Web sur une seule instance. Vous pouvez soit créer Basé sur IP or Basé sur le nom sur l'hébergement virtuel.
16. Quel module est nécessaire pour se connecter à WebSphere?
mod_was_ap22_http.so
doit être ajouté httpd.conf
fichier à intégrer à IBM WAS.
17. Comment mettre le niveau de journal en mode débogage?
Souvent nécessaire lorsque vous résolvez le problème et souhaitez capturer plus de détails. Vous pouvez modifier le niveau de journalisation pour déboguer en vérifiant ce qui suit dans le fichier httpd.conf.
LogLevel debug
18. Quel module est requis pour activer SSL?
Le module mod_ssl doit être décommenté avant l'implémentation SSL.
LoadModule auth_basic_module modules/mod_ssl.so
19. Quel est le nom du module WebLogic?
mod_wl_22.so
20. Quel est le niveau de journalisation disponible dans Apache?
La configuration par défaut est définie sur "prévenir»Cependant, ce qui suit est également possible.
- déboguer
- info
- prévenir
- avis
- Critique
- alarme
- émergents
- erreur
21. Qu'est-ce que DocumentRoot?
La directive DocumentRoot est la configuration dans laquelle vous pouvez spécifier l'emplacement du dossier à partir duquel les fichiers statiques seront servis. Il est également appelé WebRoot.
Default DocumentRoot location is /var/www/html
22. Comment déployer des applications war ou JAVA dans Apache?
J'ai peur, Apache est un serveur Web et le déploiement d'applications Java n'est pas possible avec lui. Cependant, vous pouvez intégrer des serveurs d'applications Java tels que WebLogic, WebSphere, JBoss où vous pouvez déployer des fichiers war, ear.
23. Quelle est la différence entre Apache Web Server et Apache Tomcat?
Apache Web est un serveur HTTP pour servir des contenus statiques où Tomcat est un conteneur de servlet pour déployer des fichiers JSP.
Cependant, vous pouvez toujours intégrer Apache HTTP à Tomcat, en fonction de la condition requise pour choisir l'un ou l'autre. Si vous avez besoin d'un serveur Web approprié, alors Apache HTTP else Tomcat for JSP-Servlet Container.
24. Comment Apache peut-il agir en tant que serveur proxy?
Vous pouvez utiliser un module mod_proxy à utiliser comme serveur proxy. Le module mod_proxy peut être utilisé pour se connecter au serveur backend comme Matou, WebLogic, WebSphere, etc.
25. Comment configurer le journal Apache, afin qu'il capture le temps nécessaire pour traiter une requête?
Vous pouvez ajouter "%D”Dans le fichier httpd.conf sous la directive LogFormat pour capturer le temps de réponse nécessaire pour traiter la requête. Il affichera le temps en microsecondes.
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D" combined
Redémarrez le serveur Web Apache et vous pourrez voir les résultats.
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. Quel outil utilisez-vous pour l'analyse des journaux?
Vous devez dire la vérité mais pour vous donner une idée, vous pouvez utiliser GoAccès, SumoLogique ou peu mentionné ici.
27. Quels sont les serveurs Web sur lesquels vous avez travaillé avec Apache?
Encore une fois, vous feriez mieux de dire la vérité, mais pour vous en informer, il existe de nombreux serveurs Web sur le marché, notamment les suivants.
- Nginx
- Microsoft IIS
- LiteSpeed
- GWS
28. Comment vérifier le fichier httpd.conf pour éviter toute erreur de syntaxe de configuration?
httpd –t vous aidera à vérifier la syntaxe.
[root@lab httpd]# /usr/sbin/httpd -t
Syntax OK
[root@lab httpd]#
Vous pouvez également utiliser la commande apachectl.
[root@lab ~]# /usr/sbin/apachectl configtest
Syntax OK
[root@lab ~]#
29. Comment effectuer un benchmark de performances Apache?
Vous pouvez utiliser un outil comme ApacheBench, SIÈGE pour effectuer le test de charge sur les serveurs Web, y compris Apache. Une autre option pour effectuer le stress test en ligne pour voir comment l'application Web fonctionne globalement sous charge.
30. Comment obtenir une assistance pour Apache Web Server en cas de problème?
Apache est un serveur Web Open Source, il n'y a donc pas de support au niveau de l'entreprise. Cependant, vous pouvez élever un rapport de bogue ou posez une question sur Stack Overflow.
31. Comment s'assurer que le serveur Web démarre après un redémarrage du serveur?
Si vous utilisez Linux, vous pouvez mettre un script dans /etc/init.d/ et activer commencer au démarrage en utilisant la commande chkconfig
Disons que vous créez un fichier appelé apache et mettez sous /etc/init.d
chkconfig --add apache
chkconfig apache on
si vous utilisez Windows, assurez-vous que le type de démarrage est sélectionné «Automatique».
32. Quelle est la différence entre le serveur Web Apache et Nginx?
Les deux sont classés en tant que serveur Web et voici quelques-unes des principales différences.
- Nginx est un serveur Web basé sur des événements où Apache est basé sur des processus
- Nginx est connu pour ses meilleures performances qu'Apache
- Apache prend en charge une large gamme de systèmes d'exploitation où Nginx ne prend pas en charge OpenVMS et IBMi
- Apache a un grand nombre de modules d'intégration avec le serveur d'applications backend où Nginx est toujours en train de rattraper son retard
- Nginx est léger et capture rapidement la part de marché. Si vous êtes nouveau sur Nginx, vous voudrez peut-être consulter mes articles sur Nginx.
33. Comment tueriez-vous l'Apache si l'arrêt gracieux ne fonctionne pas?
Si vous utilisez Linux, vous pouvez utiliser la commande kill.
Découvrez le PID d'Apache en utilisant ps -ef | grep http
Alors tuez-le
kill $PIDNUMBER
si le kill normal ne fonctionne pas, essayez de tuer -9
kill -9 $PIDNUMBER
Si vous utilisez Windows, terminez la tâche Apache à partir du Gestionnaire des tâches.
34. Comment trouver le fichier httpd.conf si vous ne connaissez pas l'emplacement d'installation?
Sous Linux, vous pouvez utiliser commande find.
Supposons que vous savez qu'il doit être dans le système de fichiers / apps, vous pouvez utiliser la commande suivante.
find /apps -name httpd.conf
Mais si vous n'êtes pas sûr du système de fichiers, vous pouvez le rechercher sur / file system, mais gardez cela à l'esprit que cela peut prendre beaucoup de temps en fonction de la taille globale du système de fichiers.
find / -name httpd.conf
35. Quelles sont les différentes saveurs du serveur Web Apache que vous connaissez?
- IBM HTTP Server - appelé IHS et souvent utilisé avec IBM WebSphere Application Server
- Oracle HTTP Server - connu sous le nom de OHS souvent utilisé avec le serveur Oracle Weblogic
36. Où se trouve l'Apache dans le centre de données?
Vous pouvez expliquer en fonction de votre expérience, cependant, généralement pour les applications Internet, ce serait dans le réseau Internet DMZ et pour l'intranet, le réseau central.
Mais encore une fois, cela différera en fonction de l'application / de l'organisation.
37. Comment masquer les détails de la version du serveur dans l'en-tête de la réponse HTTP?
Ajoutez ce qui suit dans le fichier httpd.conf et redémarrez le serveur Web
ServerTokens Prod
ServerSignature Off
Cela masquera la version et affichera le serveur comme "Apache" Seulement.
38. Que signifient les codes d'erreur HTTP 200, 403 et 503?
- 200 - contenu trouvé et servi OK
- 403 - essayé d'accéder à un fichier / dossier restreint
- 503 - le serveur est trop occupé pour répondre à la demande et en d'autres termes - service indisponible.
- Référer Infographie du code de réponse HTTP pour plus d'information.
39. Comment désactiver les requêtes HTTP de trace?
Ajoutez ce qui suit dans le fichier httpd.conf et redémarrez l'instance
TraceEnable off
40. Comment résoudre le problème de conflit de port?
netstat serait utile pour résoudre le problème de conflit de port. Si vous exécutez plusieurs instances sur un seul serveur, il serait recommandé d'avoir une adresse IP absolue: Port configuré pour la directive Listen.
41. Comment installer le module tiers?
Vous pouvez utiliser Boîte à outils Apache. Une fois téléchargé, extrayez-le en utilisant le tar
utilitaire.
tar -xf Apachetoolbox-1.5.72.tar.gz
Naviguer vers le dossier Apachetoolbox-1.5.72
utilisant l' cd
et exécutez la commande ci-dessous pour sélectionner des modules pour votre serveur Apache.
./install.sh
Il fournit des modules tels que mod_ip_forwarding
, mod_auth_mysql
et mod_auth_samba
à compiler avec le serveur Web Apache. Bien que vous puissiez inclure ces modules manuellement, c'est plus facile avec Apache Toolbox.
42. Comment attribuer plusieurs noms à des hôtes virtuels?
Vous pouvez utiliser le ServerAlias
directive comme indiqué ci-dessous.
ServerName example.com
ServerAlias awesome.com fantastic.com
43. Comment limiter la taille du téléchargement?
J'ai une application Web qui permet aux utilisateurs de télécharger des fichiers tels que des documents Word, PDF, etc. Comment limiter le téléchargement de fichiers par les utilisateurs?
Vous pouvez utiliser le LimitRequestBody
directive pour limiter la taille du fichier de téléchargement.
<Directory "usr/local/apache2/uploads">
LimitRequestBody 9000
</Directory>
La valeur attribuée au LimitRequestBody
permet à Apache d'accepter et de stocker des téléchargements de fichiers de 9000 XNUMX octets par les utilisateurs. Vous pouvez ajuster la valeur en fonction de l'exigence.
44. Comment restreindre l'accès par IP?
Vous pouvez souhaiter qu'une partie de la racine de contexte soit accessible aux adresses IP autorisées. Pour ce faire, vous pouvez utiliser mod_authz_core or mod_authz_host modules pour restreindre l'accès à l'aide du Require
Directive.
Require 10.0.0.2 10.0.0.4 192.168.34.23 192.168.34.23
En faisant ci-dessus, Apache ne servira les demandes que si les demandes sont faites à partir des adresses IP répertoriées.
Vous devez spécifier le Require
directive dans le répertoire où vous souhaitez autoriser ou refuser l'accès aux ressources.
Conclusion
J'espère que les questions et réponses ci-dessus vous aideront à vous préparer pour un administrateur de serveur Web entretien.