Posso eseguire WordPress nello stesso VPS con un secondo IP?

Ciao.

So che è consigliabile eseguire Discourse su un server dedicato, ma sto gestendo questo progetto con le mie risorse e, in sostanza, è un hobby con poche prospettive o intenzioni di monetizzazione nel breve termine, almeno per ora.

Stavo quindi pensando che, invece di acquistare un altro VPS, potrei richiedere un secondo indirizzo IP ed eseguire WordPress su un server virtuale Apache basato su IP, il che aiuterebbe a mantenere bassi i costi.

È fattibile o è sconsigliato?

Se hai familiarità con la configurazione del reverse proxy, non hai bisogno del secondo IP.

Puoi eseguire sia Discourse che Wordpress in ascolto su socket Unix (o su porte più elevate) e utilizzare un software reverse proxy davanti (consiglio Caddy) per servire sullo stesso IP sia blog.example.com che forum.example.com.

Detto questo, se non hai familiarità con questo tipo di configurazione, eseguire ciascuno su un proprio VPS è molto più semplice, poiché puoi seguire la vasta documentazione disponibile per ciascuno.

Quella configurazione che consigli può funzionare senza problemi?

Ho fatto una prova con HAProxy quando stavo iniziando a usare Discourse. Ero un po’ un principiante e lo sono ancora per quanto riguarda server e cose simili, ma ho comunque provato e nel frattempo ho imparato qualcosa su HAProxy. Se ricordo bene, ci sono stati problemi con SSL e il comportamento di Discourse era un po’ instabile, ma immagino di aver fatto qualcosa di sbagliato.

Quindi la mia domanda è: è possibile realizzare la configurazione che consigli senza instabilità e problemi “strani”, senza richiedere un’enorme quantità di ottimizzazioni?

Sì, se configuri correttamente il tuo reverse proxy è possibile. È così che viene gestito proprio questo sito.

Quello che non possiamo fare è offrire supporto per ogni configurazione di reverse proxy qui.

Fantastico!

Ultima richiesta: puoi linkarmi alla documentazione di supporto per configurare questa opzione?

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

Bellissimo.

Ricordo che quando ho eseguito le mie prove ho seguito la guida di Apache. Non è chiaro dall’articolo se SSL debba essere disabilitato al momento della ricostruzione di Discourse (e se la disabilitazione si ottenga semplicemente non inserendo un indirizzo email per Let’s Encrypt), e quali porte debbano essere “esposte” in discourse/app.yml (la guida mostra solo come dovrebbe apparire la riga…

“8888:80” # inoltra la porta host 8888 alla porta del container 80 (http)

… ma non dice nulla della riga immediatamente successiva nel file app.yml (quella che di default appare così…

  • “443:443” # https

… dovrebbe apparire).

PS: Mentre esaminavo il file app.yml per scrivere quel post, ho notato che sono presenti le seguenti righe:

##Scommenta queste due righe se desideri aggiungere Let’s Encrypt (https)

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

… tuttavia, al momento, la mia istanza di Discourse è in esecuzione con SSL abilitato ma con queste righe scommentate. Quanto è cruciale commentare queste righe per la mia configurazione attuale (senza proxy) o per la configurazione desiderata (con proxy e apache-wordpress)?

:slight_smile:

Se non hai familiarità con i reverse proxy e puoi ottenere facilmente un secondo indirizzo IP, questa non è una soluzione sbagliata. Procedi in questo modo:

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

Questo ha funzionato.

Grazie.
.

Puoi fare la stessa cosa con Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver.

Grazie, ha funzionato per me. Il mio provider VPS offre “IP flottanti” economici, oltre all’IP principale configurato sul VPS. Questa soluzione è molto elegante per me. Dovrebbe essere meglio documentata, dato che è così semplice.

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

Ha funzionato? Non pensavo che il droplet potesse essere a conoscenza dell’IP flottante.

Funziona perfettamente:

Prima acquista un IP flottante e collegalo al tuo VPS.
Quindi configura il server per utilizzarlo:

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

Salva e riavvia la rete:

sudo service networking restart

Ora ho 2 IP: uso l’IP principale per configurare diversi siti nginx, nota le righe di configurazione in /etc/nginx/sites-enabled:

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

E l’IP flottante in /var/discourse/containers/app.yml come segue:

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

Verifica che tutto sia in ordine (gli IP originali sono stati modificati in 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       

Non so se sia appropriato menzionare i nomi, ma il server è su Hetzner Cloud e la funzionalità IP flottante è molto comoda e ha un prezzo adeguato.

Aha! Non sapevo che si potesse fare!

Si può anche usare questo trucco per eseguire più server di posta in arrivo per più domini

Ottimo lavoro!

Aha! Ed è per questo che non sapevo come funzionasse.

So che questo è un argomento più vecchio, ma volevo ringraziarvi, questo potrebbe farmi risparmiare giorni di lavoro su un problema simile con cui ho avuto a che fare. Grazie per aver condiviso queste informazioni inestimabili con tutti!!