services:http:gurvant
Différences
Ci-dessous, les différences entre deux révisions de la page.
— | services:http:gurvant [2019/09/10 17:55] (Version actuelle) – créée - modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== HTTP sur gurvant ====== | ||
+ | Implémentation utilisée : | ||
+ | ===== Sites servis ===== | ||
+ | |||
+ | Sauf exception, tout est servi en HTTPS par défaut. Voir [[::ssl]]. | ||
+ | |||
+ | ==== Site principal de gifon ==== | ||
+ | [[https:// | ||
+ | |||
+ | Il s’agit d’un wordpress. Il existe un utilisateur particulier permettant de le mettre à jour, nginx n’a pas le droit d’écrire dans le dossier de wordpress. | ||
+ | |||
+ | === Doc de déploiement === | ||
+ | |||
+ | On crée l’utilisateur voulu : | ||
+ | < | ||
+ | |||
+ | On rapatrie le wordpress de dev sur gurvant, là c’est laissé à la discrétion de l’admin, ça importe peu. | ||
+ | |||
+ | On autorise wordpress à lire et écire, nginx à lire, et le reste à aller se faire voir. Notons que sous debian, nginx tourne sous l’utilisateur www-data. | ||
+ | < | ||
+ | chmod -R o-rwx / | ||
+ | chmod -R g-rwx / | ||
+ | chmod g+rX / | ||
+ | </ | ||
+ | |||
+ | On installe wp-cli afin d’avoir un truc à peu près utilisable : | ||
+ | < | ||
+ | curl -O https:// | ||
+ | php wp-cli.phar --info | ||
+ | chmod +x wp-cli.phar | ||
+ | mv wp-cli.phar / | ||
+ | </ | ||
+ | |||
+ | On crée l’utilisateur MySQL pour wordpress (évidemment, | ||
+ | < | ||
+ | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, INDEX, LOCK TABLES, REFERENCES, CREATE TEMPORARY TABLES, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, EXECUTE, ALTER ROUTINE ON wordpress.* TO ' | ||
+ | CREATE DATABASE wordpress; | ||
+ | </ | ||
+ | |||
+ | On importe la DB de dev (la méthode de rapatriement est libre) : | ||
+ | < | ||
+ | mysql -u wordpress -p wordpress < / | ||
+ | </ | ||
+ | |||
+ | Wordpress fait un 301 (redirection permanante) si le domaine demandé ne correspond à celui dans la DB. On va donc changer ça. | ||
+ | < | ||
+ | root ~ # su - wordpress | ||
+ | $ wp option update siteurl https:// | ||
+ | $ wp option update home https:// | ||
+ | </ | ||
+ | |||
+ | Et enfin, on met à jour la conf nginx : | ||
+ | < | ||
+ | cp / | ||
+ | vim / | ||
+ | server { | ||
+ | listen 80; | ||
+ | listen [:: | ||
+ | server_name grifon.fr www.grifon.fr; | ||
+ | access_log / | ||
+ | |||
+ | # | ||
+ | location / { | ||
+ | root / | ||
+ | try_files $uri @redirect; | ||
+ | } | ||
+ | |||
+ | location @redirect { | ||
+ | return 301 https:// | ||
+ | } | ||
+ | } | ||
+ | |||
+ | server { | ||
+ | listen 443 ssl; | ||
+ | listen [:: | ||
+ | server_name www.grifon.fr; | ||
+ | |||
+ | ssl_certificate / | ||
+ | ssl_certificate_key / | ||
+ | include ssl/ | ||
+ | |||
+ | return 301 https:// | ||
+ | } | ||
+ | |||
+ | server { | ||
+ | listen 443 ssl; | ||
+ | listen [:: | ||
+ | server_name grifon.fr; | ||
+ | access_log / | ||
+ | |||
+ | ssl_certificate / | ||
+ | ssl_certificate_key / | ||
+ | include ssl/ | ||
+ | |||
+ | root / | ||
+ | index index.php index.html; | ||
+ | |||
+ | location / { | ||
+ | try_files $uri $uri/ / | ||
+ | } | ||
+ | |||
+ | # pass the PHP scripts to FastCGI server listening on / | ||
+ | location ~ \.php$ { | ||
+ | #try_files $uri $uri/ / | ||
+ | fastcgi_pass unix:/ | ||
+ | fastcgi_index index.php; | ||
+ | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | ||
+ | include fastcgi_params; | ||
+ | |||
+ | } | ||
+ | |||
+ | location /config/ { | ||
+ | deny all; | ||
+ | return 403; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | === Doc de mise à jour === | ||
+ | == Sauvegarder le dossier == | ||
+ | < | ||
+ | rsync -av --progress wordpress wordpress-$(date +%F)</ | ||
+ | |||
+ | == Sauvegarder la base de données == | ||
+ | Pour avoir les informations de la base (utilisateur, | ||
+ | < | ||
+ | |||
+ | Puis dump de la base : | ||
+ | < | ||
+ | |||
+ | == Mise à jour en elle-même == | ||
+ | < | ||
+ | $ wp core update | ||
+ | $ wp core update-db | ||
+ | $ wp core language update | ||
+ | $ wp plugin update --all</ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== vHost par défaut ==== | ||
+ | [[https:// | ||
+ | Sert pour afficher les stats [[https:// | ||
+ | |||
+ | === Interface web de l’hyperviseur === | ||
+ | [[https:// | ||
+ | Reverse proxy vers erispoe avec authentification par x509 | ||
+ | < | ||
+ | # on vérifie que le certificat est valide (date d' | ||
+ | # un code 412 sera retourné s'il y a une erreur sur le certificat (expiré) | ||
+ | if ( $ssl_client_verify != SUCCESS ) { | ||
+ | return 412; | ||
+ | } | ||
+ | # Si le code 403 est retourné, c'est qu'un certificat qui n'est pas géré par | ||
+ | # grifon qui a été envoyé | ||
+ | if ( $ssl_client_s_dn !~ / | ||
+ | return 403; | ||
+ | } | ||
+ | # Su le code 402 est retourné, c'est que le certificat ne permet pas l' | ||
+ | # interface précise. | ||
+ | if ( $ssl_client_s_dn !~ /(OU=VM)/ ){ | ||
+ | return 402; | ||
+ | } | ||
+ | </ | ||
+ | Voir [[https:// | ||
+ | |||
+ | === Interface web de gestion des adhérents === | ||
+ | Idem interface hyperviseur (en cours de déploiement). | ||
+ | |||
+ | [[https:// | ||
+ | === IPAM === | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | |||
+ | === mirror === | ||
+ | [[http:// | ||
+ | vHost servi en HTTP seulement, cache pour les paquets debian et debian. \\ | ||
+ | Voir également [[services: | ||
+ | |||
+ | Simple reverse proxy : | ||
+ | < | ||
+ | location / { | ||
+ | proxy_pass http:// | ||
+ | proxy_set_header X-Forwarded-Proto $scheme; | ||
+ | proxy_set_header Host $http_x_forwarded_host; | ||
+ | proxy_set_header Upgrade $http_upgrade; | ||
+ | | ||
+ | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||
+ | | ||
+ | proxy_send_timeout 3m; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Il peut être intéressant d’empêcher l’accès à la page d’administration. Ça évitera par exemple qu’un petit malin vide tout le cache ; ce qui est dommage quand on met en place un cache… | ||
+ | < | ||
+ | location / | ||
+ | deny all; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | === listes === | ||
+ | [[https:// | ||
+ | Interface web de mailman | ||
+ | |||
+ | Fonctionne avec un mélange de cgi et d’aliases en fonction de la location : | ||
+ | < | ||
+ | location / { | ||
+ | rewrite ^/$ $1/listinfo permanent; | ||
+ | |||
+ | fastcgi_split_path_info ^(/ | ||
+ | fastcgi_pass unix:/ | ||
+ | include / | ||
+ | fastcgi_param PATH_INFO | ||
+ | fastcgi_param PATH_TRANSLATED | ||
+ | } | ||
+ | |||
+ | location /mailman { | ||
+ | root / | ||
+ | fastcgi_split_path_info (^/ | ||
+ | fastcgi_pass | ||
+ | include | ||
+ | fastcgi_param PATH_INFO $fastcgi_path_info; | ||
+ | fastcgi_param SCRIPT_FILENAME | ||
+ | if ($request_method = ' | ||
+ | add_header ' | ||
+ | } | ||
+ | } | ||
+ | |||
+ | location / | ||
+ | alias / | ||
+ | } | ||
+ | |||
+ | location /pipermail { | ||
+ | alias / | ||
+ | autoindex on; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | === monitoring === | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | |||
+ | == shinken == | ||
+ | Reverse proxy sur le daemon http de shinken : | ||
+ | < | ||
+ | # Serve static content directly | ||
+ | location / | ||
+ | try_files htdocs/$uri plugins/ | ||
+ | } | ||
+ | |||
+ | location @webui { | ||
+ | #root / | ||
+ | root / | ||
+ | } | ||
+ | |||
+ | |||
+ | # Redirection | ||
+ | location / { | ||
+ | # Set the adequate variables so that the WebUI will | ||
+ | # know what hostname it has, this is useful for redirects | ||
+ | proxy_set_header | ||
+ | proxy_set_header | ||
+ | proxy_set_header | ||
+ | proxy_set_header | ||
+ | |||
+ | # Replace 7767 (default) by the port your shinken WebUI is listening on. | ||
+ | proxy_pass http:// | ||
+ | proxy_read_timeout | ||
+ | |||
+ | proxy_redirect http:// | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | == munin == | ||
+ | cgi vers le script de munin : | ||
+ | < | ||
+ | # munin | ||
+ | location /munin/ { | ||
+ | alias / | ||
+ | } | ||
+ | |||
+ | location / | ||
+ | alias / | ||
+ | expires 31d; | ||
+ | } | ||
+ | |||
+ | # spawn-fcgi -s / | ||
+ | location /munin-cgi/ { | ||
+ | fastcgi_split_path_info ^(/ | ||
+ | fastcgi_param PATH_INFO $fastcgi_path_info; | ||
+ | fastcgi_pass unix:/ | ||
+ | include fastcgi_params; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | == LibreNMS == | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | Si on suit la doc officielle, il faut créer un vHost spécial pour LibreNMS, mais ça veut dire un certificat en plus et une redirection HTTP → HTTPS en plus. Et comme je suis feignant, j’ai pas envie. \\ | ||
+ | J’ai donc légèrement modifié la conf nginx pour l’utiliser dans le vHost de monitoring. Le premier bloc pour PHP est à mettre avant celui déjà utilisé s’il y en a un. | ||
+ | |||
+ | < | ||
+ | # php configuration for librenms | ||
+ | location ~ / | ||
+ | | ||
+ | fastcgi_index index.php; | ||
+ | | ||
+ | fastcgi_split_path_info ^(.+\.php)(/ | ||
+ | proxy_intercept_errors on; | ||
+ | fastcgi_intercept_errors on; | ||
+ | } | ||
+ | location ~ /\.ht { | ||
+ | deny all; | ||
+ | } | ||
+ | |||
+ | location /librenms/ { | ||
+ | try_files $uri $uri/ @librenms; | ||
+ | } | ||
+ | |||
+ | location @librenms { | ||
+ | rewrite api/v0(.*)$ / | ||
+ | rewrite ^(.+)$ / | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | === passbolt === | ||
+ | [[https:// | ||
+ | Gestionnaire de mots de passes avec GPG en JS côté navigateur. | ||
+ | |||
+ | === travaux === | ||
+ | [[https:// | ||
+ | Flyspray pour la gestion des tâches | ||
+ | |||
+ | === wiki === | ||
+ | Ce présent wiki. \\ | ||
+ | Utilisation du paquet debian, configuration sans base de données. |
services/http/gurvant.txt · Dernière modification : 2019/09/10 17:55 de 127.0.0.1