企业部分---------Nginx的安装以及平滑升级或版本回退(热部署)

nginx的安装

首先在官网上下载nginx安装包,我下载的是最新版本的nginx-1.17.2

然后对安装包进行解压缩

tar zxf nginx-1.17.1.tar.gz

解压之后进入到目录下查看它都有什么配置文件

auto 目录中:cc目录:编译,os目录:判断操作系统类型,lib和type目录:存放库文件,辅助编译
CHANGES 跟以前版本的对比
CHANGES.ru  俄罗斯版本的changes 作者是俄罗斯的
conf  存放配置文件,会copy到编译好的配置文件中
configure  编译完的运行脚本
contrib  提供语法检测的字体
html  默认发布目录,存放默认的正确的和错误的访问页面
LICENSE   版权声明
man  帮助文档
README  手册,指定了官网网址
src  源码目录 里面都是源码的东西

用configure检测系统环境

我们可以查看帮助,找到自己需要的然后复制到./configure后面进行检测

./configure --prefix=/usr/local/nginx --with-file-aio 

之后ll查看会生成Makefile

安装gcc

GCC是一个用于linux系统下编程的编译器,gcc在开发工具包(Development Tools)里面,安装系统的时候一定要安装上,因为会经常被用到!否则,再安装会很麻烦!

 

之后make && make install 进行编译,安装

安装成功后我们对nginx配置文件进行修改

设置配置文件编译颜色

        Nginx默认的配置文件是不会对其进行检测的,通俗的说就是配置文件和普通文件没区别,配置文件中的关键字不会变色,如果在配置过程中比如因为符号的问题出现错误但是不会显示为红色,因此需要对配置文件加入自动检测语句的错误,需要做如下操作:

关闭debug日志

为什么要关闭debug日志呢?

(因为会占用存储资源,特别当nginx做反向代理的时候,接收的请求很多,会产生很多日志,不便于查看还消耗存储空间,所以我们在编译之前注释掉)

vim auto/cc/gcc

 

我们可以比较以一下当注释掉了这一行和没有注释掉这一行nginx的大小

没有注释掉nginx有3.8M:

注释掉之后,nginx只有876k,缩小了很多:

注释掉nginx版本信息

vim src/core/nginx.h

取消里面的一行备注/usr/local/nginx/sbin/nginx -V查看会看到nginx版本,不取消只会看到ngnix,一般要注释掉,以防黑客攻击 NGINX_VERSION

关于nginx一些基本命令(-t,-v,-V..)

/usr/local/nginx/sbin/nginx -t 检测配置文件语法是否正确 
/usr/local/nginx/sbin/nginx -v 查看nginx版本 
/usr/local/nginx/sbin/nginx -V 查看nginx版本,gcc的版本以及编译内容
/usr/local/nginx/sbin/nginx    开启nginx服务
/usr/local/nginx/sbin/nginx -s stop 关闭nginx服务
/usr/local/nginx/sbin/nginx -s reload 重新加载nginx服务

为了安全性一般使用nginx用户来控制服务的worker进程,并且为了实验效果,可以配置2个worker进程,操作如下:

  •    建立nginx用户来控制worker进程
useradd -s /sbin/nologin nginx
id nginx
uid=1000(nginx) gid=1000(nginx) groups=1000(nginx)
  • 配置文件中修改worker的进程数和worker的控制用户和用户组并且重启服务。 
[root@server1 nginx]# vim conf/nginx.conf
[root@server1 nginx]# ./sbin/nginx -s reload
[root@server1 nginx]# ps -ef | grep nginx

ps ax 查看nginx服务进程

测试本机

可以查看到我用的是nginx服务

在浏览器进行访问,可以访问到nginx欢迎界面

Nginx的升级部署

从官网上下载了nginx-1.16.0的压缩包,并对它进行了解压

(我们假设这个版本为最新版),我们要从1.17这个旧版本更新到1.16这个最新版。

关闭debug日志(具体操作详情请看上面nginx安装)

在编译前首先要删除,清理之前的编译文件

make clean    删除Makefile配置文件

然后配置环境变量(这里输入的和安装时候输入的一样),进行编译(这里不进行make install,因为版本升级不是重装,升级不改变原本的配置)

 替换二进制文件
在新版本编译完成后,在其解压目录下的objs目录里面就有了新的nginx二进制系统文件,-f 强行替换原来的二进制系统文件。

 

Nginx的平滑升级

原理

    在修改配置文件中的nginx.conf配置文件之后,重新生成新的worker进程,当然会以新的配置进行处理请求,而且新的请求都会交给新的worker进程,等把以前的请求处理完成之后kill掉旧的worker进程。

参数含义

    -HUP 平滑启动,相当于reload
    -USR2 平滑升级可执行程序,主要用在版本升级
    -WINCH 从容关闭工作进程
    -USR1 重新打开日志文件,主要用在日志切割,相当于reopen

步骤

    (1)kill -USR2 旧版本master的进程号
    会发现多了一组master进程和worker进程。

(2) kill -WINCH 旧版本的master进程号
会发现旧版本的nginx的worker进程号没有了,只留下了master进程号。
查看版本发现升级成功。

升级成功后的版本回退

步骤

  • (1)kill -HUP 旧版本的master进程号
    nginx在不重新加载配置文件恶情况下启动旧版本的worker进程

  • (  2 )kill -USR2 新版本的master进程号
    关闭新版本的master进程下的worker进程,会依次启动旧版本的master进程和新的工作进程,现在两个版本的nginx会同时运行,共同处理请求。

  • (3)kill -WINCH 新版本的master进程号
    关闭新版本的master的工作进程号

  • (  4 )  kill -9 新版本的master进程号

  • (5)将原来旧版本的已经备份过的二进制文件进行恢复。

  • ( 6)查看版本号发现版本回退成功

内容概要:本文详细介绍了水中有限长加肋圆柱壳体振动和声辐射的近似解析解,并提供了完整的Python实现。文中首先阐述了问题背景,即加肋圆柱壳体作为水下航行器的主要结构形式,肋骨的作用被简化为只有法向力。接着,通过一系列关键方程(如模态振动速度方程、壳体机械阻抗、特征矩阵元素等),推导出加肋圆柱壳体的振动和声辐射特性。Python代码部分实现了这些理论,包括定义`CylindricalShell`类来封装所有计算功能,如初始化参数、机械阻抗、辐射阻抗、肋骨阻抗、模态速度、辐射功率和辐射效率的计算。此外,还扩展了带刚性圆柱障板的圆柱壳体类`CylindricalShellWithBaffle`,并引入了集中力激励、简支边界条件和低频段计算的内容。最后,通过具体示例展示了如何创建壳体对象、设置参数、计算频率响应以及绘制结果图表,验证了加肋对辐射声功率和声辐射效率的影响。 适合人群:具备一定编程基础和声学基础知识的研究人员、工程师,特别是从事水下声学、船舶工程和振动分析领域的专业人员。 使用场景及目标:①通过代码实现和理论推导,深入理解加肋圆柱壳体的振动和声辐射特性;②分析肋骨对壳体声学性能的影响,优化结构设计;③利用Python代码进行数值模拟,评估不同参数配置下的声辐射效率和功率;④为实际工程项目提供理论支持和技术参考。 其他说明:本文不仅提供了详细的数学推导和Python代码实现,还讨论了实际应用中的注意事项,如参数调整、高频模态考虑、肋骨模型细化和数值稳定性处理。建议读者结合实际需求,灵活运用文中提供的理论和代码,进行更深入的研究和实践。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值