У меня следующая ситуация здесь:

Мы используем apache в сочетании с собственным сервером, генерирующим динамический контент, где apache пересылает все запросы, поступающие на сайт, на внутренний сервер с помощью следующих настроек:

ProxyPass "/" http://127.0.0.1:8180/
ProxyPassReverse "/" http://127.0.0.1:8180/
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}

В свою очередь внутренний сервер генерирует контент и отправляет эти данные обратно в apache, который отправляет их в браузер.

Внутренний сервер также заботится об обслуживании статических файлов, читая их, устанавливая правильный тип содержимого и отправляя ответ обратно в apache.

Теперь вопрос: я бы хотел, чтобы apache обслуживал некоторые файлы, которые никогда не меняются (например, логотип, некоторые изображения, статический javascript и т.д.), Даже не отправляя их на внутренний сервер (соображения скорости). Как мне этого добиться?

1 ответ1

1

От: https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#proxypass

Примерно так должно это сделать:

DocumentRoot /path/to/files/
<Directory /path/to/files/>
    Options All
    AllowOverride All
    Require all granted
</Directory>
ProxyPass /static !

ProxyPass "/" http://127.0.0.1:8180/
ProxyPassReverse "/" http://127.0.0.1:8180/
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}

Это должно обслуживать все файлы в /path/to/files/static локально, а не проксировать их.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .