Как удалить заголовок "Client-Peer" (и т. Д.) В nginx с помощью php-fastcgi
Моя настройка:
- ОС: Ubuntu 11.04
- HTTP-сервер: nginx 1.2.1
- скомпилировано с модулем HttpHeadersMore
- обработка PHP через php-fastcgi
- (другое нерелевантное программное обеспечение - ruby, python и т. д.)
Моя проблема:
Я пытаюсь полностью замаскировать программное обеспечение, которое обслуживает страницы (частично безопасность, в основном потому, что это весело), мне удалось изменить имя сервера и удалить X-Powered-By
заголовок, который добавляет php-fastcgi, но у меня возникают проблемы при удалении трех заголовков:
Client-Date: Thu, 14 Jun 2012 20:32:34 GMT
Client-Peer: 205.186.146.37:80
Client-Response-Num: 1
я использовал more_clear_headers
из модуля HttpHeadersMore, но это не имеет никакого эффекта, несмотря на возможность удаления X-Powered-By
заголовки.
Это по моему http
блок
more_set_headers "Server: Tesco Value";
more_clear_headers "X-Powered-By";
more_clear_headers "Client-*";
more_clear_headers "Client-Date";
more_clear_headers "Client-Response-Num";
more_clear_headers "Client-Peer";
more_clear_headers "X-Pingback";
add_header X-Required-Volume-Setting 11;
add_header X-Required-Speed 88mph;
# NEW: added in thanks to the answer from @kworr - but still doesn't work
fastcgi_hide_header "Client-Date";
fastcgi_hide_header "Client-Response-Num";
fastcgi_hide_header "Client-Peer";
Если вы бежите HEAD slightlymore.co.uk
вы увидите, что ни явные, ни подстановочные правила не избавляются от заголовка. Я предполагаю, что эти заголовки установлены после output-header-filter
фаза - но я хотел бы знать, есть ли у кого-нибудь больше информации по этому поводу, и особенно, если у кого-то есть решение.
ОБНОВИТЬ
@kworr предположил, что fastcgi_hide_header может быть тем, что я ищу - но все равно не работает. Возможно, это просто моя система?
3 ответа
Эти заголовки вообще не присутствовали в ответе HTTP. Ни nginx, ни php-fpm никогда их не отправляли, поэтому пытаться их блокировать бессмысленно.
Это синтетические заголовки ответов, добавленные к ответу вашего пользовательского агента libwww-perl.
Если вы не хотите их видеть, делайте HTTP-запросы с другой библиотекой, такой как libcurl.
У меня была эта проблема сегодня.
Я решил проблему сfastcgi_param
и оставь пустым(''
) значение для fastcgi-variable
, созданный из префиксаHTTP_
+ заголовок запроса в верхнем регистре.
Пример заголовкаClient-Peer
:
fastcgi_param HTTP_CLIENT_PEER '';
Я думаю, что fastcgi_hide_header - это то, что вам действительно нужно.