Почему некоторые запросы страниц зависают при извлечении ресурсов Javascript / изображений с использованием Safari и Apache 2.2.3?

Некоторые пользователи нашего приложения Ruby on Rails жаловались на то, что запросы страниц иногда зависают на неопределенное время в Safari (пара заметила это в Firefox, но это в подавляющем большинстве случаев пользователи Safari). После некоторого исследования кажется, что эти запросы правильно обрабатываются нашим приложением Rails, и зависание происходит при получении ресурсов изображения (которые размещены на том же сервере), на которые есть ссылки в HTML.

Мы настроили Apache для непосредственного обслуживания графических ресурсов и обхода приложения Rails для повышения производительности. Мы также включили сжатие gzip для ресурсов text / javascript / css. Ниже приведены соответствующие настройки из нашей конфигурации виртуального хоста Apache - возможно, мы настроили это таким образом, чтобы объяснить эти произвольные запросы зависания?

RewriteEngine On

# Correct behaviour of IE under SSL
SetEnvIf User-Agent ".*MSIE.*" \
    nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0

SSLEngine On
SSLCertificateFile /etc/httpd/conf/ssl/_.mycert.com.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl/_. mycert.com.key
SSLCertificateChainFile /etc/httpd/conf/ssl/gd_bundle.crt

RequestHeader set X_ORIGINAL_PROTOCOL 'https'
RequestHeader set X_FORWARDED_PROTO 'https'

# Rewrite index to check for static
RewriteRule ^/$ /index.html [QSA] 
RewriteRule "^/(images|stylesheets|javascripts|system)/?(.*)" "$0" [L]

# Rewrite to check for Rails cached page
RewriteRule ^([^.]+)$ $1.html [QSA]

# Deflate
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

ExpiresActive On
<FilesMatch "\.(ico|gif|jpe?g|png|js|css)$">
  ExpiresDefault "access plus 1 year"
  Header append Cache-Control "public"
</FilesMatch>

Кто-нибудь сталкивался с подобной проблемой раньше?

Наше веб-приложение Ruby on Rails работает с использованием mod_rails и Apache 2.2.3 в RedHat Enterprise Linux 5.

Update: Теперь я попытался удалить следующий блок, и проблема все еще сохраняется, так что похоже, что мы можем исключить заголовок expires из проблемы:

ExpiresActive On
<FilesMatch "\.(ico|gif|jpe?g|png|js|css)$">
  ExpiresDefault "access plus 1 year"
  Header append Cache-Control "public"
</FilesMatch>

Ответы на вопрос(5)

Ваш ответ на вопрос