CentOS7安装和升级nginx

文章目录

  • 一 环境准备
  • 二 安装nginx
  • 三 升级nginx
  • 四 注意事项

一 环境准备

公司等保要求修复nginx的应用漏洞,从1.12.2升级到1.20.2版本。

在这里插入图片描述

本机操作系统是CentOS7.9,主机IP是192.168.0.201,nginx是在服务器部署而非容器部署。

下列安装和升级操作请先在个人虚拟机或公司非生产环境操作验证,不要直接在生产环境进行升级;在实际操作前,做好快照和配置文件备份,方便回滚。

二 安装nginx

1.下载和解压安装包

cd /usr/local/
wget https://nginx.org/download/nginx-1.12.2.tar.gz
tar xf nginx-1.12.2.tar.gz

2.新建nginx用户

useradd nginx -M -s /sbin/nologin

3.执行编译命令

cd nginx-1.12.2/
./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=nginx --group=nginx --with-http_stub_status_module --with-http_sub_module --with-http_ssl_module --with-http_gzip_static_module --with-stream --with-stream_ssl_module --with-http_flv_module --with-http_mp4_module --with-http_realip_module --with-pcre

4.编译安装

make && make install

5.创建可执行文件的软链接

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

6.修改nginx目录所有者

chown -R nginx:nginx /usr/local/nginx

7.设置开机自启动

chmod +x /usr/local/nginx/sbin/nginx
echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local

8.检查服务启动

netstat -lntup|grep 80
curl 192.168.0.201:80 -I

三 升级nginx

1.停止nginx服务

#找到nginx的master主进程
ps -ef|grep nginx
#杀死master主进程id
kill nginx主进程ID

2.备份nginx目录文件

#将1.12.2版本的nginx安装目录名称修改,便于失败回滚
mv /usr/local/nginx /usr/local/nginx-1.12.2

3.下载安装包

cd /usr/local
wget https://nginx.org/download/nginx-1.20.2.tar.gz
tar xf nginx-1.20.2.tar.gz

4.编译安装

cd /usr/local/nginx-1.20.2
./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=nginx --group=nginx --with-http_stub_status_module --with-http_sub_module --with-http_ssl_module --with-http_gzip_static_module --with-stream --with-stream_ssl_module --with-http_flv_module --with-http_mp4_module --with-http_realip_module --with-pcre

配置后进行编译安装

make && make install

5.配置文件覆盖

#实际生产环境需要覆盖更换的配置文件可能还有别的,以下2个是笔者环境需要替换的文件,请以实际需要为准
cp /usr/local/nginx-1.12.2/html/index.html /usr/local/nginx/html/
cp /usr/local/nginx-1.12.2/conf/nginx.conf /usr/local/nginx/conf

6.修改新nginx目录所有者信息

chown  -R  nginx:nginx /usr/local/nginx

7.启动并检查服务

/usr/local/nginx/sbin/nginx
curl 192.168.0.201:80

可以正常访问站点页面内容,升级验证初步成功,接下来需要项目组研发人员进行更细致的验证工作。

四 注意事项

1.升级nginx前直接kill掉主进程停服务。

笔者所在生产环境允许业务低峰期间的停服行为,因此可以简单粗暴的直接杀死nginx主进程来停止服务,因此该操作请谨慎评估后进行。(当然实际上这样也是最简单的)

2.升级时configure的参数选择。

笔者实际生产环境的nginx安装还添加了其他模块的内容,使用了 --add-module 参数,因此在执行 ./configure 命令时,请提前查看编译安装时使用了哪些模块和依赖,升级操作和安装操作时的参数保持一致,安装目录等是否符合公司规范,不要生搬硬套。

3.编译报错。

在执行./configure命令后,执行make 命令时的报错。

make: *** No rule to make target `build', needed by `default'.  Stop.

笔者的报错实际上是openssl依赖没有安装,如果不确定自己缺少哪些依赖,可以直接都安装。

yum -y install gcc openssl openssl-devel pcre-devel zlib zlib-devel

4.服务启动失败报错。

解决编译安装的报错后,服务无法启动,下列报错信息。

nginx: [emerg] getpwnam("nginx") failed

该报错表示获取用户失败,直接创建nginx用户即可。

useradd nginx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/581970.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Springboot + MySQL + html 实现文件的上传、存储、下载、删除

实现步骤及效果呈现如下: 1.创建数据库表: 表名:file_test 存储后的数据: 2.创建数据库表对应映射的实体类: import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.Table…

《R语言与农业数据统计分析及建模》学习——回归分析

一、线性回归 线性回归是一种广泛用于数据分析、预测和建模的技术,可以帮助我们理解变量之间的关系,并进行预测和推断。 1、简单线性回归 简单线性回归是线性回归的一种特殊情况,适用于只有一个自变量和一个因变量的情况。 在R语言中&#x…

QT c++ 代码布局原则 简单例子

本文描述QT c widget代码布局遵循的原则:实中套虚,虚中套实。 本文最后列出了代码下载链接。 在QT6.2.4 msvc2019编译通过。 所谓实是实体组件:比如界面框、文本标签、组合框、文本框、按钮、表格、图片框等。 所谓虚是Layout组件&#x…

IT廉连看——UniApp——样式绑定

IT廉连看——UniApp——样式绑定 一、样式绑定 两种添加样式的方法: 1、第一种写法 写一个class属性,然后将css样式写在style中。 2、第二种写法 直接把style写在class后面 添加一些效果:字体大小 查看效果 证明这样添加样式是没有问题的…

WPF —— MVVM 指令执行不同的任务实例

标签页 设置两个按钮&#xff0c; <Button Content"修改状态" Width"100" Height"40" Background"red"Click"Button_Click"></Button><Button Content"测试"Width"100"Height"40&…

