CentOS进程升级与维护注意事项
/etc/nginx/nginx.conf、/etc/httpd/conf/httpd.conf)、业务数据(如数据库文件、网站上传目录)及二进制程序(如/usr/local/nginx/sbin/nginx)。可使用tar命令打包(例如tar -czvf backup_$(date +%F).tar.gz /etc /var/www/html),或通过版本控制工具(如Git)跟踪配置变更,确保升级失败时可快速回滚。rpm -qR package_name(如rpm -qR nginx)查看新版本的依赖要求,确保系统已安装所有必需的库文件(如pcre-devel、openssl-devel)。若依赖缺失,可通过yum install命令提前安装(例如yum install -y pcre-devel openssl-devel),避免升级过程中出现“依赖错误”。systemctl(CentOS 7及以上)或service命令停止服务,避免强制终止导致数据丢失。例如:sudo systemctl stop nginx # 停止Nginx服务
sudo systemctl status nginx # 确认服务已停止(状态为"inactive (dead)")
若需强制停止,可使用kill -TERM <PID>(发送SIGTERM信号,允许进程清理资源),避免使用kill -9(SIGKILL信号,强制终止,可能导致数据损坏)。/opt),并赋予执行权限:sudo tar -xzf nginx-1.24.0.tar.gz -C /opt
sudo chmod +x /opt/nginx-1.24.0/sbin/nginx
nginx -V获取),确保配置一致性。例如:cd /opt/nginx-1.24.0
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-stream
make # 仅编译,不安装
sudo cp objs/nginx /usr/local/nginx/sbin/ # 覆盖旧二进制文件
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_bak),便于后续回滚。systemctl命令重启服务,触发配置重载(避免中断现有连接):sudo systemctl restart nginx # 重启服务
sudo systemctl reload nginx # 仅重载配置(不中断连接)
kill -USR2 $(cat /usr/local/nginx/logs/nginx.pid) # 通知旧进程准备升级
kill -WINCH $(cat /usr/local/nginx/logs/nginx.pid) # 优雅关闭旧进程(保留master线程用于回滚)
验证新版本正常后,可发送kill -QUIT终止旧进程。systemctl status命令确认服务运行状态(如active (running)),并通过ps aux | grep process_name(如ps aux | grep nginx)查看进程是否正常启动。curl命令测试API接口(如curl -I http://localhost),或检查日志文件(如tail -f /usr/local/nginx/logs/access.log)确认业务功能正常,无报错信息。top、htop(需安装yum install -y htop)查看CPU、内存占用,或通过vmstat 1 5(每秒采样1次,共5次)监控系统负载,确保升级后性能无明显下降。sudo cp /usr/local/nginx/sbin/nginx_bak /usr/local/nginx/sbin/nginx # 恢复旧二进制文件
sudo systemctl restart nginx # 重启旧服务
journalctl -u nginx -b(查看本次启动日志)定位错误,恢复旧版本后重启服务。yum update命令定期更新系统及软件包,优先安装安全补丁(如CentOS的yum-cron工具可自动应用安全更新)。更新前需在测试环境验证,避免引入新问题。systemctl list-units --type=service查看所有服务状态,或通过auditd(yum install -y auditd)监控关键进程的启动/停止操作(如auditctl -a exit,always -F arch=b64 -S execve -k process_monitor),及时发现异常。worker_processes设置为CPU核心数,worker_connections设置每个进程的最大连接数),并通过systemd的Restart=on-failure策略(在/usr/lib/systemd/system/nginx.service中设置)实现进程崩溃后自动重启。