Questo è il mio primo post e volevo fornire una guida che ho creato con il nostro amico ChatGPT dopo aver lottato per giorni per capire come far funzionare Caddy come proxy inverso per Discourse installato con le istruzioni dell’ufficio. Ho usato informazioni trovate sul forum di Caddy qui. Configurazione Caddy Discourse. Questo potrebbe essere semplice, ma per quelli di noi che stanno appena iniziando con Discourse, è un po’ uno sforzo per farlo funzionare.
Grazie per una community ovviamente fantastica.
Integrazione di Discourse, Caddy e WordPress con Porte Docker per Proxy Inverso
Panoramica
Questa guida fornisce un processo passo-passo per configurare Discourse con Caddy come proxy inverso, insieme a un’installazione di WordPress, utilizzando Docker Compose. Queste istruzioni sono progettate per un tipico server Ubuntu 22 LTS e dimostrano come integrare più servizi garantendo una configurazione pulita e riproducibile.
Prerequisiti
Assicurati che i seguenti prerequisiti siano soddisfatti prima di procedere:
-
Docker e Docker Compose:
bash
Copia codice
apt update && apt install docker docker-compose -y -
Discourse Installato:
- Installa Discourse tramite le istruzioni di installazione ufficiali.
-
Nomi di Dominio:
- Un dominio principale per WordPress (ad es.
website.com). - Un sottodominio per Discourse (ad es.
forum.website.com).
- Un dominio principale per WordPress (ad es.
Passaggio 1: Configurazione di docker-compose.yml
Il file docker-compose.yml definisce i servizi per Caddy (proxy inverso), WordPress e MySQL.
Posizione del File
Salva il file come /etc/docker-services/docker-compose.yml.
Configurazione
yaml
Copia codice
version: '3.8'
services:
caddy:
image: caddy:latest
container_name: caddy
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
networks:
- caddy_net
wordpress:
image: wordpress:latest
container_name: wordpress
restart: unless-stopped
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: example_user
WORDPRESS_DB_PASSWORD: example_password
WORDPRESS_DB_NAME: example_db
volumes:
- ./wordpress:/var/www/html
networks:
- caddy_net
db:
image: mysql:5.7
container_name: wordpress_db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: example_password
MYSQL_DATABASE: example_db
MYSQL_USER: example_user
MYSQL_PASSWORD: example_password
volumes:
- db_data:/var/lib/mysql
networks:
- caddy_net
volumes:
caddy_data:
caddy_config:
db_data:
networks:
caddy_net:
external: true
Passaggio 2: Configurazione del Proxy Inverso Caddy
Caddy inoltra le richieste sia a Discourse che a WordPress e gestisce i certificati HTTPS.
Posizione del File
Salva la configurazione come /etc/docker-services/Caddyfile.
Configurazione
caddyfile
Copia codice
website.com {
reverse_proxy wordpress:80
}
forum.website.com {
reverse_proxy app:80
}
Questa configurazione garantisce:
- Le richieste a
website.comvengono inoltrate al container WordPress. - Le richieste a
forum.website.comvengono inoltrate al container Discourse.
Passaggio 3: Configurazione di Discourse
Aggiorna app.yml per integrare Discourse con Caddy e la rete Docker.
Posizione del File
Situato in /var/discourse/containers/app.yml.
Modifiche alla Configurazione
-
Esporre Porte HTTP Non Standard:
yaml
Copia codice
expose: - "8880:80" # http -
Rimuovere i Template SSL:
yaml
Copia codice
# - "templates/web.ssl.template.yml" # - "templates/web.letsencrypt.ssl.template.yml" -
Impostare la Rete Docker:
yaml
Copia codice
docker_args: - '--network caddy_net' networks: caddy_net: external: true -
Ricostruire Discourse: Applica le modifiche ricostruendo il container Discourse:
bash
Copia codice
cd /var/discourse ./launcher rebuild app
Passaggio 4: Distribuzione dei Servizi
Avvia i servizi Docker per Caddy e WordPress:
-
Naviga nella directory Docker Compose:
bash
Copia codice
cd /etc/docker-services -
Avvia i container:
bash
Copia codice
docker compose up -d
Passaggio 5: Test e Verifica
-
Verifica dei Container in Esecuzione:
bash
Copia codice
docker ps -
Accesso a WordPress: Naviga su:
arduino
Copia codice
https://website.com -
Accesso a Discourse: Naviga su:
arduino
Copia codice
https://forum.website.com -
Controllo dei Log:
-
Caddy:
bash
Copia codice
docker logs caddy -
Discourse:
bash
Copia codice
tail -f /var/discourse/shared/standalone/log/rails/production.log
-
Risoluzione dei Problemi
- Discourse non risponde:
-
Assicurati che Discourse sia collegato alla porta
8880. -
Verifica che il container sia connesso a
caddy_net:bash
Copia codice
docker network inspect caddy_net
-
- Errori SSL di Caddy:
- Controlla i log dei certificati di Caddy in
/data.
- Controlla i log dei certificati di Caddy in
- Problemi di Ricostruzione:
-
Assicurati che la rete
caddy_netsia attiva durante la ricostruzione di Discourse:bash
Copia codice
docker network ls
-
Conclusione
Questa guida dimostra come integrare Discourse, Caddy e WordPress utilizzando Docker Compose e una configurazione di proxy inverso. Seguendo questi passaggi, puoi ottenere una configurazione modulare e sicura per la tua infrastruttura di siti web.