Niveau matériel, il s'agit des serveurs suivants :
- Online : Start-2-S-SATA et la VM a 1 cœur et 2G ram
- Kimsufi : KS-7 et la VM a 2 cœurs et 2G ram
Disques SATA pour les 2 (les versions SSD offrent moins d'espace et j'utilise ces serveurs aussi pour de la sauvegarde de fichiers personnels et les versions SSD ne disposent pas de suffisamment d'espace pour le prix que je suis prêt à mettre).
Pour la BDD c'est MariaDB installée depuis les dépôts Debian Buster (d'ailleurs tout est installé depuis les dépôts "à l'ancienne" - pas de conteneur).
BXT : c'est bien ce tuto que j'ai suivi. C'est pour cela que je ne comprends pas l'alerte de hit... pourquoi il n'utilise pas vraiment memcached.
Pour l'histoire, c'est une amie qui voulait avoir un blog sans rien payer pour l'instant (c'est juste pour voir ce que c'est) et comme j'ai ces 2 serveurs sous la main et que j'aime bien me prendre la tête / apprendre, je me suis proposé de lui mettre ça en place.
Si jamais ça devient une "activité" pour elle et elle est prête à y mettre de l'argent, je penses que je prendrais un DEV1-S chez Scaleway, vu que c'est du "cloud" pas de soucis de disque dur qui lâche ou autre.
L’idée à la base était que le site soit accessible à tout moment même si une des machines/VM n'est plus accessible, d’où la réplication maître-maître entre les BDD et le GlusterFS pour héberger Wordpress. Mais en fait c'est plus parce que j'avais jamais mis ça en place et j’étais curieux de voir si/comment ça marche 😆
Pour les confs (en enlevant les parties non pertinentes) :
HAProxy
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon
ca-base /etc/ssl/certs
crt-base /etc/ssl/private
ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl-default-bind-options no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets
ssl-default-server-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl-default-server-options no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets
tune.ssl.default-dh-param 2048
defaults
option forwardfor
log global
mode http
option httplog
option dontlognull
option http-server-close
timeout connect 5000
timeout client 50000
timeout server 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
frontend http-front
bind xx.xx.xx.xx:80
capture request header Host len 20
acl with_certificates hdr(host) -i -m end mydomain.com
acl my_domains hdr(host) -i -m end mydomain.com
http-request deny unless my_domains
redirect scheme https code 301 if !{ ssl_fc } with_certificates
default_backend http-back
frontend https-front
bind xx.xx.xx.xx:443 ssl crt /etc/letsencrypt/services/haproxy/certs/ alpn h2,http/1.1
capture request header Host len 20
acl my_domains hdr(host) -i -m end mydomain.com
http-request deny unless my_domains
reqadd X-Forwarded-Proto:\ https
default_backend http-back
backend http-back
balance roundrobin
cookie SERVERUSED insert indirect nocache
option httpchk HEAD /healthcheck HTTP/1.0\r\nUser-agent:\ ha-proxy
default-server maxconn 500
server vm1 vm1.lan:80 cookie vm1 check inter 10s weight 15
server vm2 vm2.lan:80 cookie vm2 check inter 10s weight 10
Apache
<VirtualHost *:80>
ServerName mydomain.com
ServerAdmin webadmin@mydomain.com
DocumentRoot /var/www/mydomain/wordpress
<Directory /var/www/mydomain/wordpress>
AllowOverride All
</Directory>
SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded
ErrorLog ${APACHE_LOG_DIR}/mydomain/error.log
CustomLog ${APACHE_LOG_DIR}/mydomain/access.log combined env=!forwarded
CustomLog ${APACHE_LOG_DIR}/mydomain/access.log proxy env=forwarded
</VirtualHost>
Donc en conclusion, ça vient bien des machines qui ne sont pas assez puissantes (CPU, HDD au lieu de SSD, etc).
Pour l'instant je vais laisser ça comme ça, même si je suis intrigué par les alertes memcached et mariadb de mon premier post.