当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Nginx隐藏版本号的方法

    栏目:Linux/apache问题 时间:2019-11-21 10:35

    Nginx隐藏版本号

    在生产环境中,需要隐藏Nginx的版本号,以避免安全漏洞的泄露

    查看方法

    使用fiddler工具在Windows客户端查看Nginx版本号
    在centos系统中使用“curl -I 网址” 命令查看

    Nginx隐藏版本号的方法

    修改配置文件法
    修改源码法

    一,安装Nginx

    1,在Linux上使用远程共享获取文件并挂载到mnt目录下

    [root@localhost ~]# smbclient -L //192.168.100.3/  ##远程共享访问
    Enter SAMBA\root's password: 
    
                    Sharename    Type   Comment
                    ---------    ----   -------
                    LNMP-C7     Disk    
    [root@localhost ~]# mount.cifs //192.168.100.3/LNMP-C7 /mnt ##挂载到/mnt目录下
    
    

    2,解压源码包到/opt下,并查看

    [root@localhost ~]# cd /mnt  ##切换到挂载点目录
    [root@localhost mnt]# ls
    Discuz_X3.4_SC_UTF8.zip  nginx-1.12.2.tar.gz
    mysql-boost-5.7.20.tar.gz php-7.1.20.tar.gz
    [root@localhost mnt]# tar zxvf nginx-1.12.2.tar.gz -C /opt  ##解压Nginx源码包到/opt下
    [root@localhost mnt]# cd /opt/  ##切换到解压的目录下
    [root@localhost opt]# ls
    nginx-1.12.2 rh
    

    3,安装编译需要的环境组件包

    [root@localhost opt]# yum -y install \
    gcc \                    //c语言
    gcc-c++ \            //c++语言
    pcre-devel \           //pcre语言工具
    zlib-devel            //数据压缩用的函式库
    

    4,创建程序用户nginx并编译Nginx

    [root@localhost opt]# useradd -M -s /sbin/nologin nginx ##创建程序用户,安全不可登陆状态
    [root@localhost opt]# id nginx
    uid=1001(nginx) gid=1001(nginx) 组=1001(nginx)
    [root@localhost opt]# cd nginx-1.12.0/         ##切换到nginx目录下
    [root@localhost nginx-1.12.0]# ./configure \     ##配置nginx
    > --prefix=/usr/local/nginx \    ##安装路径
    > --user=nginx \             ##用户名
    > --group=nginx \            ##用户组
    > --with-http_stub_status_module   ##状态统计模块
    

    5,编译和安装

    [root@localhost nginx-1.12.0]# make   ##编译
    ...
    [root@localhost nginx-1.12.0]# make install  ##安装
    ...
    [root@localhost nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ 
    ##创建软连接让系统识别nginx启动脚本
    

    6,制作管理脚本,便于使用service管理使用

    [root@localhost nginx]# cd /etc/init.d/  ##切换到启动配置文件目录
    [root@localhost init.d]# ls
    functions netconsole network README
    [root@localhost init.d]# vim nginx     ##编辑启动脚本文件
    
    #!/bin/bash
    # chkconfig: - 99 20                  ##注释信息
    # description: Nginx Service Control Script
    PROG="/usr/local/nginx/sbin/nginx"      ##设置变量为nginx命令文件
    PIDF="/usr/local/nginx/logs/nginx.pid"    ##设置变量PID文件 进程号为5346
    case "$1" in 
            start)
                    $PROG                   ##开启服务
                    ;;
            stop)
                    kill -s QUIT $(cat $PIDF)      ##关闭服务
                    ;;
            restart)                        ##重启服务
                    $0 stop
                    $0 start
                    ;;
            reload)                        ##重载服务
                    kill -s HUP $(cat $PIDF)
                    ;;
            *)                              ##错误输入提示
                    echo "Usage: $0 {start|stop|restart|reload}"
                   exit 1
    esac
    exit 0
    [root@localhost init.d]# chmod +x /etc/init.d/nginx  ##给启动脚本执行权限
    [root@localhost init.d]# chkconfig --add nginx     ##添加到service管理器中
    [root@localhost init.d]# service nginx stop        ##就可以使用service控制nginx
    [root@localhost init.d]# service nginx start