Назад | Перейти на главную страницу

Заголовок ответа веб-сервера Apache истекает

У меня есть приложение, которое работает на веб-сервере tomcat, и я использую mod-jk на стороне моего веб-сервера apache.

Думаю, мне удалось настроить все, чтобы все работало без проблем, у меня возникли проблемы, когда я хотел кэшировать статические ресурсы на веб-сервере, по какой-то причине срок действия моих заголовков ответов истекает 1994 г., это мои заголовки для одного из файлов javascript, которые я хочу использовать как статический актив и кэшировать его:

Accept-Ranges:bytes
Cache-Control:no-cache
Connection:Keep-Alive
Content-Encoding:gzip
Content-Type:application/javascript
Date:Fri, 29 May 2015 23:18:25 GMT
ETag:W/"604348-1432950682000"
Expires:Thu, 01 Dec 1994 16:00:00 GMT
Keep-Alive:timeout=5, max=100
Last-Modified:Fri, 29 May 2015 23:18:25 GMT
Server:Apache
Transfer-Encoding:chunked
Vary:Accept-Encoding

По инструкциям, которые я нашел на этот сайт Я попытался установить его внутри своего виртуального хоста, как в примере ниже:

<VirtualHost *:80>
    Alias /assets /opt/www/tomcat/webapps/ROOT/assets
    ServerName dev.myurl.com
    ServerAlias anotherone.myurl.com
    ErrorLog "|/opt/www/apache/2.2.25/bin/rotatelogs /opt/www/logs/apache/app/_error_log-%Y-%m-%d-%H 86400"
    CustomLog "|/opt/www/apache/2.2.25/bin/rotatelogs /opt/www/logs/apache/app/_access_log-%Y-%m-%d-%H 86400" common
    JkMount /* workerdev
#---   Disabled Trace  -------
RewriteEngine  On
RewriteOptions inherit
#----------------------------
ExpiresActive On
ExpiresByType application/x-javascript "now plus 1 months"
</VirtualHost>

Я впервые делаю что-то подобное, поэтому я не уверен, что еще мне нужно сделать и почему это значение по умолчанию Expires. Это было примерно 9 или 10 часов различных экспериментов, и ни одно из них не помогло. Есть предложения, что еще я могу попробовать?

Обновить: Кажется, что я могу добавить заголовок http или, но не могу переопределить существующее значение, добавив его в VirtualHost

Header unset Cache-Control
Header add Cache-Control "max-age=290304000, public"

Header unset Expires
Header add Expires "Thu, 01 Dec 2015 16:00:00 GMT"

Я получаю это для заголовков ответов:

Cache-Control:no-cache
Cache-Control:max-age=290304000, public
Expires:Thu, 01 Dec 1994 16:00:00 GMT
Expires:Thu, 01 Dec 2015 16:00:00 GMT

Очень странно, правда? Где еще можно было установить значения этого заголовка?

Обновить :

Чтобы узнать, задан ли ответ Expires с сервера приложений, я попробовал следующее:

  1. Использование браузера командной строки lynx для прямого обращения к экземпляру, а не через apache

  2. Я добавил «% {Expires} o» в часть журнала клапанов tomcat server.xml, чтобы я мог проверить журнал доступа и посмотреть, какой заголовок истекает, возвращаемый с сервера. Изучив журналы, я обнаружил, что правильный заголовок ответа отправляется с 2014 года, а не с 1994 года.

  3. Я изменил уровень журнала mod-jk для отслеживания, потому что я хотел увидеть, в какой форме ответ возвращается на веб-сервер Apache. Итак, в этом журнале я также вижу, что сервер приложений устанавливает правильный заголовок ответа Expires с 2015 года, а не с 1994 года.

Это в значительной степени говорит мне, что сервер приложений не устанавливает Expires заголовок в 1994.

У кого-нибудь есть мнения, что мне делать дальше?