x-accel Nginx, разделяющий Кодирующий Содержание заголовок

Вместо того, чтобы объявить значение по умолчанию в basenode, я объявил бы значение по умолчанию в самом шаблоне. Так как ERB в основном основан на рубине, можно сойти с рук некоторая довольно обширная логика. Вот пример из шаблона, который я использую для управления файлом конфигурации фырканья.

var DNS_SERVERS <% if has_variable?("dns_servers") then %>[<%= dns_servers.flatten.join(',') %>]<% else %>$HOME_NET<% end %>

В этом случае я использую массив, в который, если он существует, превращаются список разделенных запятой значений для включения. Иначе $HOME_NET по умолчанию привыкает. Если мы упрощаем его до Вашего примера, мы могли бы использовать:

myvar has value <% if has_variable?("myvar") %><% then %><%= myvar %><% else %>bar<% end %>

Снова, если переменная myvar был установлен затем, это будет расширено, иначе строка "панель" будет распечатана. Таким образом, переменная myvar может быть установлен, или нет, в Ваших определениях узла безнаказанно.

0
задан 24 June 2013 в 19:32
1 ответ

Похоже, есть два решения:

  1. Скажите Nginx передать заголовок Content-Encoding с помощью add_header Content-Encoding $ upstream_http_content_encoding; и выключите gzip для x-Accel-Redirect расположение, чтобы предотвратить сжатие содержимого дважды.

    location ^ ~ / protected_files { gzip off; внутренний; псевдоним / home / intahwebz / var / cache; add_header Content-Encoding $ upstream_http_content_encoding; }

  2. Включите модуль gzip_static .

Перед передачей файла с диска клиенту с поддержкой gzip этот модуль будет искать предварительно сжатый файл в том же месте, которое заканчивается на ".gz". Цель состоит в том, чтобы каждый раз не сжимать один и тот же файл. запрашивается.

0
ответ дан 5 December 2019 в 15:11

Теги

Похожие вопросы