Comment configurer Apache

WBOY
Libérer: 2023-05-12 11:13:19
avant
847 Les gens l'ont consulté

La configuration d'Apache est configurée par le fichier httpd.conf, les instructions de configuration suivantes sont donc modifiées dans le fichier httpd.conf.
Configuration du site principal (configuration de base)

(1) Configuration de base :
ServerRoot "/mnt/software/apache2" #L'emplacement où votre logiciel apache est installé. Si aucun chemin absolu n'est spécifié pour les autres répertoires spécifiés, les répertoires sont relatifs à ce répertoire.

PidFile logs/httpd.pid #L'emplacement du fichier de numéro de processus du premier processus httpd (le processus parent de tous les autres processus).

Écouter 80 #Le numéro de port que le serveur écoute.

ServerName www.clusting.com:80 #Main site name (nom d'hôte du site Web).

ServerAdmin admin@clusting.com #Adresse e-mail de l'administrateur.

DocumentRoot "/mnt/web/clusting" #L'emplacement de stockage des pages Web du site principal.


Voici le contrôle d'accès au répertoire du site principal :


Options FollowSymLinks
AllowOverride None
Order autoriser, refuser
Autoriser de tous
< /Répertoire>

Dans la configuration des attributs de répertoire ci-dessus, il existe principalement les options suivantes :

Options : configurez les fonctionnalités utilisées dans un répertoire spécifique. Les valeurs communes et les significations de base sont les suivantes :

ExecCGI : autoriser l'exécution. des scripts CGI dans ce répertoire.

FollowSymLinks : permet au système de fichiers d'utiliser des liens symboliques dans ce répertoire.

Index : lorsque l'utilisateur accède au répertoire, s'il ne trouve pas le fichier de la page d'accueil (tel que index.html) spécifié par DirectoryIndex, la liste des fichiers dans le répertoire sera renvoyée à l'utilisateur.

SymLinksIfOwnerMatch : lors de l'utilisation de liens symboliques, l'accès n'est possible que lorsque le propriétaire du fichier du lien symbolique est le même que le propriétaire du fichier réel.

Pour les autres valeurs et significations disponibles, veuillez consulter : http://www.clusting.com/Apache/ApacheManual/mod/core.html#options


AllowOverride : Autoriser les types de directives qui existent dans les fichiers .htaccess ( Fichiers .htaccess Le nom peut être modifié et le nom du fichier est déterminé par la directive AccessFileName) :
None : lorsque AllowOverride est défini sur None. Ne recherchez pas de fichiers .htaccess dans ce répertoire (peut réduire la surcharge du serveur).

Tout : toutes les directives peuvent être utilisées dans les fichiers .htaccess.

Pour les autres valeurs et significations disponibles (telles que : Options FileInfo AuthConfig Limit, etc.), veuillez vous référer à : http://www.clusting.com/Apache/ApacheManual/mod/core.html#AllowOverride

Ordre : Contrôle lors de l'accès Laquelle des deux règles d'accès, Autoriser et Refuser, est prioritaire :

Autoriser : liste des hôtes autorisés à accéder (noms de domaine ou sous-réseaux disponibles, par exemple : Autoriser à partir de 192.168.0.0/16).

Deny : liste des hôtes dont l'accès est refusé.

Pour une utilisation plus détaillée, veuillez vous référer à : http://www.clusting.com/Apache/ApacheManual/mod/mod_access.html#order

DirectoryIndex index.html index.htm index.php #Paramètres du fichier de la page d'accueil (Cet exemple définit le fichier de la page d'accueil sur : index.html, index.htm et index.php)


(2) Optimisation du serveur (MPM : modules multi-traitements)
Le principal avantage d'Apache2 est qu'il prend mieux en charge multi-processeurs Utilisez l'option --with-mpm lors de la compilation pour déterminer le mode de fonctionnement d'Apache2. Si vous connaissez le mécanisme de fonctionnement utilisé par Apache2 actuel, vous pouvez utiliser la commande httpd -l pour lister tous les modules d'Apache, et vous pourrez savoir comment cela fonctionne :

prefork : Si httpd -l répertorie prefork.c, vous devez modifiez les paragraphes suivants Configurer :



StartServers 5 #Le nombre de processus httpd démarrés au démarrage d'Apache.

MinSpareServers 5 #Le nombre minimum de processus inactifs maintenus par le serveur.

MaxSpareServers 10 #Le nombre maximum de processus inactifs maintenus par le serveur.

MaxClients 150 #Nombre maximum de connexions simultanées.

