Maison Opération et maintenance exploitation et maintenance Linux Explication détaillée des exemples de construction de services HTTP

Explication détaillée des exemples de construction de services HTTP

Jun 27, 2017 am 10:06 AM
http 搭建 服务

1. Introduction
1. Compréhension
Page Web cryptée (https) : tcp:443  Page Web en texte clair (http) : tcp : 80
survey.netcraft.net - Vous pouvez vérifier la dernière utilisation du serveur de site Web sur ce site Web
Le protocole de transfert hypertexte (HTTP, HyperText Transfer Protocol) est le plus protocole réseau largement utilisé. Tous les fichiers WWW doivent être conformes à cette norme. L'objectif initial de la conception de HTTP était de fournir une méthode de publication et de réception de pages HTML
2. Apache
Apache HTTP Server (appelé "Apache HTTP Server"). comme Apache) est un serveur Web open source d'Apache Software Foundation qui peut fonctionner sur la plupart des systèmes d'exploitation informatiques. Il est largement utilisé en raison de ses fonctionnalités multiplateformes et de sécurité et est l'un des logiciels côté serveur Web les plus populaires. Les fonctionnalités sont les suivantes :
1. Prend en charge le dernier protocole de communication HTTP/1.1
2 Dispose d'un processus de configuration simple et puissant basé sur des fichiers
3. Prise en charge de l'interface de passerelle universelle
4. Prise en charge des hôtes virtuels basés sur IP et sur nom de domaine
5. Prise en charge de plusieurs méthodes d'authentification HTTP
6. Intégrer le module de traitement Perl
7. Module de serveur proxy intégré
8. Prise en charge de la surveillance en temps réel de l'état du serveur et des journaux de serveur personnalisés
9. inclure des instructions (SSI)
10. Prise en charge de Secure Socket Layer (SSL)
11. Assurer le suivi du processus de session utilisateur
12. 13. Prise en charge des JavaServlets via des modules tiers
3. Installation :
www.apache.org --site officiel d'Apache
# yum install httpd* --installation httpd service
# httpd -t --Vérifiez l'exactitude du fichier de configuration
# rm -rf /etc/httpd/conf.d /welcome.conf --Supprimez l'interface de bienvenue ; car elle est installée httpd-manual, afin que vous puissiez accéder à
/ServerIp/manual
4. Fonctionne en deux modes : préfork, travailleur
mode préfork :
prefork est le MPM par défaut (par défaut) sur les plateformes Unix, utilise plusieurs processus enfants, chaque processus enfant n'a qu'un seul thread . Chaque processus ne peut maintenir qu'une seule connexion à un certain moment, haute efficacité, mais utilisation de mémoire relativement importante.
Ce module multitraitement (MPM) implémente un serveur Web non threadé et pré-forké qui fonctionne de manière similaire à Apache 1.3. Il convient aux systèmes qui ne disposent pas de bibliothèques thread-safe et doivent éviter les problèmes de compatibilité des threads. Il s'agit du meilleur MPM lorsque chaque requête doit être indépendante les unes des autres, de sorte que si un problème survient avec une requête, cela n'affectera pas les autres requêtes.
Mode Worker :
le travailleur utilise plusieurs sous-processus, chaque sous-processus a plusieurs threads , chaque thread à un certain moment Un seul la connexion peut être maintenue, l'empreinte mémoire est relativement faible et elle convient aux serveurs http à fort trafic . L'inconvénient est que si un thread plante, le processus entier "mourra" avec n'importe lequel de ses threads, afin de garantir qu'un programme doit être reconnu par le système comme "chaque thread est en sécurité" lorsqu'il est en cours d'exécution.
Ce module multi-traitement (MPM) permet au serveur Web de prendre en charge le multi-threading et le multi-traitement mixtes. Étant donné que les threads sont utilisés pour traiter les requêtes, les requêtes massives peuvent être traitées avec moins de ressources système que le MPM basé sur les processus. Mais il utilise également plusieurs processus, chacun avec plusieurs threads, pour bénéficier de la stabilité du MPM basé sur les processus.
# httpd -l --Afficher le mode d'exécution, la valeur par défaut est prefork.c
# mv -v /usr/sbin/httpd{,.prefork} --Mode préfork de sauvegarde
# mv -v /usr/sbin/httpd{.worker,} --Utiliser le mode travailleur
Explication détaillée du fichier de configuration
1. Paramètres d'environnement globaux
ServerTokens OS --Lorsque le serveur répond aux informations d'en-tête de l'hôte (en-tête), la version d'Apache et le nom du système d'exploitation sont affiché
ServerRoot "/etc/httpd" --Le répertoire de base du serveur De manière générale, il contiendra les sous-répertoires conf/ et logs/ Les chemins relatifs des autres fichiers de configuration. sont basés sur ce répertoire.
PidFile run/httpd.pid --L'emplacement du fichier de numéro de processus du premier processus httpd (le processus parent de tous les autres processus).
Timeout 60 --Si aucune donnée n'est reçue ou envoyée après 60 secondes, la connexion sera coupée
KeepAlive Off --Pas utilisé par défaut La fonction de maintien de la connexion, c'est-à-dire que le client ne peut répondre qu'à un fichier à la fois lors de la demande de connexion Il est recommandé d'autoriser
MaxKeepAliveRequests. 100 --Lorsque la connexion est conservée, le client peut définir une requête La limite maximale de la connexion pouvant répondre aux fichiers Si elle dépasse la limite, elle sera déconnectée
KeepAliveTimeout. 15 --Lors de l'utilisation de la fonction keep-alive, si l'intervalle de temps entre deux connexions adjacentes dépasse 15 secondes, elle sera déconnectée
......... ....
Écouter 80 --Le numéro de port que le serveur écoute ; Vous pouvez ouvrir plusieurs ports d'écoute
Inclure conf.d/*.conf --Will Tous les fichiers de configuration se terminant par conf dans le répertoire /etc/httpd/conf.d sont inclus
Utilisateur apache --l'utilisateur du sous-processus qui fournit des services
Groupe Apache --Le groupe d'utilisateurs du sous-processus qui fournit le service
ServerAdmin root@george.com --L'e-mail de l'administrateur adresse
ServerName mail.george.com:80 --Nom du site principal (nom d'hôte du site Web)
UseCanonicalName Off
DocumentRoot "/var/www/html" --Définissez le répertoire racine du document Web ; mais vous pouvez utiliser des liens symboliques et des alias pour pointer vers d'autres emplacements s'il ne s'agit pas d'un chemin absolu, il est supposé être un chemin ; par rapport à ServerRoot
2. Paramètres de contrôle du chemin
DirectoryIndex index.html index.html.var --le nom de fichier de page Web par défaut de le site Web, le côté gauche est préféré
AccessFileName .htaccess --Spécifiez le nom du fichier de configuration du répertoire protégé
------- -------------------------------- ----------------------- -------------------------------- ----------------------- ---
--utilisé pour encapsuler une directive de groupe, la rendant efficace uniquement pour un certain répertoire et ses sous-répertoires. Pour un répertoire sur le système de fichiers
Options Index FollowSymLinks
AllowOverride None
Ordre autoriser, refuser
Autoriser de tous
Refuser du 192.168.133.22
Chemin du répertoire -- peut être un répertoire complet A chemin ou une chaîne générique contenant la syntaxe de correspondance du shell Unix. Dans une chaîne générique, "?" correspond à n'importe quel caractère et "*" correspond à n'importe quelle séquence de caractères. Vous pouvez également utiliser "[]" pour déterminer la plage de caractères. Vous pouvez également utiliser des expressions régulières après le caractère "~"
Options --La valeur de cette commande peut être "Aucun", "Tout" ou le options suivantes Toute combinaison de : Index (avec '-' devant, la fonction de listage des répertoires sur le site Web est désactivée, sinon la fonction de listage des répertoires sur le site Web est désactivée Comprend ; ExecCGI ; MultiVues
AllowOverride --Contrôle les directives placées dans les fichiers .htaccess. Il peut s'agir de All, None (aucune configuration ne peut être vue dans .htaccess) ou d'une combinaison des directives suivantes : Options;FileInfo;AuthConfig;Limit
Order,Allow , Refuser --Contrôlez qui peut obtenir des services. Les paramètres de commande sont finalement basés sur celui de droite, et la commande peut être inversée
--------------------------------- ------- ----------------------------------------------- ------- ----------------------------------
--Pour le fichier spécifié , peut se trouver dans un certain répertoire ou globalement
Ordre refuser, autoriser
Autoriser de tous
- ------------------------------------------------------ ------ -------------------------------------------- ------ ----
-- Permet la visualisation du serveur en utilisant l'URL "http:/ /servername/server-status" Statut (ou informations); L'emplacement contrôle principalement l'URL
SetHandler server-status(server-info )
Commande refusée, autorisée
Autoriser de tous
------------- ----- --------------------------------------------- ----- ------------------------------------
Alias ​​​​/url-path /filesystem-path --mapper l'URL sur le chemin du système de fichiers (vous pouvez également utiliser le lien logiciel ln -s sur le système pour y parvenir)
3. Contrôle du mot de passe utilisateur pour l'accès au répertoire ( utilisateurs non système)
--La théorie peut également être trouvée dans Location,file
Index d'options FollowSymLinks
AllowOverride None
Commander autoriser, refuser
Autoriser de tous
authname "Authentifiez-vous"  - Inviter le navigateur à ouvrir l'URL
authtype basic
authuserfile /etc/httpd/userpasswd  --Emplacement du fichier utilisateur et mot de passe
exige un utilisateur valide
# htpasswd -c /etc/httpd/userpasswd frank -- Créer un utilisateur qui autorise l'accès
# htpasswd /etc/httpd/userpasswd george - -Créez-en un autre, rappelez-vous le paramètre '-c', qui sert à créer le fichier de mot de passe et ne peut être utilisé que lors de la création du premier utilisateur.
Remarque : Si un répertoire utilise un accès contrôlé par mot de passe, le répertoire ne sera pas visible lorsque son répertoire parent est répertorié via un navigateur Web, c'est-à-dire qu'il sera masqué. Mais on y accède en saisissant directement l’url (même si l’on dispose d’un compte et d’un mot de passe).
4. Hôte virtuel basé sur un nom de domaine
NameVirtualHost *:80 --Ajoutez cette configuration pour définir le port 80 comme port d'hôte virtuel
--Le premier hôte virtuel
ServerName www.george.com
DocumentRoot /var/www/html/
............
<
--Le deuxième hôte virtuel
ServerName mail.george .com
DocumentRoot /var/www/cgi-bin/openwebmail/
ScriptAlias ​​​​/mail /var/www/cgi-bin/openwebmail/openwebmail.pl
< ;Emplacement />
........................
Si le paramètre SeverName de cette expérience est connecté à l'adresse IP, nous pouvons également créer un hôte virtuel basé sur IP
Paramètres du journal
ErrorLog logs/error_log --L'emplacement de stockage du journal des erreurs
LogLevel warn --Définir le niveau du journal des erreurs, inclure : debug, info, notice , avertissement, erreur, critique, alerte, émergent.
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{ User-Agent}i"" combiné
............
LogFormat "%{User-agent}i" agent --ces quatre éléments sont manquants à partir du format provincial du journal d'accès
CustomLog logs/access_log combiné --Utiliser le format de journal d'accès combiné
%h – adresse IP ou nom d'hôte du client
%l – Il s'agit de l'identité RFC 1413 déterminée par l'identité du client. Le symbole "-" dans la sortie indique que les informations ici ne sont pas valides.
%u – le nom du client qui a accédé à la page Web obtenue par le système d'authentification HTTP. Il n'est valide que s'il y a une authentification. Le symbole "-" dans la sortie indique que les informations ici ne sont pas valides.
%t – L'heure à laquelle le serveur a terminé le traitement de la demande.
"%r" – Les guillemets sont le contenu de la demande envoyée par le client qui contient de nombreuses informations utiles.
%>s – Il s'agit du code d'état renvoyé par le serveur au client.
%b – Le dernier élément est le nombre d'octets renvoyés au client à l'exclusion des en-têtes de réponse.
"%{Referer}i" – Cet élément spécifie à partir de quelle page Web la demande a été soumise.
"%{User-Agent}i" – Cet élément correspond aux informations d'identification du navigateur fournies par le navigateur du client.
6. Configuration du cryptage SSL
# yum install -y mod_ssl --Installer le module de cryptage
# vim /etc/httpd/conf.d /ssl.conf
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine activé
SSLProtocol all -SSLv2
SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES
SSLCertificateFile /etc/pki/tls/certs/localhost.crt --Fichier de clé publique de configuration
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key --Fichier de clé de configuration
SSLOptions +StdEnvVars
< ;/Files>
ServerName www.george.com
DocumentRoot /var/www/cgi-bin/openwebmail/
ScriptAlias ​​​​/mail /var/www/ cgi -bin/openwebmail/openwebmail.pl
SSLOptions +StdEnvVars
Options Index
ordre refuser, autoriser
Autoriser de tous
SetEnvIf User-Agent ".*MSIE.*"
nokeepalive ssl-unclean-shutdown
downgrade-1.0 force-response-1.0
Journaux CustomLog/ssl_request_log
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"
6.1 Configurez vous-même le certificat
# mkdir /etc/pki/test/
# cd / etc/pki/test
# openssl genrsa -out /etc/pki/test/test.key 1024 --secret key
# openssl req -new -key test.key - out test .csr
Nom du pays (code à 2 lettres) [XX]:cn
Nom de l'État ou de la province (nom complet) []:guangDong
Nom de la localité (par exemple, ville) [Ville par défaut] :Shenzhen
Nom de l'organisation (par exemple, entreprise) [Société par défaut Ltd] :IT
Nom de l'unité organisationnelle (par exemple, section) []:maintenance
Nom commun (par exemple, votre nom ou le nom d'hôte de votre serveur) []:www.george.com
Adresse e-mail [] :root@mail.george.com
Veuillez saisir les attributs « supplémentaires » suivants
à envoyer avec votre demande de certificat
Un mot de passe de challenge []:123456
Un nom d'entreprise facultatif []:Azt
# openssl req -x509 -days 365 -key test.key -in test.csr -out test.crt --Public key
# ls --Ensuite, configurez le test.crt && test.key suivant sur /etc /httpd/conf.d/ssl.conf peut être
test.crt test.csr test.key
6.2 Testez le certificat que vous avez configuré
Mais le certificat que nous avons créé nous-mêmes est reconnu dans le navigateur comme non fiable ; Le statut du certificat est également « Parce que le certificat racine de l'autorité de certification n'est pas dans le magasin « Autorités de certification racine de confiance », il n'est pas fiable. »
  

  Nous devons importer manuellement le certificat (test.crt) que nous avons créé nous-mêmes dans le navigateur vers "Trusted Root Certification Authority" && "Trusted Publisher"". En utilisant Google Chrome comme colonne, les étapes sont les suivantes :

". C'est OK.

 

À ce moment, utilisez le navigateur pour ouvrir notre site Web et vérifier l'état du certificat "Il n'y a aucun problème avec le certificat".

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment ouvrir le service de connexion Bureau à distance à l'aide de la commande Comment ouvrir le service de connexion Bureau à distance à l'aide de la commande Dec 31, 2023 am 10:38 AM

La connexion au bureau à distance a apporté de la commodité à la vie quotidienne de nombreux utilisateurs. Certaines personnes souhaitent utiliser des commandes pour se connecter à distance, ce qui est plus pratique à utiliser. Alors, comment se connecter ? Le service de connexion Bureau à distance peut vous aider à résoudre ce problème en utilisant une commande pour l'ouvrir. Comment configurer la commande de connexion au bureau à distance : Méthode 1. Connectez-vous à distance en exécutant la commande 1. Appuyez sur "Win+R" pour ouvrir "Exécuter" et entrez mstsc2, puis cliquez sur "Afficher les options" 3. Entrez l'adresse IP et cliquez sur "Connecter". 4. Cela montrera qu’il est en train de se connecter. Méthode 2 : Connectez-vous à distance via l'invite de commande 1. Appuyez sur « Win+R » pour ouvrir « Exécuter » et entrez cmd2 Dans l'« Invite de commandes », entrez mstsc/v:192.168.1.250/console.

Quelle est la bonne façon de redémarrer un service sous Linux ? Quelle est la bonne façon de redémarrer un service sous Linux ? Mar 15, 2024 am 09:09 AM

Quelle est la bonne façon de redémarrer un service sous Linux ? Lors de l'utilisation d'un système Linux, nous rencontrons souvent des situations dans lesquelles nous devons redémarrer un certain service, mais nous pouvons parfois rencontrer des problèmes lors du redémarrage du service, comme le fait que le service ne s'arrête ou ne démarre pas réellement. Par conséquent, il est très important de maîtriser la bonne manière de redémarrer les services. Sous Linux, vous pouvez généralement utiliser la commande systemctl pour gérer les services système. La commande systemctl fait partie du gestionnaire système systemd

Comprendre les scénarios d'application courants de redirection de pages Web et comprendre le code d'état HTTP 301 Comprendre les scénarios d'application courants de redirection de pages Web et comprendre le code d'état HTTP 301 Feb 18, 2024 pm 08:41 PM

Comprendre la signification du code d'état HTTP 301 : scénarios d'application courants de redirection de pages Web Avec le développement rapide d'Internet, les exigences des utilisateurs en matière d'interaction avec les pages Web sont de plus en plus élevées. Dans le domaine de la conception Web, la redirection de pages Web est une technologie courante et importante, mise en œuvre via le code d'état HTTP 301. Cet article explorera la signification du code d'état HTTP 301 et les scénarios d'application courants dans la redirection de pages Web. Le code d'état HTTP 301 fait référence à une redirection permanente (PermanentRedirect). Lorsque le serveur reçoit le message du client

Solution d'erreur de requête http 415 Solution d'erreur de requête http 415 Nov 14, 2023 am 10:49 AM

Solution : 1. Vérifiez le type de contenu dans l'en-tête de la requête ; 2. Vérifiez le format des données dans le corps de la requête ; 3. Utilisez le format de codage approprié. 4. Utilisez la méthode de requête appropriée ;

Peut-on construire des bâtiments à l'état sauvage dans Mistlock Kingdom ? Peut-on construire des bâtiments à l'état sauvage dans Mistlock Kingdom ? Mar 07, 2024 pm 08:28 PM

Les joueurs peuvent collecter différents matériaux pour construire des bâtiments lorsqu'ils jouent dans le Royaume de Mistlock. De nombreux joueurs veulent savoir si les bâtiments ne peuvent pas être construits à l'état sauvage dans le Royaume de Mistlock. . Des bâtiments peuvent-ils être construits à l’état sauvage dans Mistlock Kingdom Réponse : Non. 1. Les bâtiments ne peuvent pas être construits dans les zones sauvages du Royaume de Mist Lock. 2. Le bâtiment doit être construit dans le cadre de l'autel. 3. Les joueurs peuvent placer eux-mêmes l'Autel du Feu Spirituel, mais une fois qu'ils auront quitté le champ de tir, ils ne pourront plus construire de bâtiments. 4. Nous pouvons également creuser directement un trou dans la montagne pour en faire notre maison, nous n’avons donc pas besoin de consommer de matériaux de construction. 5. Il existe un mécanisme de confort dans les bâtiments construits par les joueurs eux-mêmes, c'est-à-dire que plus l'intérieur est bon, plus le confort est élevé. 6. Un confort élevé apportera des bonus d'attributs aux joueurs, tels que

Comment implémenter le streaming HTTP en utilisant C++ ? Comment implémenter le streaming HTTP en utilisant C++ ? May 31, 2024 am 11:06 AM

Comment implémenter le streaming HTTP en C++ ? Créez un socket de flux SSL à l'aide de Boost.Asio et de la bibliothèque client asiohttps. Connectez-vous au serveur et envoyez une requête HTTP. Recevez les en-têtes de réponse HTTP et imprimez-les. Reçoit le corps de la réponse HTTP et l'imprime.

Solution au service Ubuntu PHP qui ne démarre pas normalement Solution au service Ubuntu PHP qui ne démarre pas normalement Feb 28, 2024 am 10:48 AM

Titre : Méthodes et exemples de code spécifiques pour résoudre le problème selon lequel le service PHP ne peut pas démarrer normalement sous Ubuntu. Lorsque vous utilisez Ubuntu pour créer un site Web ou une application, vous rencontrez souvent le problème selon lequel le service PHP ne peut pas démarrer normalement, ce qui entraînera le site Web. ne pas être accessible normalement ou l'application ne peut pas fonctionner normalement. Cet article explique comment résoudre le problème selon lequel le service PHP ne peut pas démarrer normalement sous Ubuntu et fournit des exemples de code spécifiques pour aider les lecteurs à résoudre rapidement de tels échecs. 1. Vérifiez le fichier de configuration PHP Tout d'abord, nous devons vérifier le fichier de configuration PHP

HTTP 200 OK : comprendre la signification et le but d'une réponse réussie HTTP 200 OK : comprendre la signification et le but d'une réponse réussie Dec 26, 2023 am 10:25 AM

Code d'état HTTP 200 : explorez la signification et l'utilisation des réponses réussies Les codes d'état HTTP sont des codes numériques utilisés pour indiquer l'état de la réponse d'un serveur. Parmi eux, le code d'état 200 indique que la demande a été traitée avec succès par le serveur. Cet article explorera la signification spécifique et l'utilisation du code d'état HTTP 200. Tout d’abord, comprenons la classification des codes d’état HTTP. Les codes d'état sont divisés en cinq catégories, à savoir 1xx, 2xx, 3xx, 4xx et 5xx. Parmi eux, 2xx indique une réponse réussie. Et 200 est le code d'état le plus courant dans 2xx

See all articles