Posso rodar WordPress no mesmo VPS com um segundo IP?

Olá.

Sei que é recomendado executar o Discourse em seu próprio servidor, mas estou financiando este projeto com meus próprios recursos, e ele é basicamente um hobby, com poucas perspectivas ou intenção de monetização no curto prazo, pelo menos.

Então, em vez de comprar outro VPS, estava pensando em solicitar apenas um segundo IP e executar o WordPress em um servidor virtual Apache baseado em IP, o que ajudaria a manter os custos baixos.

Isso é viável ou é desencorajado?

Se você está familiarizado com configuração de reverse proxy, não precisa do segundo IP.

Você pode executar tanto o Discourse quanto o WordPress ouvindo em sockets Unix (ou portas mais altas) e colocar um software de reverse proxy na frente (recomendo o Caddy) para atender, no mesmo IP, seu blog.example.com e forum.example.com.

Dito isso, se você não está familiarizado com esse tipo de configuração, executar cada um em seu próprio VPS é muito mais fácil, pois você pode simplesmente seguir a vasta documentação disponível para cada um.

Essa configuração que você recomenda pode funcionar sem problemas?

Fiz algo com o HAProxy quando estava tentando configurar o Discourse inicialmente. Eu era um pouco iniciante e ainda sou em questões de servidores e afins, mas fiz mesmo assim e aprendi um pouco sobre o HAProxy no processo. Se me lembro corretamente, havia problemas com SSL, e o comportamento do Discourse era um pouco instável, mas acho que eu fiz algo errado.

Então, minha pergunta é: é possível fazer a configuração que você recomenda sem instabilidade e problemas “estranhos”, sem ajustes extremos?

Sim, se você configurar corretamente seu proxy reverso, é possível. É assim que este site aqui é executado.

O que não podemos fazer é oferecer suporte a cada configuração de proxy reverso aqui.

Incrível!

Última petição: você pode me enviar um link para alguma documentação de ajuda sobre como fazer essa configuração?

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

Adorável.

Lembro-me de que, quando fiz meus testes, segui o guia do Apache. O que não está claro no artigo é se o SSL deve ser desativado ao recriar o Discourse (e se desativá-lo é feito apenas por não inserir um endereço de e-mail para o Let’s Encrypt), e quais portas devem ser “expostas” no arquivo app.yml do Discourse (o guia apenas mostra como a linha …

“8888:80” # encaminha a porta 8888 do host para a porta 80 do contêiner (http)

… deve aparecer, mas não menciona nada sobre a linha imediatamente seguinte no arquivo app.yml (aquela que, por padrão, parece …

  • “443:443” # https

… deve ser).

PS. Ao examinar o arquivo app.yml para escrever essa postagem, percebi que as seguintes linhas estão presentes nele:

Descomente essas duas linhas se desejar adicionar o Let’s Encrypt (https)

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

… no entanto, no momento, meu aplicativo Discourse está rodando com SSL ativado, mas com essas linhas descomentadas. Quão crucial é comentar essas linhas para minha configuração atual (sem proxy) ou para minha configuração desejada (com proxy e apache-wordpress)?

:slight_smile:

Se você não está familiarizado com proxies reversos e consegue obter facilmente um segundo IP, essa não é uma má solução. Basta fazer algo assim:

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

Isso funcionou.

Obrigado.

Você pode fazer o mesmo truque com Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver.

Obrigado, isso funcionou para mim. Meu provedor de VPS oferece “IPs flutuantes” de baixo custo, além do IP principal configurado no VPS. Essa solução é muito prática para mim. Deveria ser melhor documentada, já que é tão simples.

expose:
   - "meu_ip_flutuante:80:80"
   - "meu_ip_flutuante:443:443"

Isso funcionou? Eu não achava que o droplet soubesse sobre o IP flutuante.

Bem, funciona perfeitamente:

Primeiro, compre um IP flutuante e vincule-o ao seu VPS.
Em seguida, configure o servidor para usá-lo:

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

auto eth0:1
iface eth0:1 inet static
    address your.Float.ing.IP
    netmask 32

Salve e reinicie a rede:

sudo service networking restart

Agora tenho dois IPs: uso o IP principal para configurar vários sites nginx; observe as linhas de configuração em /etc/nginx/sites-enabled:

listen my_main_IP:80 myserver.name;
listen my_main_IP:443 ssl http2 myserver.name;

E o IP flutuante em /var/discourse/containers/app.yml, conforme abaixo:

expose:
   - "my_floating_ip:80:80"
   - "my_floating_ip:443:443"

Verifique se tudo está correto (os IPs originais foram editados como floating_ip e 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       

Não sei se é apropriado citar nomes, mas o servidor está na Hetzner Cloud e o recurso de IP flutuante é muito conveniente e tem um preço adequado.

Aha! Eu não sabia que era possível fazer isso!

Também é possível usar esse truque para executar vários servidores de e-mail recebidos para múltiplos domínios

Bom trabalho!

Aha! E é por isso que eu não sabia como funcionava.

Sei que este é um tópico antigo, mas queria agradecer a vocês, isso pode economizar dias de trabalho em um problema semelhante com o qual tenho lidado. Obrigado por compartilhar essas informações inestimáveis com todos!!