MaxRequestsPerChild 1000 #Combien de fois chaque processus enfant est demandé pour un service avant d'être tué. 0 signifie aucune limite et il est recommandé de le définir sur 1000.




Dans ce mode de fonctionnement, 5 processus httpd sont démarrés après le démarrage du serveur (plus 6 processus parents au total, visibles via la commande ps -ax|grep httpd). Lorsqu'un utilisateur se connecte, Apache utilise un processus inactif pour assurer la connexion et le processus parent crée un processus enfant. Jusqu'à ce que le nombre de processus inactifs en mémoire atteigne MaxSpareServers. Ce mode est destiné à la compatibilité avec certaines anciennes versions de programmes. Mes options de compilation par défaut.

worker : Si httpd -l répertorie worker.c, vous devez configurer les sections suivantes :



StartServers 2 #Le nombre de processus httpd démarrés au démarrage d'Apache.

MaxClients 150 #Nombre maximum de connexions simultanées.

MinSpareThreads 25 #Le nombre minimum de threads inactifs maintenus par le serveur.

MaxSpareThreads 75 #Le nombre maximum de threads inactifs maintenus par le serveur.

ThreadsPerChild 25 #Le nombre de threads générés par chaque processus enfant.

MaxRequestsPerChild 0 #Combien de fois chaque processus enfant est demandé pour un service avant d'être tué. 0 signifie aucune limite et il est recommandé de le définir sur 1000.




Ce mode utilise des threads pour surveiller les connexions client. Lorsqu'un nouveau client se connecte, l'un des threads inactifs accepte la connexion. Le serveur démarre deux processus au démarrage, et le nombre de threads générés par chaque processus est fixe (déterminé par ThreadsPerChild), il y a donc 50 threads au démarrage. Lorsque 50 threads ne suffisent pas, le serveur bifurque automatiquement un processus et génère 25 threads supplémentaires.


perchild : Si httpd -l répertorie perchild.c, vous devez configurer les sections suivantes :



NumServers 5 #Le nombre de processus enfants démarrés au démarrage du serveur

StartThreads 5 #Le nombre de threads démarrés au démarrage de chaque processus enfant

MinSpareThreads 5 #Le nombre minimum de threads inactifs en mémoire

MaxSpareThreads 10 #Le nombre maximum de threads inactifs

MaxThreadsPerChild 2000 #Le nombre maximum de fois où chaque thread peut être demandé avant de sortir. 0 n'est pas restreint.

MaxRequestsPerChild 10000 #Combien de fois chaque processus enfant est servi avant d'être re-forké. 0 signifie aucune limite.



Dans ce mode, le nombre de processus enfants est fixe et le nombre de threads n'est pas limité. Lorsque le client se connecte au serveur, le thread inactif fournit des services. Si le nombre de threads inactifs n'est pas suffisant, le processus enfant génère automatiquement des threads pour servir de nouvelles connexions. Ce mode est utilisé pour les serveurs multisites.
(3) Configuration des informations de retour HTTP :

ServerTokens Prod #Ce paramètre définit les informations de version Apache renvoyées par l'en-tête http Les valeurs et significations disponibles sont les suivantes :

Prod : uniquement le nom du logiciel, par exemple : apache
Major : inclus le numéro de version majeure, par exemple : apache/2
Minor : inclut le numéro de version mineur, par exemple : apache/2.0
Min : uniquement le numéro de version complet d'apache, par exemple : apache/ 2.0.54
OS : Inclut le type de système d'exploitation, par exemple : apache /2.0.54 (Unix)
Full : Inclut les modules et les numéros de version de module pris en charge par Apache, par exemple : Apache/2.0.54 (Unix) mod_ssl/2.0.54 OpenSSL/0.9. 7g
ServerSignature Off #Si une erreur se produit sur la page, les informations sur la version du serveur apparaissent. Le paramètre recommandé est Désactivé


(4) Paramètres de connexion persistante

KeepAlive On #Activez la fonction de connexion persistante. Autrement dit, lorsque le client se connecte au serveur, il reste connecté après avoir téléchargé les données.

MaxKeepAliveRequests 100 #Le nombre maximum de demandes pour un service de connexion.

KeepAliveTimeout 30 #Combien de temps faut-il continuer la connexion Si la connexion ne demande pas à nouveau de données, la connexion sera déconnectée. La valeur par défaut est de 15 secondes.

Paramètres d'alias
Pour les pages qui ne se trouvent pas dans le répertoire spécifié par DocumentRoot, vous pouvez utiliser soit des connexions symboliques, soit des alias. Les paramètres d'alias sont les suivants :

Alias /download/ "/var/www/download/" #Lors de l'accès, vous pouvez saisir : http://www.custing.com/download/

