Apache ProxyPass игнорирует статические файлы

Похоже, что Ваше правило использует {C1}, но это должно включать двоеточие, такое как {C:1}

7
задан 4 February 2014 в 19:01
2 ответа

You need to use the ProxyPass ! argument with a path, not in a block, for example:

ProxyPass /static !
ProxyPass / http://localhost:8081/
ProxyPassReverse / http://localhost:8081/

I believe these rules are processed in the order they appear in the config, so be sure to specify exclude rules first.

12
ответ дан 2 December 2019 в 23:25

Чтобы заставить его работать внутри блоков Location , нужно изменить порядок, т. Е. Иметь наиболее конкретный оператор Location последний ]:

DocumentRoot /path/to/foo
  ServerName foo.com
  ServerAdmin webmaster@foo.com

  RewriteEngine On

  <Directory /path/to/foo>
    AllowOverride  None
    Require all granted
  </Directory>

  ProxyRequests Off
  ProxyVia Off
  ProxyPreserveHost On

  <Proxy *>
    AddDefaultCharset off
    Order deny,allow
    Allow from all
  </Proxy>

  <Location />
    ProxyPass           http://localhost:8081/
    ProxyPassReverse    http://localhost:8081/
    SetEnv              proxy-sendchunks 1
  </Location>

  # don't pass through requests for statics (image,js,css, etc.)
  <Location /static/>
    ProxyPass !
  </Location>

Это работает. См. https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#proxypass для получения дополнительных сведений - он содержит пример, почти такой же, как указано выше.

1
ответ дан 2 December 2019 в 23:25

Теги

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