chat claude
https://claude.ai/chat/b1885736-ac35-42c7-9bb0-205f08c37415
nginx
Architecture multi-instances Mattermost
1. =====Côté INSTANCEDocker 1(tu dis savoir faire, mais je résume) :
Chaque groupe.aubaygues.frinstance =====#doit Fichieravoir :
- Son
/etc/nginx/sites-available/mattermost-instance1.confupstreamproprebackend_instance1docker-compose.yml{dansserverunlocalhost:8065;dossierkeepaliveséparé - Son
64;}serverpropre{.envlistenavec80;desserver_namevaleursgroupe.aubaygues.fr; return 301 https://$host$request_uri;}server { listen 443 ssl http2; server_name groupe.aubaygues.fr; ssl_certificate /etc/letsencrypt/live/groupe.aubaygues.fr/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/groupe.aubaygues.fr/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; location ~ /api/v[0-9]+/(users/)?websocket$ { proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://backend_instance1; } location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; proxy_pass http://backend_instance1; }}# ===== INSTANCE 2uniques :projet-x.aubaygues.fr =====# Fichier : /etc/nginx/sites-available/mattermost-instance2.confupstream backend_instance2 { server localhost:8066; # Port différent ! keepalive 64;}server { listen 80; server_name projet-x.aubaygues.fr; return 301 https://$host$request_uri;}server { listen 443 ssl http2; server_name projet-x.aubaygues.fr; ssl_certificate /etc/letsencrypt/live/projet-x.aubaygues.fr/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/projet-x.aubaygues.fr/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; location ~ /api/v[0-9]+/(users/)?websocket$ { proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://backend_instance2; } location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; proxy_pass http://backend_instance2; }}
# ===== INSTANCE 1 : groupe.aubaygues.fr =====
# Fichier : /etc/nginx/sites-available/mattermost-instance1.conf
upstream backend_instance1 {
server localhost:8065;
keepalive 64;
}
server {
listen 80;
server_name groupe.aubaygues.fr;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name groupe.aubaygues.fr;
ssl_certificate /etc/letsencrypt/live/groupe.aubaygues.fr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/groupe.aubaygues.fr/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location ~ /api/v[0-9]+/(users/)?websocket$ {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://backend_instance1;
}
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_pass http://backend_instance1;
}
}
# ===== INSTANCE 2 : projet-x.aubaygues.fr =====
# Fichier : /etc/nginx/sites-available/mattermost-instance2.conf
upstream backend_instance2 {
server localhost:8066; # Port différent !
keepalive 64;
}
server {
listen 80;
server_name projet-x.aubaygues.fr;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name projet-x.aubaygues.fr;
ssl_certificate /etc/letsencrypt/live/projet-x.aubaygues.fr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/projet-x.aubaygues.fr/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location ~ /api/v[0-9]+/(users/)?websocket$ {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://backend_instance2;
}
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_pass http://backend_instance2;
}
}