Linux环境安装Nginx及版本升级指南
Linux环境安装Nginx及版本升级指南
一、安装Nginx
1. 安装前准备
# 更新系统软件包(Ubuntu/Debian)
sudo apt update && sudo apt upgrade -y
# CentOS/RHEL
sudo yum update -y
2. 安装依赖库
# Ubuntu/Debian
sudo apt install -y curl wget build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev
# CentOS/RHEL
sudo yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
3. 通过包管理器安装(推荐)
Ubuntu/Debian
# 添加官方仓库
sudo apt install -y curl gnupg2
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo gpg --dearmor -o /usr/share/keyrings/nginx-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
# 安装Nginx
sudo apt update
sudo apt install -y nginx
CentOS/RHEL
# 创建仓库文件
vi /etc/yum.repos.d/nginx.repo
# 输入以下内容:
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
# 安装
sudo yum install -y nginx
4. 验证安装
# 查看版本
nginx -v
# 启动服务
sudo systemctl start nginx
sudo systemctl enable nginx
# 检查状态
systemctl status nginx
# 访问测试
curl http://localhost
二、Nginx版本升级
方法1:通过包管理器升级
Ubuntu/Debian
sudo apt update
sudo apt install --only-upgrade nginx
CentOS/RHEL
sudo yum update nginx
方法2:手动编译升级(适用于自定义安装)
# 下载最新版
wget https://nginx.org/download/nginx-1.25.3.tar.gz
tar -zxvf nginx-*.tar.gz
cd nginx-1.25.3
# 停止旧服务
sudo systemctl stop nginx
# 配置编译参数(需与原配置一致)
./configure [原配置参数] # 使用 `nginx -V` 查看原有参数
# 编译安装
make
sudo make install
# 验证新版本
/usr/local/nginx/sbin/nginx -v
# 启动服务
sudo systemctl start nginx
方法3:平滑升级(零停机)
# 1. 备份旧二进制文件
sudo cp /usr/sbin/nginx /usr/sbin/nginx.old
# 2. 编译新版本(参考方法2步骤)
# 3. 替换二进制文件
sudo cp objs/nginx /usr/sbin/nginx
# 4. 发送USR2信号给主进程
sudo kill -USR2 `cat /run/nginx.pid`
# 5. 退出旧worker进程
sudo kill -QUIT `cat /run/nginx.pid.oldbin`
三、注意事项
- 配置文件备份
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
- 检查配置文件语法
sudo nginx -t
- 防火墙设置
sudo ufw allow 80/tcp # Ubuntu sudo firewall-cmd --permanent --add-port=80/tcp # CentOS
四、常见问题解决
-
端口冲突
检查占用端口:sudo ss -tulnp | grep :80
-
服务启动失败
查看日志:journalctl -u nginx -b
-
模块缺失
重新编译时添加所需模块:./configure --with-http_ssl_module
通过以上步骤,您可以轻松完成Nginx的安装和版本升级。建议生产环境优先使用包管理器升级方式以确保稳定性。如果有定制化需求,推荐使用平滑升级方案。