镇江网站建设优化制作公司成都保障房中心官方网站

张小明 2026/1/1 8:04:12
镇江网站建设优化制作公司,成都保障房中心官方网站,spa.net网站开发,123邢台招聘信息网提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、Nginx一键安装1.1基础环境#xff0c;关闭防火墙与SELinux1.2 安装编译依赖1.3创建Nginx运行用户1.4编译安装Nginx1.5创建软链接1.6.检查、启动、重启、停止…提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档文章目录前言一、Nginx一键安装1.1基础环境关闭防火墙与SELinux1.2 安装编译依赖1.3创建Nginx运行用户1.4编译安装Nginx1.5创建软链接1.6.检查、启动、重启、停止 nginx服务1.7添加 Nginx 系统服务二、升级2.1 确认当前 Nginx 信息2.2 下载目标版本 Nginx2.3 备份关键文件三、方案一普通升级停止服务升级3.1 停止当前 Nginx 服务3.2 编译新版本 Nginx3.3 替换二进制文件并启动四、方案二平滑升级无感知不中断4.1 核心原理Nginx 信号机制4.2 操作步骤4.2.1 前期准备同方案一4.2.3 发送信号启动新版本主进程4.2.4 逐步关闭旧版本工作进程4.2.5 验证新版本并收尾五、升级失败回滚方案5.1 普通升级回滚5.2 平滑升级回滚总结两种升级方案对比前言官方下载地址nginx.org/en/download.html一、Nginx一键安装1.1基础环境关闭防火墙与SELinux为避免端口访问限制脚本会临时关闭防火墙并禁用SELinux关闭防火墙与SELinux systemctl stop firewalld systemctl disable firewalld setenforce0/getenforcevim/etc/sysconfig/selinux1.2 安装编译依赖安装编译Nginx所需的开发工具和库yuminstall-y gcc gcc-cmakepcre pcre-devel zlib zlib-devel openssl openssl-devel1.3创建Nginx运行用户为Nginx创建一个无登录权限的系统用户提升安全性useradd-M -s /sbin/nologin nginx1.4编译安装Nginxcd/opttarzxvf nginx-1.20.2.tar.gzcdnginx-1.20.2/ ./configure\--prefix/usr/local/nginx\#指定nginx的安装路径--usernginx\#指定用户名--groupnginx\#指定组名--with-http_stub_status_module\--with-http_ssl_module#启用 http_stub_status_module 模块以支持状态统计./configure\--prefix/usr/local/nginx\--usernginx\--groupnginx\--with-http_stub_status_module\--with-http_ssl_modulemakemakeinstall1.5创建软链接ln-s /usr/local/nginx/sbin/nginx /usr/local/sbin/#让系统识别nginx的操作命令ps补充创建软链接的目的创建软链接符号链接的核心目的是灵活管理文件 / 目录的访问关系具体用途包括1. 简化文件 / 程序的访问路径 将深层目录中的文件 / 可执行程序链接到系统默认的 “快捷访问目录”如/usr/bin、~避免每次输入长路径。示例bash运行# 将/usr/local/nginx/sbin/nginx链接到/usr/bin直接执行nginx即可启动服务ln-s /usr/local/nginx/sbin/nginx /usr/bin/nginx2. 统一管理软件版本 当同一软件存在多个版本时用软链接指向当前活跃版本切换版本只需修改软链接的指向无需修改依赖该软件的配置 / 脚本。示例bash运行# 假设存在python3.8和python3.10用软链接python3指向当前版本ln-s /usr/bin/python3.10 /usr/bin/python3# 切换版本时仅需重新创建链接ln-sf /usr/bin/python3.8 /usr/bin/python31.6.检查、启动、重启、停止 nginx服务nginx -t #检查配置文件是否配置正确1.7添加 Nginx 系统服务方法一vim/etc/init.d/nginx#!/bin/bash#chkconfig: 35 99 20 // 这是固定格式2345表示运行级别之后为开机执行顺序和关机执行顺序#description:Nginx Service Control Script //这也是必须的COM/usr/local/nginx/sbin/nginxPID/usr/local/nginx/logs/nginx.pidcase$1instart)$COM;;stop)kill-s QUIT$(cat$PID);;restart)$0stop$0start;;reload)kill-s HUP$(cat$PID);;*)echoUsage:$0{start|stop|restart|reload}exit1esacexit0chmodx /etc/init.d/nginxchkconfig--add nginx#添加为系统服务servicenginx start|stop|restart|reload 系统服务 服务名称 启动模式 方法二vim/lib/systemd/system/nginx.service[Unit]DescriptionnginxAfternetwork.target[Service]TypeforkingPIDFile/usr/local/nginx/logs/nginx.pidExecStart/usr/local/nginx/sbin/nginxExecReload/bin/kill -s HUP$MAINPIDExecStop/bin/kill -s QUIT$MAINPIDPrivateTmptrue[Install]WantedBymulti-user.target ---------------------------------------------------------[Unit]:服务的说明 Description:描述服务 After:依赖当依赖的服务启动之后再启动自定义的服务[Service]服务运行参数的设置Typeforking是后台运行的形式使用此启动类型应同时指定 PIDFile以便systemd能够跟踪服务的主进程。 ExecStart为服务的具体运行命令 ExecReload为重启命令 ExecStop为停止命令PrivateTmpTrue表示给服务分配独立的临时空间 注意启动、重启、停止命令全部要求使用绝对路径[Install]服务安装的相关设置可设置为多用户 ---------------------------------------------------------chmod754/lib/systemd/system/nginx.service修改 Nginx 的 systemd 服务配置文件的权限systemctl start nginx.service systemctlenablenginx.service二、升级2.1 确认当前 Nginx 信息# 1. 查看当前 Nginx 版本nginx -v# 简洁版本信息如 nginx version: nginx/1.20.0nginx -V# 完整信息含编译参数重点记录 --prefix、--with-xxx 等参数# 2. 查看 Nginx 运行状态systemctl status nginx# 系统服务管理CentOS/RHEL 7、Ubuntu 16.04# 或通过进程查看ps-aux|grepnginx# 区分主进程master和工作进程worker# 强制批量杀死pkill-9 nginx2.2 下载目标版本 Nginx# 进入源码存放目录如 /optcd/opt# 下载源码包wgethttps://nginx.org/download/nginx-1.22.0.tar.gz# 解压tar-zxvf nginx-1.22.0.tar.gzcdnginx-1.22.02.3 备份关键文件升级前必须备份 配置文件 和 旧版本二进制文件防止升级失败后无法回滚# 1. 备份 Nginx 配置文件默认路径为 --prefix 指定的 conf 目录cp-r /usr/local/nginx/conf /usr/local/nginx/conf_bak_$(date%Y%m%d)/usr/local/nginx/conf_bak_( d a t e (date %Y%m%d) 目标路径备份后的目录名其中(date(date %Y%m%d)会自动生成 “年月日” 格式的后缀如 20251218避免备份文件重名# 2. 备份 Nginx 日志文件可选避免日志丢失cp-r /usr/local/nginx/logs /usr/local/nginx/logs_bak_$(date%Y%m%d)# 3. 备份旧版本二进制文件后续会用到mv/usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old三、方案一普通升级停止服务升级先停止旧版本 Nginx再替换二进制文件并启动新版本。操作简单但会导致服务短暂中断通常几秒到几十秒适合非核心业务或可接受短时间停机的场景。具体操作步骤如下3.1 停止当前 Nginx 服务# 方式1通过系统服务停止推荐兼容 systemdsystemctl stop nginx# 方式2通过 Nginx 自身命令停止nginx -s stop# 快速停止可能中断正在处理的请求# 或nginx -s quit# 优雅停止等待所有请求处理完成后停止3.2 编译新版本 Nginx编译参数必须与旧版本一致参考第一步 nginx -V 输出的参数否则可能导致配置不兼容或功能缺失# 进入解压后的新版本目录cd/opt/nginx-1.22.0# 执行 configure 配置参数与旧版本保持一致./configure\--prefix/usr/local/nginx\# 安装路径与旧版本相同--usernginx\# 运行用户--groupnginx\# 运行用户组--with-http_stub_status_module\# 状态监控模块--with-http_ssl_module# HTTPS 模块若旧版本有则保留#无注释版./configure\--prefix/usr/local/nginx\--usernginx\--groupnginx\--with-http_stub_status_module\--with-http_ssl_module# 编译无需执行 make install避免覆盖配置文件make3.3 替换二进制文件并启动编译完成后新版本二进制文件会生成在 objs/nginx 路径将其复制到旧版本路径# 复制新版本二进制文件到运行目录cpobjs/nginx /usr/local/nginx/sbin/# 启动新版本 Nginxsystemctl start nginx# 或nginx# 查看版本应显示目标版本 1.22.0nginx -v# 查看服务状态确保为 active (running)systemctl status nginx# 访问测试若有 Web 服务通过浏览器或 curl 验证curlhttp://localhost四、方案二平滑升级无感知不中断不停止旧版本主进程通过信号控制逐步替换工作进程整个过程中服务不中断新请求由新版本处理旧请求处理完成后旧进程退出适合生产环境尤其是核心业务。4.1 核心原理Nginx 信号机制Nginx 主进程master通过接收特定信号实现进程管理平滑升级依赖以下 3 个关键信号USR2主进程接收到后会启动一个新版本的主进程并继承旧版本的监听端口和配置WINCH旧版本主进程接收到后会逐步关闭所有旧版本工作进程workerQUIT优雅关闭主进程等待所有工作进程结束后退出。4.2 操作步骤4.2.1 前期准备同方案一完成版本确认、源码下载、文件备份和新版本编译步骤与方案一的 1~2 一致确保 make 编译完成。到3.24.2.2 复制新版本二进制文件直接替换旧版本二进制文件此时旧进程仍在运行不影响服务# 备份旧版本二进制文件若未备份可执行mv/usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old# 复制新版本二进制文件同方案一cp/opt/nginx-1.22.0/objs/nginx /usr/local/nginx/sbin/nginx4.2.3 发送信号启动新版本主进程先找到旧版本 Nginx 主进程的 PID通过 ps -aux | grep nginx 查看通常是第一个 nginx 进程# 1. 查找旧版本主进程 PID示例 PID 为 4787ps-aux|grepnginx# 输出示例root 4787 0.0 0.0 46008 1128 ? Ss 18:03 0:00 nginx: master process /usr/local/nginx/sbin/nginx# 2. 发送 USR2 信号启动新版本主进程kill-USR24787# 3. 再次查看进程会发现两个主进程旧 4787 新 PID如 20345ps-aux|grepnginx4.2.4 逐步关闭旧版本工作进程新版本主进程启动后会自动创建新版本工作进程此时需要关闭旧版本工作进程# 发送 WINCH 信号给旧版本主进程关闭旧工作进程kill-WINCH11162# 查看进程旧工作进程会逐步退出仅剩旧主进程4787和新主进程新工作进程ps-aux|grepnginx4.2.5 验证新版本并收尾确认新版本正常运行后可彻底关闭旧版本主进程若出现问题可通过旧主进程回滚# 1. 验证新版本此时 nginx -V 已指向新版本nginx -V# 应显示 1.22.0且编译参数正确# 2. 访问测试通过浏览器或 curl 确认服务正常curlhttp://localhost# 3. 彻底关闭旧版本主进程升级无问题后执行kill-s QUIT11162# 4. 再次查看进程仅保留新版本主进程和工作进程ps-aux|grepnginx五、升级失败回滚方案无论哪种升级方式都需提前准备回滚方案确保出现问题时能快速恢复服务。5.1 普通升级回滚若启动新版本后服务异常直接恢复旧版本二进制文件并重启# 1. 停止新版本 Nginxsystemctl stop nginx# 2. 恢复旧版本二进制文件mv/usr/local/nginx/sbin/nginx_old /usr/local/nginx/sbin/nginx# 3. 启动旧版本 Nginxsystemctl start nginx# 4. 验证回滚结果nginx -v# 应显示旧版本5.2 平滑升级回滚# 1. 发送 HUP 信号给旧版本主进程重启旧版本工作进程kill-s HUP 旧主进程PID如11162# 2. 发送 QUIT 信号给新版本主进程关闭新版本kill-s QUIT 新主进程PID如11187# 3. 恢复旧版本二进制文件mv/usr/local/nginx/sbin/nginx_old /usr/local/nginx/sbin/nginx# 4. 验证回滚结果nginx -v# 应显示旧版本ps-aux|grepnginx# 仅保留旧版本进程六、常见问题与注意事项编译参数不一致导致启动失败问题现象nginx -t 报配置错误或启动后服务异常。解决必须确保新版本 ./configure 参数与旧版本完全一致参考 nginx -V 输出缺失模块会导致配置不兼容。权限问题导致无法启动问题现象启动时提示 permission denied。解决检查 nginx 二进制文件权限建议 chmod 755 /usr/local/nginx/sbin/nginx且运行用户如 nginx对日志目录、配置目录有读写权限。平滑升级后旧主进程无法关闭问题现象执行 kill -QUIT 旧主进程PID 后旧主进程仍存在。解决先检查是否有未结束的旧工作进程ps -aux| grep nginx等待其处理完请求后自动退出或手动发送 TERM 信号强制关闭kill -s TERM 旧工作进程PID。升级前务必测试配置替换二进制文件后启动前执行 nginx -t 检查配置文件是否兼容新版本避免因配置语法变化导致启动失败总结两种升级方案对比对比维度 普通升级停止服务 平滑升级无感知服务中断 是短暂中断 否完全无感知操作复杂度 低步骤少 中需管理信号适用场景 非核心业务、测试环境 生产环境、核心业务回滚难度 低直接恢复文件 中需控制进程无论选择哪种方案升级前备份、升级中验证、升级后监控 都是必不可少的环节。通过本文的操作步骤你可以根据业务场景灵活选择升级方式确保 Nginx 版本升级安全、高效。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

