Шаблон Cloudflare снова сломан

Это аналогичная проблема Issue with Cloudflare template, но на этот раз Cloudflare, похоже, удалил завершающий перевод строки из списка IPv4, что привело к следующему выводу (добавлен комментарий для обозначения проблемы):

set_real_ip_from 173.245.48.0/20;
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 104.16.0.0/13;
set_real_ip_from 104.24.0.0/14;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 131.0.72.0/222400:cb00::/32;  # ПРОБЛЕМА ЗДЕСЬ
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2a06:98c0::/29;
set_real_ip_from 2c0f:f248::/32;

Сейчас я работаю на версии f568633bf060c18cc0866b4018842ce9ec9da33a (последняя main).

Вот быстрая демонстрационная команда, которая должна работать как с завершающими переводами строк, так и без них. Она не включает экранирование из оригинального скрипта и потребует соответствующей адаптации.

{ wget https://www.cloudflare.com/ips-v4/ -O - && echo && wget https://www.cloudflare.com/ips-v6/ -O -; } | sed '/^$/d; s/.*/set_real_ip_from \&;/'
4 лайка

Изменение первой части скрипта шаблона на следующее решает проблему и корректно обрабатывает лишние переносы строк:

#!/bin/bash -e
# Загрузка списка IP-адресов CloudFlare
wget https://www.cloudflare.com/ips-v4/ -O - > /tmp/cloudflare-ips
echo >> /tmp/cloudflare-ips
wget https://www.cloudflare.com/ips-v6/ -O - >> /tmp/cloudflare-ips
# Преобразование в команды nginx и экранирование для вставки в команду добавления sed
CONTENTS=$(</tmp/cloudflare-ips sed '/^$/d; s/^.*/set_real_ip_from &;/' | tr '\n' '\\' | sed 's/\\/\\n/g')
3 лайка

PR: Fix line break handling in Cloudflare template by Zenexer · Pull Request #558 · discourse/discourse_docker · GitHub

6 лайков

Эта проблема тоже связана с вышеизложенным? @AntiMetaman

Я многократно переносил и менял дроплеты, но всё ещё не могу устранить ошибку 502 после пересборки. Дополнительные детали здесь: https://meta.discourse.org/t/discourse-updated-from-admin-not-working-after-rebuild-fatal-error-site-does-not-load-anymore-after-rebuild/200443

Когда, скорее всего, это будет исправлено? Пожалуйста, сообщите нам, как только исправление будет готово, чтобы мы могли снова попробовать пересобрать и избежать сбоя с ошибкой 502. @Zenexer

1 лайк

Спасибо за PR @Zenexer! Принято!

6 лайков

Эта тема была автоматически закрыта через 17 часов. Новые ответы больше не принимаются.