Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 91a081fda3 | |||
| caf4422d22 |
40
Readme.md
40
Readme.md
@@ -4,41 +4,25 @@
|
||||
|
||||
Monter un serveur apache multi instance en utilisant l'archi apache
|
||||
|
||||
|
||||
## Architecture
|
||||
|
||||
Chaque vhost est servi par une instance apache dédiée écoutant sur un port distinct.
|
||||
|
||||
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é
|
||||
Cette instance va:
|
||||
* écouter sur le port 8801
|
||||
* tourner avec l'identité du compte/groupe site1
|
||||
* documentroot: /srv/site1/www
|
||||
* errorlog: /srv/site1/logs/error_log
|
||||
* accesslog: /srv/site1/logs/access_log # format combined
|
||||
|
||||
## 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
|
||||
|
||||
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
|
||||
cf site1.conf, à copier dans /etc/httpd/conf/site1.conf
|
||||
|
||||
## Gestion du service
|
||||
|
||||
on utilise l'unité httpd@**nominstance**.service avec systemctl
|
||||
|
||||
|
||||
Pour que instance1 soit relancé avec l'instance principale:
|
||||
|
||||
créer le répertoire + fichier /etc/systemd/system/httpd\@instance1.service.d/override.conf
|
||||
|
||||
Y ajouter:
|
||||
```ini
|
||||
[Unit]
|
||||
ReloadPropagatedFrom=httpd.service
|
||||
```bash
|
||||
systemctl enble httpd@site1.service
|
||||
systemctl start httpd@site1.service
|
||||
```
|
||||
|
||||
## Configuration du serveur frontal
|
||||
|
||||
|
||||
cf fichier vh-site1.conf à déployer dans /etc/httpd/conf.d/
|
||||
|
||||
25
site1.conf
Normal file
25
site1.conf
Normal 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
15
vh-site1.conf
Normal 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>
|
||||
Reference in New Issue
Block a user