CentOS7编译安装nginx

近期在部署web项目时用到了nginx,为了方便后期更新维护所以选择用编译的方法来安装nginx,也是为了安全考虑

系统环境及所需软件

CentOS7
Nginx
OpenSSL1.1.1o
pcre
zlib

Nginx官网下载地址:https://nginx.org/en/download.html
OpenSSL官网下载地址:https://www.openssl.org/source/old/1.1.1/openssl-1.1.1o.tar.gz
pcre官网下载地址:https://sourceforge.net/projects/pcre/files/pcre/
zlib官网下载地址:http://www.zlib.net/

说明:出于安全考虑,所以采用openssl1.1.1o,目前该版本暂未发现有啥漏洞,漏扫的时候也没有扫出这个版本的问题,所以就用这个版本,我给银行修复openssl漏洞也是用这个版本
一、下载nginx源码包

戴戴的Linux

二、解压并修改源码

出于安全考虑,为了不让攻击者知道我们用的是什么web服务器,所以我们需要在编译前把nginx字样和版本号改成假的来混淆攻击者的视听

1、修改Nginx字样和版本信息

戴戴的Linux

1
2
3
tar -zxvf nginx-1.22.1.tar.gz
cd nginx-1.22.1
vim src/core/nginx.h

戴戴的Linux

1
vim src/http/ngx_http_header_filter_module.c

找到这个 static u_char ngx_http_server_string[] 然后修改它

戴戴的Linux

1
vim src/http/ngx_http_special_response.c

找到这个 static u_char ngx_http_error_tail[] 然后修改它

戴戴的Linux

1
vim src/http/v2/ngx_http_v2_filter_module.c

找到这个 ngx_log_debug0(NGX_LOG_DEBUG_HTTP, fc->log, 0 然后修改它
戴戴的Linux

2、修改OpenSSL查找的路径

1
vim auto/lib/openssl/conf

把里面框起来带/openssl的删掉,不然编译的时候它会找/path/openssl/openssl/然后直接报错,比如你openssl是装在/usr/local下,它就会找/usr/local/openssl/openssl
戴戴的Linux

三、编译安装openssl
1
2
3
4
tar -zxvf openssl-1.1.1o.tar.gz
cd openssl-1.1.1o
./config --prefix=/usr/local/openssl/
make && make install
四、解压并移动pcre、zlib到/usr/local/
1
2
3
4
unzip pcre-8.32.zip
tar -zxvf zlib-1.2.13.tar.gz
mv pcre-8.32 /usr/local/
mv zlib-1.2.13 /usr/local/
五、编译安装nginx
1
./configure --prefix=/usr/local/nginx --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_ssl_module  --with-http_v2_module --with-stream --with-openssl=/usr/local/openssl/ --with-pcre=/usr/local/pcre-8.32/ --with-zlib=/usr/local/zlib-1.2.13/
1
make && make install
六、启动nginx
1
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

关注我的公众号吧~戴戴的Linux

文章目录
  1. 1. 近期在部署web项目时用到了nginx,为了方便后期更新维护所以选择用编译的方法来安装nginx,也是为了安全考虑
    1. 1.1. 系统环境及所需软件
      1. 1.1.1. 说明:出于安全考虑,所以采用openssl1.1.1o,目前该版本暂未发现有啥漏洞,漏扫的时候也没有扫出这个版本的问题,所以就用这个版本,我给银行修复openssl漏洞也是用这个版本
      2. 1.1.2. 一、下载nginx源码包
      3. 1.1.3. 二、解压并修改源码
      4. 1.1.4. 三、编译安装openssl
      5. 1.1.5. 四、解压并移动pcre、zlib到/usr/local/
      6. 1.1.6. 五、编译安装nginx
      7. 1.1.7. 六、启动nginx


本站总访问量 本文总阅读量