В Apache, если я сделаю запрос, содержащий несколько Link
заголовки, он объединит их в один список, разделенный запятыми.
В nginx, если я сделаю тот же запрос, все, кроме последнего, будут отброшены
Например, со следующим запросом:
PUT https://example.org HTTP/1.1
Link: </some/path>; rel="parent"
Link: </another/path>; rel="child"
Используя Apache, PHP $_SERVER['HTTP_LINK']
переменная будет содержать следующее:
</some/path>; rel="parent", </another/path>; rel="child"
Однако в nginx переменная будет:
</another/path>; rel="child"
Есть ли в конфигурации nginx переключатель функций, который я могу включить, чтобы имитировать поведение Apache?
ОБНОВИТЬ:
Я должен добавить, что использую PHP-FPM как fastcgi_pass. Я добавил следующее в конфигурацию nginx, которая передает первый Link
заголовок вместо последнего:
fastcgi_param HTTP_LINK $http_link;
Интересно, есть ли способ получить доступ $http_link
как массив и разбил его сам в файле конфигурации.
Похоже, это известная ошибка в nginx: https://trac.nginx.org/nginx/ticket/1316 и https://trac.nginx.org/nginx/ticket/1762
Оригинальному билету уже более двух лет, что неутешительно, так как не кажется приоритетом для разработчиков.
Единственное решение, которое я могу сейчас придумать, - это проанализировать Link
заголовки на стороне клиента и объединить их в один перед выполнением запроса.