Если у Вас есть mod_proxy, установленный и настроенный правильно, можно также служить этому .js файл по https.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/pageregex
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [C]
RewriteRule ^/home/to/js/file.js http://example.com/home/to/js/file.js [P]
Флаг [C] позволяет следующему правилу выполняться, как будто это была часть первого, переписывают правило. Флаг [P] говорит mod_rewrite использовать mod_proxy для выборки указанного .js файла и подачи настолько прозрачно. Это, вероятно, заставит IE прекратить лаять о "безопасном и небезопасном содержании на той же странице, Вы хотите продолжить?" поскольку .js файл был бы подан надежно.
Изучив все ответы и попробовав fflush и stdbuf (о которых я раньше не знал, спасибо), я обнаружил, что ответ состоит из двух частей:
1) CentOS использует gawk, Ubuntu использует mawk (по умолчанию).
Я не могу сказать, что лучше и почему было принято решение использовать либо , различия в том, что делает два дистрибутива другой. (:
2) mawk имеет параметр командной строки для "интерактивного" со страницы руководства:
-W interactive
sets unbuffered writes to stdout and line buffered reads from stdin.
Records from stdin are lines regardless of the value of RS.
Я могу только предположить, что это происходит потому, что буферизация была внутри awk, а не в самом скрипте, который заставляет эту работу работать там, где stdbuf нет.
Если это не связано с различием в хвосте
, то я согласен с Хауке Лейджингом в том, что это, вероятно, проблема с буферизацией. Чтобы очистить выходной буфер awk
, попробуйте добавить fflush ()
после ваших операторов печати, как я сделал в следующем тестовом коде:
tail -F /var/log/apache2/access_log | awk '{ if ($8 ~ /MATCH-TEXT/) { print $0; fflush(); }}'
mawk -W interactive устранила мою проблему на Debian Wheezy.
tail -f data.log | grep --line-buffered '$DataString' | mawk -W interactive -F "," '{print "var2", $2, "var4", $4}'