Есть возможность скрыть версию, чтобы она отображала только nginx, но есть ли способ скрыть и ее, чтобы она ничего не показывала или не меняла заголовок?
nginx
http-headers
Дэниелс
источник
источник
Ответы:
Как и Apache, это быстрое редактирование исходного кода и повторная компиляция. С сайта Calomel.org :
Правка от марта 2011 года: Подсказки к Flavius ниже за указание на новую опцию, заменяющую стандартный HttpHeadersModule Nginx на разветвленный HttpHeadersMoreModule . Перекомпиляция стандартного модуля по-прежнему является быстрым решением и имеет смысл, если вы хотите использовать стандартный модуль и не будете часто менять строку сервера. Но если вы хотите большего, HttpHeadersMoreModule - это сильный проект, который позволяет вам делать все виды черной магии во время выполнения с вашими заголовками HTTP.
источник
r->headers_out.server
.Если вы используете nginx для проксирования серверного приложения и хотите, чтобы серверная часть рекламировала свой собственный
Server:
заголовок без его перезаписи nginx, вы можете войти в своюserver {…}
строфу и установить:Это убедит nginx оставить этот заголовок в покое и не перезаписывать значение, установленное серверной частью.
источник
Последнее обновление было некоторое время назад, поэтому вот что у меня сработало на Ubuntu:
Затем добавьте следующие две строки в
http
разделnginx.conf
, который обычно находится в /etc/nginx/nginx.conf:Также не забудьте перезапустить nginx с
sudo service nginx restart
.источник
more_set_headers 'Server: ';
Просто отредактируйте /etc/nginx/nginx.conf и удалите комментарий из
Найдите раздел http .
источник
Это очень просто: добавьте эти строки в раздел сервера:
источник
nginx-extra
этот модуль.Есть специальный модуль: http://wiki.nginx.org/NginxHttpHeadersMoreModule
источник
--add-module=/path-to-headers-more-nginx-module
Установить Nginx Extras
Сведения о сервере можно удалить из ответа, добавив следующие две строки в nginx.conf (в разделе http)
источник
yum install nginx-extras
не работает - я полагаю, это работает на Debia / Ubuntu и тapt-get
. Д. С.)Если вы не против просто изменить заголовок на другую строку из пяти букв или меньше, вы можете просто исправить двоичный файл.
Что как решение имеет несколько заметных преимуществ. А именно, что вы можете разрешить управление версиями nginx с помощью диспетчера пакетов (то есть без компиляции из источника), даже если nginx-extras недоступны для вашего дистрибутива, и вам не нужно беспокоиться о каких-либо дополнительных код чего-то вроде nginx-extras уязвим.
Конечно, вы также захотите установить опцию
server_tokens off
, чтобы скрыть номер версии или исправить эту строку формата.Я говорю «пять букв или меньше», потому что, конечно, вы всегда можете заменить:
с участием
оставив последние два байта без изменений.
Если вам действительно нужно более пяти символов, вы захотите оставить server_tokens включенным и заменить (немного более длинную) строку формата, хотя опять же существует верхний предел этой длины, налагаемый длиной строки формата - 1 (для возврат каретки).
... Если ничто из вышеперечисленного не имеет для вас смысла или вы никогда раньше не исправляли бинарный файл, возможно, вам стоит отказаться от этого подхода.
источник
sed
команду выше,`which nginx`
часть возвращает путь к двоичному файлу, аsed
команда выполняет замену байта.nginx
чтобы изменения вступили в силу. Все что сказано? Я призываю вас не использовать один из других ответов. Если все, о чем я говорю, вам еще не знакомо, и вы не знаете, для чего предназначен этот/etc
каталог, то подобный взлом довольно опасен.Единственный способ - изменить файл src / http / ngx_http_header_filter_module.c. Я изменил nginx в строке 48 на другую строку.
Что вы можете сделать в файле конфигурации nginx, так это отключить server_tokens . Это предотвратит печать номера версии nginx.
Чтобы проверить, попробуйте curl -I http://vurbu.com/ | grep сервер
Он должен вернуться
источник
Прочитав ответ Парфянского выстрела, я копаюсь в
/usr/sbin/nginx
двоичном файле. Потом я обнаружил, что файл содержит эти три строки.В основном первые два из них предназначены для
server_tokens on;
директивы (включая версию Сервера). Затем я изменяю критерии поиска, чтобы они соответствовали этим строкам в двоичном файле.Покопавшись дальше, я обнаружил, что сообщение об ошибке, созданное nginx, также включено в этот файл.
Их три, один без версии, два с версией. Поэтому я запускаю следующую команду, чтобы заменить строку nginx в сообщении об ошибке.
источник
/usr/sbin
папки, дает следующее:sed: can't read is: No such file or directory
Согласно документации nginx он поддерживает настраиваемые значения или даже исключение:
но, к сожалению, только с коммерческой подпиской :
источник
Пакет Nginx-extra устарел.
Поэтому теперь у меня сработало следующее, поскольку я пытался установить различные пакеты more_set_headers 'Server: My Own Server';
Вы можете просто сделать следующее, и информация о сервере или версии не будет отправлена обратно
если вы просто хотите удалить номер версии, это работает
источник
Я знаю, что пост довольно старый, но я нашел простое решение, которое работает с дистрибутивом на основе Debian без компиляции nginx из исходников.
Сначала установите пакет nginx-extras
Затем загрузите модуль nginx http headers more, отредактировав nginx.conf и добавив следующую строку внутри блока сервера
Как только это будет сделано, у вас будет доступ к директивам more_set_headers и more_clear_headers.
источник
Вы спрашиваете о значении заголовка сервера в ответе? Вы можете попробовать изменить это с помощью директивы add_header, но я не уверен, что это сработает. http://wiki.codemongers.com/NginxHttpHeadersModule
источник