Quelles sont les bases de l'exécution d'un serveur Web?


26

Il s'agit d'une question canonique proposée sur le début de l'administration du serveur Web.

En supposant que vous êtes un SysAd débutant, que vous êtes nouveau dans WebOps ou une petite équipe avec peu ou pas de support SysAd de serveur Web expérimenté (et que vous ne pouvez pas vous le permettre pour le moment), que devez-vous faire pour configurer et sécuriser un serveur Web pour votre entreprise?


Vous mentionnez deux fois les avantages d'avoir un sysad, ce qui implique que vous vous adressez à des personnes qui ne sont pas des sysads. Bien sûr, cela met alors votre Q&A hors de portée pour Server Fault qui est pour sysads et al? Peut-être que Super User est une meilleure maison pour cela?
user9517 prend en charge GoFundMonica le

8
Ma lecture de la FAQ est interprétée comme «des professionnels techniques posant des questions sur l'administration des systèmes». J'ai vu ce genre de question posée à plusieurs reprises par des personnes techniques (mais pas par SysAd) (principalement des développeurs), et elles sont souvent répondues durement au lieu d'être réellement aidées. Cette question est posée comme un candidat à une réponse canonique de Où commencer, et pourquoi ils devraient engager une véritable aide SysAd dès que possible. (Et j'espère ne plus jamais avoir à répondre à cette question particulière.
gWaldo

Réponses:


32

Avant que nous commencions:

Avoir des gens de qualité vous fera économiser de l'argent. Tout comme avoir un bon avocat (éventuellement NSFW pour jurer) ou un comptable, avoir un SysAd de qualité vous fera probablement économiser de l'argent, souvent en vous aidant simplement à éviter des erreurs coûteuses. Vous n'avez peut-être pas l'argent pour payer l'expertise maintenant, mais dès que vous le pouvez, vous devriez faire cet investissement.

Il n'y a pas de réponse simple et singulière à cette question. Si vous êtes du genre à poser cette question, vous devez vous rendre compte que cette question est au cœur d'un domaine dans lequel les professionnels investissent des années d'études et de pratique. La question analogue pour un développeur serait "comment puis-je écrire une application Web?"; Bien sûr, nous pourrions vous indiquer une direction pour installer Ruby-on-Rails et un RoR "Hello World". Bien que cela «réponde à la question», cela ne vous aiderait pas vraiment. Ce Q / A est une tentative de réellement vous aider.

Tu devrais savoir:

L'administration du serveur Web est un sujet important, et elle est intrinsèquement liée à de nombreuses disciplines différentes. Pour bien le faire, vous aurez besoin d'une compréhension fondamentale de TCP / IP, de votre système d'exploitation hôte, de votre application WebServer et d'une certaine compréhension de l'exécution de la pile d'applications.

Soyez prêt à lire. Beaucoup .

Identifiez vos besoins:

Exigences

  • Utilisez-vous un site Web simple et statique (peut-être avec des effets Javascript), ou
  • (plus probablement) exécutez-vous une application qui se trouve avoir une interface Web?
  • Avez-vous des données persistantes? (Avez-vous besoin d'une base de données?)
  • Y a-t-il des informations d'identification d'utilisateur impliquées? Y a-t-il une autre raison pour laquelle vous auriez besoin que la connexion entre l'utilisateur et le site Web soit sécurisée? (SSL)
  • Gérez-vous des paiements de toute nature? En plus d'avoir des exigences SSL, il y a des considérations supplémentaires que vous devrez rechercher (en fonction de la région). Ceux-ci varient également en fonction du processeur de paiement que vous utilisez.

Identifiez votre pile:

Comment allez-vous écrire et exécuter cela?

  • Plateforme (Windows, Linux, autre Unix, etc.)
  • Exigences de l'application (Ruby / Rails, Python, Perl, PHP, .NET, etc., etc.)
  • Base de données (...)
  • La mise en cache? (Honnêtement, ne vous inquiétez pas à ce sujet maintenant; sachez que cela résout certains problèmes et peut en créer d'autres. C'est un problème de performances, et en ce moment, vous essayez juste de commencer.)

Certains de ces choix en informeront d'autres. Par exemple, si vous exécutez une application .NET, vous souhaiterez probablement utiliser MSSQL et IIS; Si vous exécutez Ruby on Rails, vous voulez probablement un serveur Linux; etc...

Apprenez à connaître votre produit:

Maintenant que vous avez décidé de l'apparence de votre pile, vous devez la connaître. C'est là que vous devriez passer la plupart de votre temps. La recherche de "Configurer [produit]" ou "[produit] Guide d'administration" devrait vous procurer de nombreuses ressources.

Par exemple, si vous exécutez Apache sur Ubuntu, vous devez absolument lire:

Recherchez des documents, articles et articles de blog similaires pour votre pile.

Installez le strict minimum:

Il existe une vaste gamme de modules pour Apache, mais si vous n'utilisez pas PHP (par exemple), n'installez pas mod-php.

Il convient également de préciser ici que vous devez éviter d'installer une interface graphique s'il s'agit d'un serveur Linux; Les GUI utilisent une quantité importante de ressources système.

Sécurisation du site:

  • Garantissez des autorisations minimales pour fonctionner. Cela s'applique non seulement au système de fichiers, mais également aux services et processus
  • Gardez les ports du serveur désactivés pour les services inutiles. (Encore une fois, installez uniquement le minimum.)
  • Restreindre les interfaces d'application à l'environnement interne (si, par exemple, en exécutant une application Web sur le même serveur (tel que Rails), limitez-la à écouter uniquement localhost)

En clôture:

Ce n'est que le début de ce que vous devez faire pour que votre site soit opérationnel. Cela ne commence même pas à toucher les problèmes de maintenance des serveurs ou comment gérer les problèmes de mise à l'échelle (si votre projet réussit), ni aucun des autres innombrables problèmes qu'un SysAd compétent résoudra pour vous.


L'exécution du strict minimum est cruciale, mais il n'est peut-être pas évident de savoir comment / comment désinstaller / désactiver / protéger. Serait-il acceptable de suggérer d'exécuter publiquement une machine barebones, totalement protégée par un pare-feu, qui ne transfère / proxy que des requêtes spécifiques à leur serveur d'applications fonctionnant sur un réseau privé? Il serait même possible de suggérer une distribution / configuration pour cela car il n'est pas nécessaire que ce soit le même environnement que celui utilisé par leur application.
Carlos Lima

1
Voilà un bon début. Une chose que vous n'avez pas couverte est la répétabilité. À un moment donné, vous dépasserez la configuration actuelle. Vos instructions pour configurer l'environnement sont-elles reproductibles? Mieux encore, sont-ils automatisés? Enregistrez-vous tous les packages source afin de pouvoir recréer l'environnement ou comptez-vous sur des référentiels externes? Comment saurez-vous quand il est temps de mettre à niveau? Suivez-vous les mesures appropriées? Comment en faites-vous rapport?
toppledwagon

@toppledwagon Ce sont tous de bons points, mais je parlais du cours 101. Tout ce que vous avez mentionné (cohérence / mgt de configuration, mise à l'échelle, surveillance / métriques, etc.) je me sens venir plus tard. Et honnêtement, je recommanderais plutôt d'obtenir un Systems Pro que de plonger dans ces domaines.
gWaldo

3
@toppledwagon Une fois arrivé à ce point, vous avez besoin d'un administrateur système. Ou au moins un Sysadmin-as-a-Service.
Michael Hampton
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.