44 Questions pratiques d'entrevue avec Apache Web Server avec réponses

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;

[[email protected] sbin]# ./httpd -v Server version: Apache/2.2.15 (Unix) Server built:   Jul 18 2016 15:24:00 [[email protected] sbin]#

Vous pouvez également utiliser le rpm commande pour vérifier la version installée.

[[email protected] ~]# rpm -qa |grep httpd httpd-2.2.15-54.el6.centos.x86_64 httpd-tools-2.2.15-54.el6.centos.x86_64 [[email protected] ~]#

5. Comment savoir si un serveur Web est en cours d'exécution?

Il existe plusieurs façons de trouver cela.

  1. Connectez-vous à un serveur Web et grep pour le processus «httpd»
ps -ef |grep httpd
  1. Recherchez toute alerte dans votre tableau de bord de surveillance.
  2. Vérifiez si votre IP Apache: le port est accessible dans le navigateur

Ex: http://yourapacheserver.com

  1. 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.

tar xvf  httpd-1.2.3.tar gzip -d httpd-1.2.4.tar.gz

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.

13. Quels sont les fichiers journaux générés par Apache?

Il existe deux fichiers journaux populaires créés;

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.

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.

28. Comment vérifier le fichier httpd.conf pour éviter toute erreur de syntaxe de configuration?

httpd –t vous aidera à vérifier la syntaxe.

[[email protected] httpd]# /usr/sbin/httpd -t Syntax OK [[email protected] httpd]#

Vous pouvez également utiliser la commande apachectl.

[[email protected] ~]# /usr/sbin/apachectl configtest Syntax OK [[email protected] ~]#

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 un test de résistance en ligne pour voir le fonctionnement global de l'application Web 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.

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?

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?

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.