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é ?

If you are familiar with reverse proxy configuration, you don’t need the second IP.

You can run both Discourse and Wordpress listening on unix sockets (or higher ports) and run a reverse proxy software in front (I recommend Caddy) to serve on the same IP your blog.example.com and forum.example.com.

That said, if you aren’t familiar with this type of setup, running each in it’s own VPS is much easier as you can just follow the vast documentation for each.

5 « J'aime »

Can that setup you recommend work without issues?

I did something with haproxy when I was initially trying discourse. I was somewhat of a noob and still am in matters of servers and stuff but did anyway, and learned a bit about haproxy in the process. If I recall correctly there were issues with SSL, and the behavior of discourse whas somewhat inestable but guess I did I do something wrong.

So my question is it possible to do the configuration you recommend without instability and “funny” issues, without extreme amounts of fine tuning?

Yes, if you properly configure you reverse proxy it is possible. That is how this site right here is run.

What we can’t do is offer support to every reverse proxy configuration here.

Awesome!

Last petition: can you link me to some help documentation to do this configuration?

Nginx Running other websites on the same machine as Discourse

Caddy Running Discourse with Caddy Server

Apache How to set up Discourse on a server with existing Apache sites

3 « J'aime »

Lovely.

I remember when I did my trials I followed the apache guide. What is nor clear from the article is whether SSL should be disabled upon rebuilding discourse (and whether disabling it is accomplished by just not entering an email address for let’s encrypt), and what ports should be “exposed” on discourse/app.yml (the guide only shows who the line …

“8888:80” # fwd host port 8888 to container port 80 (http)

… is supposed to look, but nothing about the immediately following line in the app.yml file (the one than by default looks…

  • “443:443” # https

… should look like.

PS. While looking at the app.yml file to write that post I realized the following lines are present there:

##Uncomment these two lines if you wish to add Lets Encrypt (https)

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

… however, as of right now, my discourse app is running with SSL enabled but with these likes uncommented. How crucial commenting these lines is for my current setup (without a proxy) or for my desired setup (with a proxy and apache-wordpress)?

:slight_smile:

If you are not familiar with reverse proxies, and you can get a second IP easily, then that’s not a bad solution. Just do something like this:

expose:
  - "192.168.1.1:80:80"   # http
  - "192.168.1.1:443:443" # https
2 « J'aime »

This did it.

Love.
.

2 « J'aime »

You can do the same trick with Straightforward direct-delivery incoming mail.

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.

2 « J'aime »

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.

3 « J'aime »

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 !!

2 « J'aime »