Skip to content

Serveurs🔗

Ce document contient des informations relatives aux serveurs sur lesquels nous déployons nos projets à Elao.

Environnements🔗

La plupart des projets exposent au moins 2 environnements :

  • la staging qui est un serveur de démonstration, utilisé pour les recettes clients.
  • la production, généralement composée de 1 à plusieurs serveurs.

Certains projets exposent plusieurs stagings que l'on nomme STAGES. Pour l'instant, celles-ci sont en réalité sur un même et unique serveur, avec des dossiers de déploiements, hosts nginx, configs Supervisor et databases distincts.

Les URLs de staging sont généralement formées ainsi:

  • https://staging.project-name.com
  • https://staging-1.project-name.com
  • https://staging-2.project-name.com
  • ...

Config SSH🔗

Afin de se connecter facilement en SSH aux serveurs, il est recommandé d'ajouter la config suivante à votre ~/.ssh/config

1
2
3
Host *.rix.link
    User            app
    ForwardAgent    yes

Pour les projets les plus anciens, vous pourriez avoir besoin également de cette config:

1
2
3
4
5
6
Host *.elao.run
    User            app
    ForwardAgent    yes
Host *.elao.ninja
    User            app
    ForwardAgent    yes

Cette configuration vous sera également utile afin de vous connecter aux bases de données via SSH, avec un logiciel tel que Sequel Pro ou PhpStorm.

Utilitaires🔗

La commande server_infos affiche certaines informations utiles concernant le serveur sur lequel vous êtes connectés :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
%%%%%%%%%%%%%%%%%%%%%%%%
%     SERVER INFOS     %
%%%%%%%%%%%%%%%%%%%%%%%%

OS: "Debian GNU/Linux 9 (stretch)"

Free Disk /srv: 32G

-> Outbound IP: 178.x.x.x
Inbound IP <-:  178.x.x.x

Sudo Commands Available:
 /bin/systemctl reload php7.4-fpm
 /usr/bin/supervisorctl status
 /usr/bin/supervisorctl stop *
 /usr/bin/supervisorctl start *
 /usr/bin/supervisorctl restart *

HTTP Routing🔗

Client real IP🔗

La résolution de l'IP client (real IP) est faite côté infra, concrètement $_SERVER['REMOTE_ADDR'] contiendra l'IP résolue.

Il n'est pas nécessaire de se reposer sur les headers X-Forwarded-For ou Forwarded, et la résolution côté application peut être désactivée.

Configuration Symfony :

1
2
3
framework:
    trusted_proxies: ''
    trusted_headers: []

HTTP/HTTPS🔗

La configuration du schéma (HTTP ou HTTPS) est faite côté infra, concrètement $_SERVER['HTTPS'] contiendra la valeur https ou 1 si l'application est en HTTPS.

Il n'est pas nécessaire de se reposer sur les headers X-Forwarded-Proto ou Forwarded, et la résolution côté application peut être désactivée.

Configuration Symfony :

1
2
3
framework:
    trusted_proxies: ''
    trusted_headers: []

⚠️ Le router de votre application doit être compatible avec $_SERVER['HTTPS']


Last update: December 20, 2024