Завершающая косая черта Apache/varnish с проблемой порта

У меня есть установка (приложение php) с

:: лак (порт 80) -> порт apache (8080)

По умолчанию apache добавляет конечные косые черты к каталогам, но когда он это делает, он перенаправляется с портом. например

http://www.domain.com/folder перенаправляет на http://www.domain.com:8080/folder/

Этот URL-адрес с портом вызывает проблемы.

Поэтому я попытался добавить директиву DirectorySlash Off в файл .htaccess, но приложение больше не работает. например битые ссылки и т.д.

Затем я попытался обновить VCL, как описано на http://danielmiessler.com/blog/adding-a-trailing-slash-to-directories-using-varnish/

sub vcl_recv {
if ((req.url ~ "/directory" ) && (! (req.url ~ "index.php"))){
   set req.url = req.url "/";
}
}

но я получаю ошибку

Message from VCC-compiler:
Expected ';' got '"/"'
(program line 174), at
('input' Line 14 Pos 26)
   set req.url = req.url "/";
-------------------------###-

У кого-нибудь есть предложения?

Спасибо


person space_balls    schedule 30.07.2014    source источник


Ответы (1)


Я бы рекомендовал убрать логику перенаправления из Varnish; основная проблема заключается в том, что перенаправления, основанные на настройке DirectorySlash, добавят внутренний порт Apache (8080) в перенаправление.

Чтобы исправить это, попробуйте добавить следующую настройку Apache в конфигурацию Apache (не будет работать в htaccess):

UseCanonicalName Off

Согласно документации Apache по UseCanonicalName:

Если UseCanonicalName отключено, Apache httpd будет формировать самореферентные URL-адреса, используя имя хоста и порт, предоставленные клиентом, если таковые имеются.

Это означает, что apache должен учитывать входящий клиентский порт (80), перенаправленный Varnish, даже при выполнении перенаправления DirectorySlash.

person Jeff Sisson    schedule 30.07.2014
comment
Привет, Джефф, большое спасибо за совет. На самом деле это заставило меня просмотреть мой файл vhost еще более подробно, и похоже, что serverName и serverAlias ​​не были установлены. Как только они были установлены, все заработало, как и ожидалось. - person space_balls; 30.07.2014
comment
После установки UseCanonicalName на Off в sites-enabled/000-default.conf и apache2.conf (конечно, перезапустил Apache и покрасил), перенаправление 8080 все еще происходит. Любая подсказка? - person Raptor; 27.07.2015