
Убрать заголовок Server из nginx, компиляция nginx из свежих исходников, установка в сервисы
Если установлен nginx, то в конфиге прописать:
server_tokens off;
Если нужно убрать полностью заголовок Server, нужно скомпилировать nginx с дополнительным модулем headers-more-nginx:
// удаляем уже установленный nginx, через yum, например // в /etc/nginx ваши конфиги останутся после удаления # yum remove nginx // давайте скачаем его, версия на 2019.03.31 # wget 'http://nginx.org/download/nginx-1.15.10.tar.gz' # tar -xzvf nginx-1.15.10.tar.gz // также нужно скачать исходники модуля headers-more-nginx-module // исходники: https://github.com/openresty/headers-more-nginx-module/tags // и указать путь до них в параметре --add-module // версия на 2019.03.31 # wget 'https://github.com/openresty/headers-more-nginx-module/archive/v0.33.zip' # cd nginx-1.15.10/ // могут понадобиться компилятор C, PCRE библиотека и zlib если они не установлены на вашем сервере # yum install gcc # yum install zlib-devel # yum install pcre-devel // указываем путь до nginx в который вы хотите установить его, например: /opt/nginx // указываем путь до исходников модуля headers-more-nginx-module, через --add-module // выполним configure чтобы создать Makefile для компиляции # ./configure --prefix=/opt/nginx --add-module=/path/to/headers-more-nginx-module // теперь компилируем если конфигурирование прошло успешно # make # make install // установим в PATH путь до новой bin директории nginx // я в домашнем файле-настройке .bash_profile установлю PATH=$PATH:$HOME/bin PATH=$PATH:/opt/nginx/sbin export PATH
Теперь активируем удаление Server через модуль headers-more-nginx в конфиге nginx:
server { .. more_clear_headers Server; .. }
В результате полностью удаляются данные про сервер в заголовке.
Также нужно установить nginx в автозапуск при старте сервера. Нужен скрипт сервиса для chkconfig.
Я нашел скрипт на https://www.nginx.com/resources/wiki/start/topics/examples/redhatnginxinit/, в нем нужно указать путь до nginx, у меня он установлен в /opt/nginx поэтому путь будет: nginx=»/opt/nginx/sbin/nginx».
// поставим права на nginx конфиг сервиса # chmod 755 /etc/init.d/nginx // теперь нужно добавить новый сервис nginx в список. # chkconfig --add nginx // поставим уровни запуска # chkconfig --levels 235 nginx on // если nginx запущен уже - закроем его "kill номер_процесса" и запустим nginx как сервис # service nginx start
С первого раза не получилось запустить, я указал просто путь в конфиге сервиса nginx nginx=/opt/nginx/sbin, а нужно путь до бинарного файла nginx=»/opt/nginx/sbin/nginx».