Skip to main content

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.confupstreampropre backend_instance1docker-compose.yml {dans serverun localhost:8065;dossier keepaliveséparé
  • Son 64;}serverpropre {.env listenavec 80;des server_namevaleurs 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 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;
    }
}