Puis-je faire fonctionner WordPress sur le même VPS avec une deuxième IP ?

Bonjour.

Je sais qu’il est recommandé d’exécuter Discourse sur son propre serveur, mais je finance ce projet de ma poche. C’est essentiellement un passe-temps, avec peu de perspectives ou d’intention de monétisation à court terme, du moins.

Je pensais donc, au lieu d’acheter un autre VPS, de demander une deuxième adresse IP et d’exécuter WordPress sur un serveur virtuel Apache basé sur l’IP, ce qui aiderait à maintenir les coûts bas.

Est-ce réalisable ou est-ce déconseillé ?

Si vous êtes familier avec la configuration d’un proxy inverse, vous n’avez pas besoin de la deuxième adresse IP.

Vous pouvez exécuter à la fois Discourse et WordPress en écoutant sur des sockets Unix (ou des ports supérieurs) et faire fonctionner un logiciel de proxy inverse devant (je recommande Caddy) pour servir sur la même adresse IP votre blog.example.com et forum.example.com.

Cela dit, si vous n’êtes pas familier avec ce type de configuration, exécuter chacun sur son propre VPS est beaucoup plus simple, car vous pouvez simplement suivre la vaste documentation disponible pour chacun.

Est-ce que la configuration que vous recommandez peut fonctionner sans problème ?

J’ai fait quelque chose avec HAProxy lorsque j’essayais initialement Discourse. J’étais un peu novice, et je le suis encore en ce qui concerne les serveurs et tout le reste, mais je l’ai fait quand même, et j’en ai appris un peu sur HAProxy en cours de route. Si je me souviens bien, il y avait des problèmes avec SSL, et le comportement de Discourse était quelque peu instable, mais je suppose que j’ai fait quelque chose de mal.

Ma question est donc : est-il possible de réaliser la configuration que vous recommandez sans instabilité et sans problèmes “étranges”, sans avoir besoin d’un réglage extrême ?

Oui, si vous configurez correctement votre proxy inverse, c’est possible. C’est ainsi que ce site fonctionne.

En revanche, nous ne pouvons pas offrir de support pour chaque configuration de proxy inverse ici.

Super !

Dernière demande : pouvez-vous me lier à une documentation d’aide pour effectuer cette configuration ?

Nginx Run other websites on the same machine as Discourse

Caddy Use Caddy instead of NGINX as your reverse proxy

Apache Set up Discourse on a server with existing Apache sites

Super.

Je me souviens que lorsque j’ai effectué mes tests, j’ai suivi le guide Apache. Ce qui n’est pas clair dans l’article, c’est savoir si SSL doit être désactivé lors de la reconstruction de Discourse (et si la désactivation s’effectue simplement en ne saisissant pas d’adresse e-mail pour Let’s Encrypt), ainsi que quels ports doivent être « exposés » dans app.yml de Discourse (le guide montre uniquement à quoi doit ressembler la ligne…

“8888:80” # transfert du port hôte 8888 vers le port conteneur 80 (http)

… mais ne dit rien concernant la ligne suivante immédiate dans le fichier app.yml (celle qui, par défaut, ressemble…

  • “443:443” # https

… et à quoi elle devrait ressembler).

PS. En examinant le fichier app.yml pour rédiger ce post, j’ai remarqué que les lignes suivantes y figurent :

##Décommentez ces deux lignes si vous souhaitez ajouter Let’s Encrypt (https)

  • “templates/web.ssl.template.yml”
  • “templates/web.letsencrypt.ssl.template.yml”

… cependant, à l’heure actuelle, mon application Discourse fonctionne avec SSL activé, mais ces lignes sont décommentées. Dans quelle mesure le fait de commenter ces lignes est-il crucial pour ma configuration actuelle (sans proxy) ou pour ma configuration souhaitée (avec un proxy et apache-wordpress) ?

:slight_smile:

Si vous n’êtes pas familier avec les reverse proxies et que vous pouvez facilement obtenir une seconde adresse IP, ce n’est pas une mauvaise solution. Il suffit de faire quelque chose comme ceci :

expose:
  - "192.168.1.1:80:80"   # http
  - "192.168.1.1:443:443" # https

Cela a fonctionné.

Merci.

Vous pouvez faire la même chose avec Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver.

Merci, cela a fonctionné pour moi. Mon fournisseur de VPS propose des « adresses IP flottantes » peu coûteuses en plus de l’adresse IP principale configurée sur le VPS. Cette solution est très élégante pour moi. Elle devrait être mieux documentée, car elle est si simple.

expose:
   - "mon_ip_flottante:80:80"
   - "mon_ip_flottante:443:443"

Ça a marché ? Je ne pensais pas que le droplet puisse connaître l’adresse IP flottante.

Bon, cela fonctionne parfaitement :

D’abord, achetez une adresse IP flottante et liez-la à mon VPS.
Ensuite, configurez le serveur pour l’utiliser :

vim /etc/network/interfaces.d/60-my-floating-ip.cfg

auto eth0:1
iface eth0:1 inet static
    address votre.IP.Flottante
    netmask 32

Puis enregistrez. Redémarrez le réseau :

sudo service networking restart

Maintenant, j’ai deux adresses IP : j’utilise l’adresse IP principale pour configurer plusieurs sites nginx. Veuillez noter les lignes de configuration dans /etc/nginx/sites-enabled :

listen mon_IP_principale:80 monserveur.name;
listen mon_IP_principale:443 ssl http2 monserveur.name;

Et l’adresse IP flottante dans /var/discourse/containers/app.yml comme suit :

expose:
   - "mon_IP_flottante:80:80"
   - "mon_IP_flottante:443:443"

Vérifiez que tout est en ordre (les adresses IP d’origine ont été remplacées par floating_ip et main_ip) :

# netstat -taunp | grep -i listen
tcp        0      0 floating_ip:80      0.0.0.0:*               LISTEN      19775/docker-proxy  
tcp        0      0 main_ip:80          0.0.0.0:*               LISTEN      13151/nginx: master 
tcp        0      0 0.0.0.0:22          0.0.0.0:*               LISTEN      725/sshd            
tcp        0      0 floating_ip:443     0.0.0.0:*               LISTEN      19763/docker-proxy  
tcp        0      0 main_ip:443         0.0.0.0:*               LISTEN      13151/nginx: master 
tcp6       0      0 :::22                      :::*                    LISTEN      725/sshd       

Je ne sais pas s’il est approprié de citer des noms, mais le serveur est hébergé sur Hetzner Cloud et la fonctionnalité d’adresse IP flottante est très pratique et correctement tarifiée.

Ah ! Je ne savais pas que c’était possible !

On peut aussi utiliser cette astuce pour exécuter plusieurs serveurs de messagerie entrante pour plusieurs domaines.

Excellent travail !

Ah ! Et c’est pourquoi je ne savais pas comment cela fonctionnait.

Je sais que c’est un sujet ancien, mais je voulais vous remercier, cela pourrait me faire économiser des jours de travail sur un problème similaire auquel je suis confronté. Merci de partager ces informations inestimables avec tout le monde !!