沈阳正规制作网站公司用.net做网站好 还是用php

Langchain-Chatchat 告警优先级排序知识问答系统 在现代企业运维环境中,告警风暴早已不是新鲜事。一个核心服务异常,可能瞬间触发上百条关联告警——CPU飙升、数据库连接池耗尽、接口超时……面对满屏红字,即便是资深工程师也难免手忙脚乱。更…

张小明 2025/12/31 9:06:28 网站建设

信阳网站建设的费用泊头建网站

开源神器GPT-SoVITS:零基础训练专属TTS语音模型 在短视频、虚拟主播和AI助手大行其道的今天,你有没有想过——只需要一分钟录音,就能让AI用你的声音读出任何文字?这不是科幻电影的情节,而是GPT-SoVITS正在实现的技术现…

张小明 2025/12/31 11:08:13 网站建设

免费推广软件流量精灵网络seo是什么

摘要近年来,钓鱼即服务(Phishing-as-a-Service, PhaaS)平台的兴起显著降低了网络钓鱼攻击的技术门槛。2025年11月,KnowBe4威胁实验室披露了一款名为“Quantum Route Redirect”的新型匿名化钓鱼工具,该工具通过智能流量…

张小明 2025/12/31 14:23:18 网站建设

重庆商会网站建设app设计开发

Wan2.2-T2V-A14B能否理解“情绪”?一场关于AI情感表达的深度实验 在广告创意会议上,一位导演指着屏幕说:“我想要一个镜头——孩子跑向远方,母亲站在原地,风轻轻吹起她的发丝,那种说不出的不舍。” 传统流程…

张小明 2025/12/31 16:01:55 网站建设

做废旧金属的网站免费php开源企业网站

上一期视频中,我们介绍了Ultralytics框架下最新更新的语义检索功能,只需本地3行代码,就能构建一个基于文本语义的图像检索网站。然而,框架自带的界面较为固定,如果需要自定义界面,还需额外开发;…

张小明 2025/12/31 16:43:04 网站建设

网站页面报价外贸软件销售好做吗

在资本市场波动调整的当下,伊犁川宁生物技术股份有限公司(股票代码:301301.SZ)一则重磅公告引发市场广泛关注。作为国内生物发酵技术领域的标杆企业,川宁生物控股股东基于对公司长远发展的坚定信念与对全体股东利益的高…

张小明 2025/12/31 17:49:20 网站建设