linux 编译安装nginx
近段时间在学linux服务器,由于本人嫌弃linux服务器的编译安装软件的方式特麻烦,就一直使用yum的方式安装一些常用软件,比如nginx、supervisor,也倒是挺顺利。
不过最近接到一位客户网站的漏洞扫描报告,有一个“nginx HTTP服务器检测”的漏洞,大概意思就是”能够通过查看远程主机上的HTTP标志来检测nginx HTTP服务器”,通俗点说就是请求的返回头里面包含server:nginx的信息。
要求呢,就是返回头server不能出现nginx信息,百度了一圈解决方案,说是要修改nginx源代码,然后进行编译安装。因为本身对编译安装的操作就很模糊,所以也是懵逼的状态。
还好之前有买过一台xx云的服务器,一直闲置,就拿这台服务器来开刀吧。
进入正题:
环境 centos 7.6,nginx 1.18.0
1、安装依赖环境。详细说明可参考:https://www.cnblogs.com/brady-wang/p/12360671.html
yum -y install gcc gcc-c++ make automake autoconf pcre pcre-devel zlib zlib-devel openssl openssl-devel libtool jemalloc jemalloc-devel
2、解压nginx源码,进入源码目录,然后执行 ./configure命令,生成Makefile文件
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-openssl= --with-pcre --with-pcre-jit --with-ld-opt=-ljemalloc
--prefix是安装目录 --user=是运行的用户,--group是所属用户组,后面还需要创建一下对应www的用户和用户组,后面的就是一些常用的模块,我也不是很明白,大家可以自行百度
3、执行make命令,检查是否有错误提示
make
4、没有错误提示的话,再执行make install命令
make install
5、顺利的话,就安装成功,如果遇到错误自行百度,然后启动nginx服务
useradd -s /sbin/nologin -M www #创建www用户和用户组
/usr/local/nginx/sbin/nginx #启动nginx
/usr/local/nginx/sbin/nginx -s stop #停止nginx
/usr/local/nginx/sbin/nginx -s reload #不停止服务,重新加载配置文件
6、编译安装是不支持systemctl命令管理nginx服务的,详细可参考:https://blog.csdn.net/weixin_42506599/article/details/104241721
创建一个nginx.service文件
vim /usr/lib/systemd/system/nginx.service
写入一下内容
[Unit] Description=nginx - high performance web server Documentation=http://nginx.org/en/docs/ After=network-online.target remote-fs.target nss-lookup.target Wants=network-online.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s TERM $MAINPID [Install] WantedBy=multi-user.target
设置开机启动
systemctl enable nginx.service
杀掉nginx进程
killall nginx
重新加载nginx配置文件
systemctl daemon-reload
最后启动nginx服务
systemctl start nginx
7、这时候再访问网站可以看到server已经变成x-web了。
参考文章:
https://www.cnblogs.com/brady-wang/p/12360671.html
https://blog.csdn.net/weixin_42506599/article/details/104241721