7.2.1 Nginx安装方式与版本选择
Nginx安装方式与版本选择#
Nginx安装方式主要包括系统包管理器安装、源码编译安装与容器化部署。不同方式在版本控制、模块可选性、升级策略与运维成本上差异明显,应结合业务稳定性与功能需求选择。
一、包管理器安装(快速、标准化)
适用于标准功能与快速部署场景。以下以 CentOS/RHEL 为例:
# 1) 安装官方仓库
cat >/etc/yum.repos.d/nginx.repo <<'EOF'
[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
EOF
# 2) 安装 Nginx
yum install -y nginx
# 3) 启动并设置开机自启
systemctl enable --now nginx
# 4) 验证版本与运行状态
nginx -v
systemctl status nginx --no-pager
命令解释:
- yum install -y nginx:从仓库安装稳定版。
- systemctl enable --now nginx:立即启动并设置开机自启。
- nginx -v:查看版本,验证来源与版本线(stable/mainline)。
版本选择示例(切换主线仓库):
# 替换为 mainline 仓库
sed -i 's/nginx-stable/nginx-mainline/g' /etc/yum.repos.d/nginx.repo
sed -i 's/stable/mainline/g' /etc/yum.repos.d/nginx.repo
yum install -y nginx
二、源码编译安装(可控模块与版本)
适用于需要特定模块、版本或定制编译参数的场景。
# 1) 安装依赖
yum install -y gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel
# 2) 下载源码(示例:1.24.0)
cd /usr/local/src
curl -O http://nginx.org/download/nginx-1.24.0.tar.gz
tar -zxf nginx-1.24.0.tar.gz
cd nginx-1.24.0
# 3) 配置编译参数
./configure \
--prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-stream \
--with-http_stub_status_module
# 4) 编译与安装
make -j$(nproc) && make install
# 5) 启动验证
/usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx -V
命令解释:
- --with-http_ssl_module:启用 HTTPS 支持。
- --with-stream:启用四层代理能力(如 TCP/UDP)。
- nginx -V:输出编译参数,验证是否启用模块。
三、容器化部署(环境一致与扩缩容)
适用于云原生与快速迭代场景。
# 1) 拉取官方镜像
docker pull nginx:1.24
# 2) 挂载配置与站点目录
mkdir -p /opt/nginx/conf /opt/nginx/html
cat >/opt/nginx/conf/nginx.conf <<'EOF'
worker_processes auto;
events { worker_connections 1024; }
http {
server {
listen 80;
location / {
root /usr/share/nginx/html;
index index.html;
}
}
}
EOF
# 3) 启动容器
docker run -d --name nginx \
-p 80:80 \
-v /opt/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /opt/nginx/html:/usr/share/nginx/html:ro \
nginx:1.24
# 4) 验证
curl -I http://127.0.0.1
命令解释:
- -v /opt/nginx/conf/nginx.conf:挂载配置文件。
- -p 80:80:端口映射供外部访问。
四、版本选择要点与规划
- 生产优先 stable 版本;需要新特性时评估 mainline。
- 关注依赖库版本(OpenSSL/PCRE/zlib)。
- 模块需求决定安装方式:如需
http_v2/stream/自定义模块,优先源码编译。 - 建议建立统一版本基线与镜像仓库,支持回滚与差异定位。
五、常见安装排错
# 1) 端口被占用
ss -lntp | grep ':80'
# 解决:停止冲突服务或修改 Nginx 监听端口
# 2) 配置语法错误
nginx -t
# 预期输出:syntax is ok / test is successful
# 3) 动态库缺失(源码安装)
ldd /usr/local/nginx/sbin/nginx | grep 'not found'
# 解决:安装缺失依赖或修正库路径
六、练习
- 使用包管理器安装 stable 版本,并输出
nginx -v的结果。 - 使用源码编译安装并开启
--with-stream,用nginx -V验证。 - 用 Docker 部署 Nginx,挂载自定义首页,访问验证返回内容。