clickhous学习之旅二

接上回继续鼓捣clickhouse 1.常用数据类型 1.1整型 固定长度的整型&#xff0c;包括有符号整型或无符号整型。整型范围(-2n-1~2n-1-1): Int8 - [-128 :127] -->相当于java中的byte Int16-[-32768 :32767] -->相当于java中的short Int32-[-2147483648 :2147483647] -…

最新官方破解版会声会影2024永久序列号和激活码

会声会影2024是一款功能强大的视频编辑软件&#xff0c;它集合了视频剪辑、音频调整、特效添加等多项功能于一身&#xff0c;为用户提供了一个全面且易用的视频制作平台。无论是初学者还是专业视频编辑人员&#xff0c;都能在这款软件中找到满足自己创作需求的工具。 会声会影最…

基于残差神经网络的汉字识别系统+pyqt前段界面设计

研究内容: 中文汉字识别是一项具有挑战性的任务&#xff0c;涉及到对中文字符的准确分类。在这个项目中&#xff0c;目标是构建一个能够准确识别中文汉字的系统。这个任务涉及到数据集的收集、预处理、模型训练和评估等步骤。尝试了使用残差神经网络&#xff08;ResNet&#x…

windows电脑改造为linux

有个大学用的旧笔记本电脑没啥用了&#xff0c;决定把它改成linux搭一个服务器&#xff1b; 一、linux安装盘制作 首先要有一个大于8G的U盘&#xff0c;然后去下载需要的linux系统镜像&#xff0c;我下的是ubuntu&#xff0c;这里自选版本 https://cn.ubuntu.com/download/d…

中国移动旋转验证码的识别过程

一、前言 今天有空研究了一下这个移动的登录&#xff0c;发现获取手机验证码的时候会弹出一种旋转验证码。这种验证码确实挺头疼。所以顺便研究了一下如何识别。 验证码的样子大家先看一下。看看大家有没有什么更好是思路。 二、验证码识别 我这里就直接上代码。我这里是使用…

SpringMVC基础篇(四)

文章目录 1.视图1.基本介绍1.视图介绍2.为什么需要自定义视图 2.自定义视图实例1.思路分析2.代码实例1.view.jsp2.接口3.配置自定义视图解析器springDispatcherServlet-servlet.xml4.自定义视图MyView.java5.view_result.jsp6.结果展示 3.自定义视图执行流程4.自定义视图执行流…

web安全---xss漏洞/beef-xss基本使用

what xss漏洞----跨站脚本攻击&#xff08;Cross Site Scripting&#xff09;&#xff0c;攻击者在网页中注入恶意脚本代码&#xff0c;使受害者在浏览器中运行该脚本&#xff0c;从而达到攻击目的。 分类 反射型---最常见&#xff0c;最广泛 用户将带有恶意代码的url打开&a…

E-MapReduce极客挑战赛季军方案

前一段时间我参加了E-MapReduce极客挑战赛&#xff0c;很幸运的获得了季军。在这把我的比赛攻略给大家分享一下&#xff0c;希望可以抛砖引玉。 赛题分析与理解 赛题背景&#xff1a; 大数据时代&#xff0c;上云已成为越来越多终端客户大数据方案的落地选择&#xff0c;阿里…

Phi-3-mini-4k-instruct 的功能测试

Model card 介绍 Phi-3-Mini-4K-Instruct 是一个 3.8B 参数、轻量级、最先进的开放模型&#xff0c;使用 Phi-3 数据集进行训练&#xff0c;其中包括合成数据和经过过滤的公开可用网站数据&#xff0c;重点是 高品质和推理密集的属性。 该型号属于 Phi-3 系列&#xff0c;Mini…

Golang | Leetcode Golang题解之第58题最后一个单词的长度

题目&#xff1a; 题解&#xff1a; func lengthOfLastWord(s string) (ans int) {index : len(s) - 1for s[index] {index--}for index > 0 && s[index] ! {ansindex--}return }

虚拟机扩容-根目录挂载sda1的空间不足

提醒&#xff01;不管成不成功&#xff0c;一定要先备份一份虚拟机&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 走过路过点个关注吧&#xff0c;想到500粉丝&#xff0c;哭。一、查看分区情况 df -h可以看到/dev/sda1已经被占满了 2.关闭虚拟机&#xff…

windows驱动开发-WDF对象

WDF封装了大量的WDF对象&#xff0c;不过&#xff0c;和应用层不一样&#xff0c;不用去尝试从WDF框架对象类上派生和改写原有的WDF类&#xff0c;本意WDF就是希望我们使用这些对象和类&#xff0c;而不是创造新的奇怪的类。 每个WDF对象都代表着对一项驱动需要使用的子功能的…

vue学习的预备知识为学好vue打好基础

目录 Vue是什么 &#xff1f;如何使用Vue &#xff1f;Vue ApiVue入口apiVue实例apiVue函数api 无构建过程的渐进式增强静态HTMLVue模块化构建工具npmyarnWebpackvue-cliVite Vue是什么 &#xff1f; 文章基于Vue3叙述。 Vue (发音为 /vjuː/&#xff0c;类似 view) 是一款用于…

179. 最大数(LeetCode)

文章目录 前言一、题目讲解二、算法原理三、代码编写1.仿函数写法2.lambda表达式 四、验证五.总结 前言 在本篇文章中&#xff0c;我们将会带着大家采用贪心的方法解决LeetCode中最大数这道问题&#xff01;&#xff01;&#xff01; 一、题目讲解 一组非负整数&#xff0c;包…

【面试经典 150 | 图】被围绕的区域

文章目录 写在前面Tag题目来源解题思路方法一&#xff1a;深搜方法二&#xff1a;广搜 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于本题涉及到的…