zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    eclipse上传下载github
    GitHub整合idea 上传和下载
    Git安装与配置
    第八天springboot整合redis
    第七天.spring boot 整合mybatis并使用Junit进行测试
    ssm的各种配置资源
    Git相关软件下载
    Eclipse上传项目到GitHub
    SpringBoot使用spring data jpa及在页面yaml中显示
    spring boot 整合mybatis及使用Junit进行测试
  • 原文地址:https://www.cnblogs.com/makeke/p/14419785.html
Copyright © 2011-2022 走看看