Welcome! Log In Create A New Profile

Advanced

Проблема с двойным кодированием заголовка при проксировании

Alexander Gerasiov
August 31, 2016 11:56AM
Добрый день.

Использую nginx в качестве forward proxy к apache с mod_svn.

Известный трюк: для работы методов COPY MV требуется переписывать
заголок Destination, чтобы поменять схему с https на http

set $fixed_destination $http_destination;
if ($http_destination ~* ^https(.*)$)
{
set $fixed_destination http$1;
}
location / {
proxy_pass http://svn:80/;
proxy_set_header Destination $fixed_destination;
proxy_set_header Host $host;

}


Это работает, но есть нюанс: если перемещаемый файл содержит
кириллицу в имени, то он оказывается дважды перекодирован:

Приходит в nginx он в виде:

Destination: https://host/test/!svn/txr/1-1/dir2/%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9

Дальше выделяется при помощи регулярного выражения, конструируется
новый заголовок, оперируя всё еще закодированной строкой.

И дальше nginx _еще_раз_ кодирует этот заголовок при отправке, так
что в apache уже приходит

Destination: http://host/test/!svn/txr/1-1/dir2/%25D1%2580%25D1%2583%25D1%2581%25D1%2581%25D0%25BA%25D0%25B8%25D0%25B9


В результате имя файла при копировании/перемещении бьется.

Вопрос: что с этим делать? Как сказать nginx, чтобы он не кодировал заголовок
при помощи urlencode? Или может как декодировать строку перед передачей
ее в proxy_set_header?

--
Best regards,
Alexander Gerasiov

Contacts:
e-mail: gq@cs.msu.su Homepage: http://gerasiov.net Skype: gerasiov
PGP fingerprint: 04B5 9D90 DF7C C2AB CD49 BAEA CA87 E9E8 2AAC 33F1

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Проблема с двойным кодированием заголовка при проксировании

Alexander Gerasiov August 31, 2016 11:56AM

Re: Проблема с двойным кодированием заголовка при проксировании

Maxim Dounin August 31, 2016 02:00PM

Re: Проблема с двойным кодированием заголовка при проксировании

Alexander Gerasiov September 01, 2016 06:12AM

Re: Проблема с двойным кодированием заголовка при проксировании

Maxim Dounin September 01, 2016 09:50AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 133
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready