Domanda

Abbiamo combattuto questo per più di una settimana:

  1. Quando CloudFlare è FUORI - prodotti scaricabili funzionano bene
  2. Quando CloudFlare è SU - il download inizia e raggiunge il 100% , la velocità scende a 0 e il download viene danneggiato con un messaggio" errore di rete sconosciuto"

C'è una regola di pagina impostata in CF che dice di non memorizzare nella cache i file che sono attivi domain.com/download* ma questo non aiuta.Anche in CF "modalità sviluppatore" il problema esiste.Solo quando il cloud è in pausa e si accede direttamente al server, le cose funzionano bene.

Il provider di hosting sospettava che il motivo fosse la codifica gzip.Così ho fatto un semplice test:

  1. Creare una directory domain.com/download-test
  2. Aggiungi un .file htaccess con contenuti:

AddType binary/octet-stream .bin SetOutputFilter DEFLATE

  1. Generato un semplice file da 10 mb nella directory:

dd se = / dev / urandom di = test.bin bs = 1 MB conteggio=10
10 + 0 record in 10 + 0 record fuori 10000000 byte (10 MB) copiati, 1.45406 s, 6.9 MB/ s

  1. Scaricare il file con Cloudflare = SU senza alcun problema e vedo content-encoding: gzip nelle intestazioni HTTP.Quindi il problema non è sicuramente gzip.

Il provider di hosting dice che non possono fare nulla in quanto tutto funziona direttamente sul loro server.Mi sembra giusto.

CloudFlare ha detto "creare un sottodominio e servire download da lì".Ma questo non è possibile perché A) Il frontend del negozio funziona interamente su HTTPS e il nostro certificato SSL è solo per domain.com e www.domain.com B) Magento non ha alcuna opzione per servire prodotti downlodable da un sottodominio.

Alla disperata ricerca di una soluzione.

NOTA:I nostri prodotti scaricabili non vengono caricati ma collegati a un host esterno (nel caso in cui ciò sia importante).

È stato utile?

Soluzione

Soluzione:

Se gzip è abilitato nel tuo php-fpm questo fa sì che PHP dia sempre un output compresso indipendentemente da .impostazioni htaccess.Quindi quello che succede è che Cloudflare riceve questo output compresso e lo interpreta in modo errato, pensando che il file sia più grande di quello che viene consegnato e quindi il download non viene mai completato e ad un certo punto viene rotto.

La soluzione è quella di mantenere gzip per php-fpm su off quando si utilizza Cloudflare e tutto vola.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top