mnt/software/apache2/cgi-bin/" # Lors de l'accès : http://www.clusting.com/cgi-bin/. Mais les fichiers de script CGI de ce répertoire doivent avoir des autorisations exécutables !

#Définir les attributs du répertoire
AutoriserAucun
Options Aucun
Ordre autoriser, refuser
Autoriser de tous
(public_html)

UserDir public_html (La page d'accueil de l'utilisateur est stockée dans le répertoire public_html sous le répertoire personnel de l'utilisateur. L'URL http://www.clusting.com/~bearzhang/file.html lira le fichier /home/bearzhang/public_html/ .html)

chmod 755 /home/bearzhang #Permettre aux autres utilisateurs de lire le fichier.

UserDir /var/html (l'URL http://www.clusting.com/~bearzhang/file.html se lira /var/html/bearzhang/file.html)

UserDir /var/www/*/ docs (l'URL http://www.clusting.com/~bearzhang/file.html sera /var/www/bearzhang/docs/file.html)

Paramètres du journal

(1) Paramètres du journal des erreurs
ErrorLog logs/error_log #L'emplacement de stockage du journal
LogLevel warn #Le niveau du journal

Le format affiché est le suivant :
[Lun Oct 10 15:54:29 2005] [erreur] [client 192.168.10.22] l'accès à /download/ a échoué, raison : l'utilisateur administrateur n'est pas autorisé à accéder

(2) Paramètres du journal d'accès

Les formats par défaut des journaux sont les suivants :
LogFormat "%h %l %u %t "%r" %> ;s %b "%{Referer}i" "%{User-Agent}i"" combiné
LogFormat "%h %l %u %t "%r" %>s %b" common #common est le journal nom du format
LogFormat " %{Referer}i -> %U" référent
LogFormat "%{User-agent}i" agent
CustomLog logs/access_log common


Les paramètres dans le format sont les suivants :

% h -- l'adresse IP du client ou le nom d'hôte

%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 termine 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 de l'en-tête 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.

Ce qui suit est un exemple de journal d'accès :
192.168.10.22 - Bearzhang [10/Oct/2005:16:53:06 +0800] "GET /download/ HTTP/1.1" 200 1228
192.168.10.22 - - [10/Oct/2005:16:53:06 +0800] "GET /icons/blank.gif HTTP/1.1" 304 -
192.168.10.22 - - [10/Oct/2005:16:53:06 +0800] "GET /icons/back.gif HTTP/1.1" 304 -

Pour une explication détaillée de chaque paramètre, veuillez vous référer à : http://www.clusting.com/Apache/ApacheManual/logs.html


Configuration de l'authentification utilisateur
(1 )dans le httpd.conf :
AccessFileName .htaccess
.........
Alias /download/ "/var/www/download/"

Options Index
AllowOverride AuthConfig

(2) créer un fichier de mot de passe :
/usr/local/apache2/bin/htpasswd -c /var/httpuser/passwords Bearzhang

(3) configurez le serveur pour demander un mot de passe et indiquez au serveur quels utilisateurs sont autorisés à accéder
vi /var/www/download/.htaccess :
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /var/httpuser/passwords
Exiger l'utilisateur Bearzhang.
#Exiger un utilisateur valide #tous les utilisateurs valides

Configuration de l'hôte virtuel
(1) Configuration de l'hôte virtuel basée sur l'adresse IP
Écoutez 80

DocumentRoot /www/example1
ServerName www.example1. com
< /VirtualHost>
Écoutez 172.20.30.40 : 80 écoutez 172.20.30.40:8080
Écoutez 172.20.30.50:80
Écoutez 172.20.30.50:8080

& lt ; hôte virtuel 172.20.30.40:80>RO OT/WWW/Exemple1 -80
Nom du serveur www.example1.com


/Hôte Virtuel>
< VirtualHost 172.20.30.50:80>
DocumentRoot /www/example2-80
ServerName www.example1.org
Assurez-vous qu'Apache écoute sur le port 80
Écoutez 80

# Écoutez les demandes d'hôte virtuel sur toutes les adresses IP
NameVirtualHost *:80

example1
ServerName www.example1.com
ServerAlias example1.com. Autres directives ici
< ;/VirtualHost>

(4) Configurez un hôte virtuel basé sur un nom de domaine sur des serveurs avec plusieurs adresses IP :
Écoutez 80

# Il s'agit du serveur "principal" fonctionnant sur 172.20.30.40
ServerName server.domain.com
DocumentRoot /www/mainserver

# Ceci est l'autre adresse
NameVirtualHost 172.20.30.50


DocumentRoot /www/example1
ServerName www.example 1.com
# Autres directives ici ...


(5) dans différents Exécuter différents sites sur le port (configurer un hôte virtuel basé sur un nom de domaine sur un multi -port server) :
Écouter 80
Écouter 8080

NameVirtualHost 172.20.30.40:80
NameVirtualHost 172.20.30.40:8080


Nom du serveur www.exemple1.com
Racine du document /www/domaine -80



ServerName www.example1.com
Do cumentRoot /www/domain-8080


ServerName www.example2.org
DocumentRoot /www/otherdomain-80


< oot /www/otherdomain-8080


(6) Configuration d'hôte virtuel hybride basée sur le nom de domaine et sur IP :
Écoutez 80

NameVirtualHost 172.20.30.40

< /exemple1
Nom du serveur www.example1.com



DocumentRoot /www/ example2
ServerName www.example2.org
< ;/VirtualHost>

Première compréhension avant de configurer Certains notions de base :

La notion de certificat : il doit d'abord y avoir un certificat racine, puis le certificat racine est utilisé pour émettre le certificat serveur et le certificat client. Compréhension générale : le certificat serveur et le certificat client sont dans une relation horizontale. SSL doit installer un certificat de serveur pour l'authentification. Par conséquent : Dans cet environnement, il doit y avoir au moins trois certificats : certificat racine, certificat serveur, certificat client. Avant de générer un certificat, il existe généralement une clé privée. En même temps, la clé privée est utilisée pour générer une demande de certificat, puis le certificat racine du serveur de certificat est utilisé pour émettre le certificat.

Le certificat utilisé par SSL peut être généré par vous-même, ou il peut être signé par une autorité de certification commerciale (telle que Verisign ou Thawte).

Problèmes d'émission de certificats : si vous utilisez un certificat commercial, veuillez vérifier les instructions du vendeur concerné pour la méthode de signature spécifique ; s'il s'agit d'un certificat signé par un ami proche, vous pouvez utiliser l'outil de script CA.sh qui est livré avec openssl.

Si vous n'émettez pas de certificat pour un client distinct, le certificat client n'a pas besoin d'être généré. Le client et le serveur utilisent le même certificat.
(1) Les principaux paramètres du fichier de configuration conf/ssl.conf sont configurés comme suit :

Listen 443
SSLPassPhraseDialog buildin
#SSLPassPhraseDialog exec:/path/to/program
SSLSessionCache dbm:/usr/local/apache2/logs/ssl_scache
SSLSessionCacheTimeout 300
SSLMutex file:/usr/local/apache2/logs/ssl_mutex



# Configuration générale pour l'hôte virtuel
DocumentRoot "/usr/local/apache2/htdocs"
ServerName www.example.com:443
ServerAdmin you@example.com
ErrorLog /usr/local/apache2/logs/error_log
TransferLog /usr/local/apache2/logs/access_log

SSLEngine sur
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

SSLCertificateFile / usr/local/apache2/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key
CustomLog /usr/local/apache2/logs/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"



(2) 创建和使用自签署的证书:
a.Créez une clé privée RSA pour votre serveur Apache
/usr/local/openssl/bin/openssl genrsa -des3 -out /usr/local/apache2/conf/ ssl.key/server.key 1024

b. Créer une demande de signature de certificat (CSR)
/usr/local/openssl/bin/openssl req -new -key /usr/local/apache2/conf/ssl.key/server.key -out /usr/local/apache2/conf /ssl.key/server.csr

c. Créez un certificat CA auto-signé (structure X509) avec la clé RSA de l'autorité de certification
/usr/local/openssl/bin/openssl req -x509 -days 365 -key /usr/local/apache2/conf/ssl.key/ server.key -in /usr/local/apache2/conf/ssl.key/server.csr -out /usr/local/apache2/conf/ssl.crt/server.crt

/usr/local/openssl/bin/ openssl genrsa 1024 -out server.key
/usr/local/openssl/bin/openssl req -new -key server.key -out server.csr
/usr/local/openssl/bin/openssl req -x509 -days 365 - key server.key -in server.csr -out server.crt

(3) 创建自己的CA(认证证书),并使用该CA来签署服务器的证书。
mkdir /CA
cd /CA
cp openssl- 0.9.7g/apps/CA.sh /CA
./CA.sh -newca
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
cp server.csr newreq.pem
./CA.sh -sign

cp newcert.pem /usr/local/apache2/conf/ssl.crt/server.crt
cp server.key /usr/local/apache2/conf/ssl.key/

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!

Étiquettes associées:
source:yisu.com
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
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!