Nginx 1.26.1最新版部署笔记

[复制链接]
发表于 2026-10-3 15:36:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

Nginx 1.26.1 源码编译部署全过程(CentOS 7)

包管理器装 Nginx 省事,但想自己控制模块、版本和安装路径,还是得源码编译。下面在 CentOS 7 上走一遍从零到能访问欢迎页的完整流程,每一步的目的都标清楚,方便按自己的环境调整。

一、Nginx 是什么

Nginx 是高性能 HTTP 和反向代理服务器,同时也是 IMAP/POP3/SMTP 代理服务器。核心特点:

  • 高性能 Web 服务器:为高并发连接设计,性能和稳定性都很强。
  • 反向代理:把客户端请求转发到后端多台服务器,实现负载均衡。
  • 静态内容缓存:缓存静态内容,降低后端负载,加快静态资源加载。
  • SSL/TLS 支持:为网站提供加密连接。
  • URL 重写:用 rewrite 模块做重定向和伪静态。
  • 负载均衡:支持轮询、最少连接、IP 哈希等策略。
  • 模块化设计:按需要增删功能。
  • 缓存代理:缓存后端响应,减少对后端的请求。
  • 访问控制:按配置限制特定 IP 访问。
  • 日志日志与状态监控监控:记录访问信息,通过状态模块查看连接数、请求处理情况。
  • WebSocket 支持:用于实时通信。
  • 跨平台:Linux、BSD、macOS、Windows 都能跑。

二、编译前准备

系统:CentOS 7.x。

更新系统包:

sudo yum update

装编译工具和依赖库,Nginx 需要 gcc、make 以及 pcre、zlib、openssl 的开发包:

sudo yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

下载源码包(Nginx 官网):

wget http://nginx.org/download/nginx-1.26.1.tar.gz

三、解压与配置

cd /opt
tar -zxvf nginx-1.26.1.tar.gz
cd nginx-1.26.1

用 ./configure 设置编译选项:

./configure --prefix=/usr/local/nginx \
  --with-http_ssl_module \
  --with-http_stub_status_module \
  --with-http_gzip_static_module

参数说明:

  • --prefix=/usr/local/nginx:安装路径
  • --with-http_ssl_module:启用 SSL 模块
  • --with-http_stub_status_module:启用状态监控监控模块
  • --with-http_gzip_static_module:启用静态文件 Gzip 压缩

四、编译安装

make
sudo make install

装完 /usr/local/nginx 下就有 sbin、conf、logs、html 四个目录。

五、配置 systemd 服务

创建服务文件:

sudo vi /etc/systemd/system/nginx.service

写入:

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecStop=/usr/local/nginx/sbin/nginx -s quit
ExecReload=/usr/local/nginx/sbin/nginx -s reload
PrivateTmp=true

[Install]
WantedBy=multi-user.target

注意 Type=forking 必须配 PIDFile,否则 systemd 拿不到主进程 pid,服务状态会一直显示启动中。-s quit 是优雅停止,-s reload 是平滑重载配置。

六、启动与验证

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

浏览器访问 http://your_server_ip,看到 Nginx 欢迎页即正常运行。

七、改配置与重载

编辑 /usr/local/nginx/conf/nginx.conf,配置 server、日志日志路径、虚拟主机等。改完重启生效:

sudo systemctl restart nginx

只改了配置想平滑生效,用 sudo systemctl reload nginx 更好,不断连接。

八、防火墙

开了 firewalld 就放行 80 端口:

# 按服务名(http 默认 80)
sudo firewall-cmd --permanent --zone=public --add-service=http

# 或按端口号
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp

# 立即生效
sudo firewall-cmd --reload

九、常见坑

  • 80 端口被占:Nginx 起不来先看 netstat -tunlp | grep :80,Apache 或别的旧 Nginx 常占着。
  • make 报 pcre.h 找不到:pcre-devel 没装,补一条 yum install pcre-devel。
  • systemctl status 一直 starting:pid 文件路径和 PIDFile 不一致,检查 logs/nginx.pid 是否真的生成。
  • 配完 reload 没生效:先 nginx -t 检查配置语法,写错时 reload 会静默失败。
  • 访问不到欢迎页:按顺序查防火墙、云安全组、nginx 监听端口(ss -tlnp | grep nginx)、server_name 匹配。

小结

源码编译 Nginx 的路径是固定的:装依赖 → 下载解压 → ./configure 选模块 → make && make install → 配 systemd → start + enable → 防火墙放行。日常维护记住两条命令:nginx -t 验配置、nginx -s reload 平滑重载,比动不动 restart 稳得多。

qidao123.com企服评测-应用市场 编辑提示

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表