Загружаемый продукт "неизвестная сетевая ошибка" с CloudFlare ВКЛЮЧЕН [закрыт]


Мы боремся с этим уже более года. неделя:

  1. Когда CloudFlare ВЫКЛЮЧЕН - загружаемые продукты работают нормально
  2. Когда CloudFlare ВКЛЮЧЕН - загрузка начинается и достигает 100%, скорость падает до 0, и загрузка повреждается сообщением "неизвестная сетевая ошибка"

В CF установлено правило страницы, которое запрещает кэшировать файлы, находящиеся на domain.com/download*, но это не помогает. Даже в "режиме разработчика" CF проблема существует. Только когда облако приостановлено, а сервер доступ напрямую - все работает нормально.

Хостинг-провайдер подозревал, что причиной была кодировка gzip. Поэтому я сделал простой тест:

  1. Создать каталог domain.com/download-test
  2. Добавьте в него файл .htaccess с содержимым:

AddType binary/octet-stream .bin SetOutputFilter DEFLATE

  1. Сгенерировал простой файл размером 10 Мб в каталоге:

Dd, если=/dev/урандом=test.bin bs=1 МБ количество=10
10+0 записей в 10+0 записей нет скопировано 10000000 байт (10 МБ), 1,45406 с, 6,9 МБ/с

  1. Скачал файл с Cloudflare = НА без каких-либо проблем, и я вижу кодировку содержимого: gzip в заголовках HTTP. Так что проблема определенно не в gzip.

Хостинг-провайдер говорит, что они ничего не могут сделать, так как все работает непосредственно на их сервере. Достаточно справедливо.

Cloudflare говорит "создайте поддомен и обслуживайте загрузки оттуда". Но это невозможно, потому что А) Интерфейс магазина полностью работает по протоколу HTTPS и наш SSL-сертификат предназначен только для domain.com и www.domain.com Б) Magento не имеет возможности предоставлять продукты, доступные для нижнего уровня, из поддомена.

Отчаянно ищу решение проблемы.

ПРИМЕЧАНИЕ: Наши загружаемые продукты не загружаются, а привязываются к внешнему хосту (в случае, если это имеет значение).

Author: george, 2015-05-12

1 answers

Решение:

Если в вашем php-fpm включен gzip, это приводит к тому, что PHP всегда выдает сжатый вывод независимо от настроек.htaccess. Итак, что происходит, так это то, что Cloudflare получает этот сжатый вывод и интерпретирует его неправильно, думая, что файл больше, чем доставленный, и поэтому загрузка никогда не завершается и в какой-то момент прерывается.

Решение состоит в том, чтобы отключить gzip для php-fpm при использовании Cloudflare, и все летит.

 1
Author: george, 2015-05-20 22:06:33