centos 8 安装 nginx-1.29.8 及相关配置教程

目录

[一、 环境准备与依赖安装](#一、 环境准备与依赖安装)

‌安装编译工具及依赖库‌

检查端口占用‌

[二、 下载与编译安装 Nginx 1.29.8](#二、 下载与编译安装 Nginx 1.29.8)

解压并进入目录‌

‌配置编译选项‌

‌编译与安装‌

[三、 系统服务化管理(Systemd)](#三、 系统服务化管理(Systemd))

‌创建服务文件‌

写入以下内容‌

‌启动与开机自启‌

验证状态‌

[四、 防火墙配置](#四、 防火墙配置)

[五、 核心配置与最佳实践](#五、 核心配置与最佳实践)

‌配置文件结构‌

‌修改主配置文件示例‌

创建测试页面‌

重载配置‌

[六、 验证安装](#六、 验证安装)

[‌获取服务器 IP‌](#‌获取服务器 IP‌)

浏览器访问‌

注意事项


在 CentOS 8 上安装 Nginx 1.29.8 推荐采用‌源码编译安装‌的方式。由于 Nginx 1.29.8 属于较新版本(或特定定制版本),CentOS 8 默认的 EPEL 或 AppStream 源中通常只包含稳定版或旧版本(如 1.14, 1.18, 1.20 等)。源码安装可以确保你获得指定版本,并允许自定义模块。

一、 环境准备与依赖安装

Nginx 的某些模块(如 rewrite 模块需要 PCRE,gzip 模块需要 zlib,HTTPS 需要 OpenSSL)依赖特定的库文件,因此在编译前必须安装这些开发包。

‌安装编译工具及依赖库‌
复制代码
sudo dnf install -y gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel wget tar
  • gcc/gcc-c++: C/C++ 编译器,用于编译源码。
  • pcre-devel: 支持正则表达式,Nginx 的 rewrite 模块必需。
  • zlib-devel: 支持 gzip 压缩。
  • openssl-devel: 支持 HTTPS (SSL/TLS)。
检查端口占用‌

确保 80 和 443 端口未被其他服务(如 Apache 或已安装的旧版 Nginx)占用‌。

复制代码
sudo netstat -tulpn | grep -E ':(80|443)'

如果有输出,请先停止相关服务。

二、 下载与编译安装 Nginx 1.29.8

‌#### 下载源码包‌ 进入 /usr/local/src 目录并下载指定版本的 Nginx。

复制代码
cd /usr/local/src
wget http://nginx.org/download/nginx-1.29.8.tar.gz

** 注意:如果官方镜像站暂无 1.29.8 版本(视具体发布时间而定),请确认版本号是否正确,或替换为最新的稳定版链接。**

解压并进入目录‌
复制代码
tar -zxvf nginx-1.29.8.tar.gz
cd nginx-1.29.8
‌配置编译选项‌

使用 ./configure 指定安装路径和启用常用模块。

复制代码
./configure \
--prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_stub_status_module \
--with-pcre \
--with-zlib \
--with-openssl
  • --prefix: 指定安装目录为 /usr/local/nginx。
  • --with-http_ssl_module: 启用 HTTPS 支持。
  • --with-http_v2_module: 启用 HTTP/2 支持。
  • --with-http_stub_status_module: 启用状态监控模块。
‌编译与安装‌
复制代码
make
sudo make install

三、 系统服务化管理(Systemd)

为了方便启动、停止和开机自启,建议创建 systemd 服务文件,而不是直接使用二进制文件运行。

‌创建服务文件‌
复制代码
sudo vi /etc/systemd/system/nginx.service
写入以下内容‌
复制代码
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
‌启动与开机自启‌
复制代码
sudo systemctl daemon-reload
sudo systemctl start nginx
sudo systemctl enable nginx

验证状态‌
复制代码
sudo systemctl status nginx

四、 防火墙配置

CentOS 8 默认使用 firewalld 作为防火墙解决方案‌,需要放行 HTTP (80) 和 HTTPS (443) 端口。

复制代码
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

五、 核心配置与最佳实践

Nginx 的配置文件位于安装目录下的 conf 文件夹中(本例为 /usr/local/nginx/conf/)。

‌配置文件结构‌
  • 主配置文件:/usr/local/nginx/conf/nginx.conf。
  • 建议将不同域名的配置拆分,存放在 /usr/local/nginx/conf/conf.d/ 目录下,并以 .conf 结尾‌
‌修改主配置文件示例‌

编辑 nginx.conf,确保包含以下关键设置:

复制代码
user  root; # 或者创建一个专门的 nginx 用户
worker_processes  auto; # 自动根据 CPU 核心数设置工作进程

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    # 引入额外配置文件
    include /usr/local/nginx/conf/conf.d/*.conf;
}

创建测试页面‌

Nginx 默认的网站根目录通常在 html 文件夹下(即 /usr/local/nginx/html/)。

复制代码
echo "<h1>Welcome to Nginx 1.29.8 on CentOS 8</h1>" > /usr/local/nginx/html/index.html
重载配置‌

每次修改配置文件后,需检查语法并重载服务。

复制代码
sudo /usr/local/nginx/sbin/nginx -t # 检查语法
sudo systemctl reload nginx         # 平滑重载

六、 验证安装

‌获取服务器 IP‌
复制代码
hostname -I
浏览器访问‌

在浏览器中输入 http://<你的服务器IP>,若看到 "Welcome to Nginx 1.29.8..." 页面,则说明安装成功。

注意事项
  • ‌SELinux‌: 如果启用了 SELinux 且无法访问网页,可能需要调整上下文或暂时设置为宽容模式 (setenforce 0) 进行排查。
  • ‌版本确认‌: 由于 Nginx 版本迭代较快,若 nginx-1.29.8 下载失败,请前往 Nginx 官网 确认最新可用版本号并替换下载链接
相关推荐
爱学习的小囧2 小时前
ESXi性能历史怎么监控?2种方法,图形化+命令行全覆盖
java·linux·运维·服务器·网络·esxi·esxi8.0
困惑阿三2 小时前
Nginx 域名绑定与 HTTPS 配置指南
运维·nginx·https·ssl
sagima_sdu2 小时前
Codex 使用指南(技术向):App、CLI 与工作流接入
linux·运维·语言模型·json
圆山猫2 小时前
[Linux] 用 Buildroot 为 RISC-V QEMU 构建最小根文件系统
linux·运维·risc-v
小草儿7992 小时前
gbase8s之onatpe备份与恢复性能测试
linux·服务器·网络
不做无法实现的梦~3 小时前
Linux 嵌入式开发完整入门:工具、配置和学习路线
linux·运维·学习
摘星台3 小时前
linux环境对stm32单片机进行程序烧录
linux·stm32·单片机
郝学胜-神的一滴3 小时前
Linux 高并发基石:epoll 核心原理 + LT/ET 触发模式深度剖析
linux·运维·服务器·开发语言·c++·网络协议
‎ദ്ദിᵔ.˛.ᵔ₎3 小时前
Linux 启动
linux·运维·服务器