Compare commits

2 Commits

Author SHA1 Message Date
91a081fda3 solution 2022-07-08 12:14:48 +02:00
caf4422d22 instructions 2022-07-08 12:10:03 +02:00
3 changed files with 52 additions and 28 deletions

View File

@@ -4,41 +4,25 @@
Monter un serveur apache multi instance en utilisant l'archi apache Monter un serveur apache multi instance en utilisant l'archi apache
Cette instance va:
## Architecture * écouter sur le port 8801
* tourner avec l'identité du compte/groupe site1
Chaque vhost est servi par une instance apache dédiée écoutant sur un port distinct. * documentroot: /srv/site1/www
* errorlog: /srv/site1/logs/error_log
l'instance principale écoute sur 80 et 443 et fait office de reverse proxy + ssl offloading. Elle se contente de rediriger la requète vers la bonne instance en fonction du vhost appelé * accesslog: /srv/site1/logs/access_log # format combined
## Mise en oeuvre ## Mise en oeuvre
l'étude du fichier d'unité _/usr/lib/systemd/system/httpd@.service_ nous permet de deviner qu'il est possible de créer plusieurs instances d'apache en déposant des fichiers **nom**.conf dans /etc/httpd/conf et de les gérer via l'unité httpd@**nom**.service cf site1.conf, à copier dans /etc/httpd/conf/site1.conf
Le fichier /etc/httpd.conf/**nom**.conf va s'appuyer sur /usr/share/doc/httpd/instance.conf
On peut s'appuyer pour le contenu de ce fichier sur la variable HTTPD_INSTANCE
Il est donc _PRESQUE_ possible de rajouter une nouvelle instance à partir du vhost à héberger (par ex plop.fr)
- création du compte utilisateur et du group "plop.fr", rep perso /srv/plop.fr
- copie du fichier de conf d'une instance existante dans /etc/httpd/conf/plop.fr.conf
- changer le n° de port dans le fichier de conf
- lancer la nouvelle instance
## Gestion du service ## Gestion du service
on utilise l'unité httpd@**nominstance**.service avec systemctl
```bash
Pour que instance1 soit relancé avec l'instance principale: systemctl enble httpd@site1.service
systemctl start httpd@site1.service
créer le répertoire + fichier /etc/systemd/system/httpd\@instance1.service.d/override.conf
Y ajouter:
```ini
[Unit]
ReloadPropagatedFrom=httpd.service
``` ```
## Configuration du serveur frontal
cf fichier vh-site1.conf à déployer dans /etc/httpd/conf.d/

25
site1.conf Normal file
View File

@@ -0,0 +1,25 @@
#/etc/httpd/conf/site1.conf
DefaultRuntimeDir /run/httpd/instance-${HTTPD_INSTANCE}
PidFile /run/httpd/instance-${HTTPD_INSTANCE}.pid
Listen 8801
Include conf.modules.d/*.conf
User user1
Group user1
ServerAdmin root@site1.lia.fr
<Directory />
Options none
AllowOverride none
Require all denied
</Directory>
DocumentRoot "/srv/site1/www/"
<Directory "/srv/site1/www">
Require all granted
Options +indexes
</Directory>
DirectoryIndex index.html index.php
<Files ".ht*">
require all denied
</Files>
TypesConfig /etc/mime.types
EnableSendfile on

15
vh-site1.conf Normal file
View File

@@ -0,0 +1,15 @@
#/etc/httpd/conf.d/vh-site1.conf
<VirtualHost *:443>
ServerName site1.lia.fr
ServerAlias www.site1.lia.fr
ServerAdmin root@site1.lia.fr
ErrorLog /srv/site1/logs/error_log
CustomLog /srv/site1/logs/access_log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/webserver.crt
SSLCertificateKeyFile /etc/ssl/private/webserver.key
ProxyPass / http://127.0.0.1:8801
ProxyPassReverse / http://127.0.0.1:8801
</VirtualHost>