nginx版本升级

06-01 1608阅读

一、背景:

由于原来版本的nginx存在安全漏洞,下载最新且稳定版本的nginx,替换现有的nginx。

二、安装步骤

1、安装必要的依赖项:

[root@localhost ~]#  yum install gcc-c++ pcre-devel zlib-devel make openssl openssl-devel

[root@localhost ~]# yum -y install gd-devel perl-ExtUtils-Embed GeoIP-devel libxml2-devel libxslt-devel gperftools

[root@localhost ~]# cd /app 

2、上传安装包:

[root@localhost app]# ls

nginx-1.25.4.tar.gz

[root@localhost app]# tar -zxvf nginx-1.25.4.tar.gz

[root@localhost app]# ls

nginx-1.25.4  nginx-1.25.4.tar.gz

3、查看原来nginx版本详细内容

登录到原来nginx的启动目录下:

./nginx -V           查看nginx详细版本包括安装目录,可执行文件,模块等信息

nginx版本升级

 图1

注意:

-prefix=/usr/share/nginx                                         #指定安装目录

--sbin-path=/usr/sbin/nginx                                      #可执行文件的名称

--modules-path=/usr/lib64/nginx/modules                     #模块的地址

--conf-path=/etc/nginx/nginx.conf                      #配置文件的名称

--error-log-path=/var/log/nginx/error.log                          #错误文件的名称

--http-log-path=/var/log/nginx/access.log           #HTTP服务器的主请求日志文件的名称

--http-client-body-temp-path=/var/lib/nginx/tmp/client_body         #定义用于存储包含客

户端请求正文的临时文件目录

 --http-proxy-temp-path=/var/lib/nginx/tmp/proxy                  #定义用于存储包含代理服务器接收到的数据的临时文件目录

默认情况下,Nginx会被安装到 /usr/share/nginx。

4、拷贝原来nginx所需要的内容

(1)将原来nginx的配置文件拷贝到新的nginx中并打开配置文件

[root@localhost ~]# vim /etc/nginx/nginx.conf

nginx版本升级

nginx版本升级

(2)根据配置文件中modules的目录上传文件(从原来的nginx中下载)

nginx版本升级

(3)根据配置文件新建执行日志为文件夹

nginx版本升级

(4)根据配置文件上传代理文件

nginx版本升级

(5)根据配置文件需求上传server-location.conf 

nginx版本升级

(6)新建编译时http的文件夹

[root@localhost conf.d]# mkdir -p  /var/lib/nginx/tmp

[root@localhost conf.d]# cd /var/lib/nginx/tmp

[root@localhost tmp]# ls

[root@localhost tmp]# mkdir client_body

[root@localhost tmp]# mkdir proxy

[root@localhost tmp]# mkdir fastcgi

[root@localhost tmp]# mkdir uwsgi

[root@localhost tmp]# mkdir scgi

5、配置Nginx编译选项:

(下面的内容直接复制图1红框中--prefix及之后的所有内容 )

--prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-http_auth_request_module --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-http_perl_module=dynamic --with-mail=dynamic --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-google_perftools_module --with-debug --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' --with-ld-opt='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E'

若出现这样的错误:

nginx版本升级

则复制原来nginx服务器的redhat里面的文件并上传到上图提示的目录中,并重新编译

nginx版本升级

6、查看模块是否加载

编译成功后根据上图查看.so文件已生成,并于原来的nginx下面的模块做对比

/usr/lib64/nginx/modules/ngx_http_geoip_module.so"

nginx版本升级

7、安装Nginx:

[root@localhost nginx-1.25.4]# make && make install

8、启动nginx

nginx版本升级

nginx启动命令:

cd /usr/sbin      首先进入 sbin 目录

 ./nginx              启动 Nginx

 ./nginx -s stop      停止 Nginx

 ./nginx -s reload    重新加载 Nginx

 ./nginx -v           查看 Nginx 版本

    ./nginx -V           查看nginx详细版本

安装完成后,在业务量小的时候,切换nginx

三、定时备份日志

#!/bin/bash

#此脚本用于自动分割Nginx的日志,包括access.log和error.log

#每天00:00执行此脚本 将前一天的access.log重命名为access-xxxx-xx-xx.log格式,并重新打开日志文件

#Nginx日志文件所在目录

#date:20190619afternoon

LOG_PATH=/apps/server/nginx/logs/

#获取昨天的日期

YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)

#获取pid文件路径

PID=/apps/server/nginx/logs/nginx.pid

#分割日志

#mv ${LOG_PATH}access.log ${LOG_PATH}accesslog/access-${YESTERDAY}.log

mv ${LOG_PATH}error.log ${LOG_PATH}errorlog/error-${YESTERDAY}.log

#各access文件

mkdir -p  ${LOG_PATH}accesslog/${YESTERDAY}

for file in `ls ${LOG_PATH} | grep access.log`

do

        mv  ${LOG_PATH}$file  ${LOG_PATH}accesslog/${YESTERDAY}/$file

done

#向Nginx主进程发送USR1信号,重新打开日志文件

kill -USR1 `cat ${PID}`

#新建两个文件夹

nginx版本升级

定时任务:

nginx版本升级

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码