yo @Falco, il real_ip (fornito da cf come header CF-Connecting-IP) ti arriva nei log di nginx? A me no. Vedo solo l’IP di cloudflared.
Penso che una o entrambe queste cose debbano essere fatte (farò seguito dopo le indagini):
- aggiungere una riga di configurazione
set_real_ip_froma nginx per l’IP dicloudflared. Se questo si rivela essere il problema, allora immagino che nessuna delle altre righeset_real_ip_from(fornite datemplates/cloudflare.template.yml) sia necessaria per gli utenti di argotunnel. E in questo caso, forse un template argotunnel separato dovrebbe essere aggiunto al repository docker che estrae il tuo IPcloudflaredda una variabile d’ambiente o qualcosa del genere nel tuoapp.ymlprincipale. correggere ilconfermato non necessariolog_format. Penso che probabilmente non sia questo il problema, però.
modifica:
ecco cosa sto facendo per farlo funzionare:
non usare il template cloudflare. non ha senso.
invece, unisci questo nel tuo app.yml:
hooks:
after_web_config:
- file:
path: /etc/nginx/conf.d/cloudflare_tunnel_real_ip.conf
contents: |
# ripristina gli IP originali dei visitatori (ngx_http_realip_module)
set_real_ip_from 10.100.20.200/32; # il tuo intervallo IP cloudflared/argotunnel
real_ip_header CF-Connecting-IP;
questo finisce automaticamente nel contesto http di nginx, che è appropriato.
PS: secondo me, per pulizia, il template cloudflare dovrebbe anche generare la sua configurazione nginx in un file separato invece di usare sed -i per aggiungerla a /etc/nginx/conf.d/discourse.conf.