2015-05-28 3 views
0

У меня есть 3 конфигурации веб-сервера с HAProxy, разделяющими трафик на один из каждого веб-сервера. На каждом сервере работает apache2 с mod_pagespeed. HAProxy заботится о завершении SSL, поскольку веб-серверы находятся в локальной сети.HAProxy + mod_pagespeed

HAProxy устанавливает заголовок X-Forwareded-Proto для каждого запроса, и я включил «ModPagespeedRespectXForwardedProto on» в каждой конфигурации страниц.

Apache служба работает в пользовательском порту 8012 и теперь я получаю сообщение об ошибке в консоль JavaScript из PageSpeed ​​при переходе на сайт:

Mixed Content: The page at 'https://www.example.com/' was loaded over HTTPS, but requested an insecure script 'http://www.example.com:8012/_,Mjo.NZsywmsdso.js.pagespeed.jm.OLNkjPSHpv.js'. This request has been blocked; the content must be served over HTTPS. 

Любой идеи, что все еще может быть не так? Вот конфигурация HTTPS для страниц:

ModPagespeedFetchFromModSpdy on 
ModPagespeedFetchHttps enable 
ModPagespeedSslCertDirectory /etc/ssl/certs 
ModPagespeedSslCertFile /etc/ssl/certs/cert.pem 
ModPagespeedMapOriginDomain "http://www.example.com" "https://www.example.com" 
ModPagespeedRespectXForwardedProto on 

Любая помощь приветствуется!

+0

Pagespeed, кажется, добавляет в HTML файл javascript . Любая идея, могу ли я изменить этот адрес с некоторой конфигурацией? – drodil

+0

Кажется, проблема исчезла при удалении фильтра ModPagespeedEnableFilters resize_mobile_images, insert_image_dimensions – drodil

ответ

0

Этот вопрос старый, но я собираюсь ответить, как я его исправлю на своей собственной установке.

Проблема возникает, если вы используете pagespeed на каждом сервере, а не как-то запускаете ее на самом haproxy для кеширования. Так как pagespeed сохраняет копию любого измененного файла с модификацией имени файла, то он также изменяет исходный код HTML, чтобы он соответствовал этому новому имени файла, которое было сохранено, что должно работать нормально. Но проблема в том, что страницы на веб-сервере 1 модифицируют HTML для соответствия фонового сжатия файлов (изображений, js, css и т. Д.), А затем, когда он попадает на компьютер пользователя, и их браузер запрашивает такие файлы, он не найдет его, если вы обойдете его между серверами, потому что этот файл будет только на веб-сервере 1, а не на других, так как вокруг него будет использоваться общая папка для страниц, поэтому, когда вы сжимаете файл в эту папку, другая сеть серверы будут видеть это через их страницы.

Смежные вопросы