¿Puedo ejecutar WordPress en el mismo VPS con una segunda IP?

Hola.

Sé que se recomienda ejecutar Discourse en su propio servidor, pero estoy financiando este proyecto de mi propio bolsillo y es básicamente un pasatiempo con pocas perspectivas o intención de monetización a corto plazo, al menos.

Así que estaba pensando, en lugar de comprar otro VPS, en solicitar una segunda dirección IP y ejecutar WordPress en un servidor virtual Apache basado en IP, lo que ayudaría a mantener bajos los costos.

¿Es esto factible o se desaconseja?

Si estás familiarizado con la configuración de un proxy inverso, no necesitas una segunda dirección IP.

Puedes ejecutar tanto Discourse como WordPress escuchando en sockets Unix (o en puertos más altos) y colocar un software de proxy inverso delante (recomiendo Caddy) para servir en la misma IP tus dominios blog.example.com y forum.example.com.

Dicho esto, si no estás familiarizado con este tipo de configuración, ejecutar cada uno en su propio VPS es mucho más sencillo, ya que solo tienes que seguir la amplia documentación disponible para cada uno.

¿Puede funcionar sin problemas esa configuración que recomiendas?

Hice algo con haproxy cuando estaba intentando instalar Discourse inicialmente. Era bastante novato y sigo siéndolo en asuntos de servidores y cosas así, pero lo hice de todos modos, y aprendí un poco sobre haproxy en el proceso. Si recuerdo correctamente, hubo problemas con SSL y el comportamiento de Discourse fue algo inestable, pero supongo que hice algo mal.

Así que mi pregunta es: ¿es posible realizar la configuración que recomiendas sin inestabilidad y problemas “raros”, sin cantidades extremas de ajuste fino?

Sí, si configuras correctamente tu proxy inverso, es posible. Así es como se ejecuta este sitio mismo.

Lo que no podemos hacer es ofrecer soporte para cada configuración de proxy inverso aquí.

¡Genial!

Última petición: ¿puedes enviarme un enlace a la documentación de ayuda para realizar esta configuración?

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

Genial.

Recuerdo que cuando hice mis pruebas seguí la guía de Apache. Lo que no queda claro en el artículo es si SSL debe desactivarse al reconstruir Discourse (y si desactivarlo se logra simplemente sin ingresar una dirección de correo electrónico para Let’s Encrypt), y qué puertos deben “exponerse” en discourse/app.yml (la guía solo muestra cómo debe verse la línea…

“8888:80” # reenvía el puerto del host 8888 al puerto del contenedor 80 (http)

…, pero no dice nada sobre la línea inmediatamente siguiente en el archivo app.yml (la que, por defecto, se ve así…

  • “443:443” # https

… debería verse).

PD: Mientras revisaba el archivo app.yml para escribir esta publicación, me di cuenta de que las siguientes líneas están presentes allí:

##Descomenta estas dos líneas si deseas agregar Let’s Encrypt (https)

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

…, sin embargo, por el momento, mi aplicación de Discourse se está ejecutando con SSL habilitado pero con estas líneas descomentadas. ¿Qué tan crítico es comentar estas líneas para mi configuración actual (sin proxy) o para mi configuración deseada (con proxy y apache-wordpress)?

:slight_smile:

Si no estás familiarizado con los proxies inversos y puedes obtener fácilmente una segunda dirección IP, esa no es una mala solución. Simplemente haz algo como esto:

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

Esto funcionó.

Gracias.

Puedes hacer el mismo truco con Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver.

Gracias, esto funcionó para mí. Mi proveedor de VPS ofrece “IPs flotantes” económicas además de la IP principal configurada en el VPS. Esta solución es muy práctica para mí. Debería estar mejor documentada, ya que es tan sencilla.

expose:
   - "mi_ip_flotante:80:80"
   - "mi_ip_flotante:443:443"

¿Funcionó eso? No pensaba que el droplet pudiera saber sobre la IP flotante.

Bueno, funciona perfectamente:

Primero, compra una IP flotante y asígnala a tu VPS.
Luego, configura el servidor para usarla:

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

auto eth0:1
iface eth0:1 inet static
    address tu.IP.Flotante
    netmask 32

Guarda los cambios y reinicia la red:

sudo service networking restart

Ahora tengo 2 IPs: uso la IP principal para configurar varios sitios de nginx. Ten en cuenta las líneas de configuración en /etc/nginx/sites-enabled:

listen mi_IP_principal:80 mi_servidor.name;
listen mi_IP_principal:443 ssl http2 mi_servidor.name;

Y la IP flotante en /var/discourse/containers/app.yml de la siguiente manera:

expose:
   - "mi_ip_flotante:80:80"
   - "mi_ip_flotante:443:443"

Verifica que todo esté en orden (las IPs originales se han editado como floating_ip y 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       

No sé si es apropiado mencionar nombres, pero el servidor está en Hetzner Cloud y la función de IP flotante es muy conveniente y tiene un precio adecuado.

¡Ajá! ¡No sabía que se podía hacer eso!

También se puede usar este truco para ejecutar múltiples servidores de correo entrante para múltiples dominios

¡Buen trabajo!

¡Ajá! ¡Por eso no sabía cómo funcionaba!

Sé que este es un tema antiguo, pero quería agradecerles, esto podría ahorrarme días de trabajo en un problema similar con el que he estado lidiando. ¡¡Gracias por compartir esta información invaluable con todos!!