当前位置: 首页 > ai >正文

Ubuntu 下 Nginx 1.28.0 源码编译安装与 systemd 管理全流程指南

一、环境与依赖准备

为确保编译顺利,我们首先更新系统并安装必要的编译工具和库:

sudo apt update
sudo apt install -y build-essential \libpcre3 libpcre3-dev \zlib1g zlib1g-dev \libssl-dev \wget
  • build-essential:提供 gccmake 等基础编译工具
  • libpcre3 / libpcre3-dev:支持正则匹配(如 rewrite 模块)
  • zlib1g / zlib1g-dev:提供 gzip 压缩功能
  • libssl-dev:开启 HTTPS/SSL 支持
  • wget:用于下载源码包

二、下载并解压 Nginx 源码

  1. 切换到用户主目录(或其他工作目录)
  2. 下载并解压源码包
cd ~
wget http://nginx.org/download/nginx-1.28.0.tar.gz
tar zxvf nginx-1.28.0.tar.gz
cd nginx-1.28.0

若你已将源码包 nginx-1.28.0.tar.gz 放在本地目录,同样执行 tar zxvf 并进入解压后的目录即可。

三、配置编译选项

使用 ./configure 脚本为编译过程指定安装路径和所需模块。本例中启用了 HTTP、SSL、HTTP/2、gzip、状态监控、异步 I/O、线程以及 Stream 模块等常用功能:

./configure \--prefix=/usr/local/nginx \--with-http_ssl_module \--with-http_v2_module \--with-http_gzip_static_module \--with-http_stub_status_module \--with-http_realip_module \--with-threads \--with-file-aio \--with-stream \--with-stream_ssl_module \--with-stream_realip_module
  • --prefix:指定安装目录
  • --with-http_stub_status_module:开启运行状态页(可用于监控)
  • 其余模块可根据实际需求增删。执行 ./configure --help 可查看所有可选项。

四、编译与安装

  1. 编译:根据机器性能,执行时间通常在几分钟左右
  2. 安装:将编译成果复制到指定目录
make
sudo make install
  • 编译完成后,可执行文件位于 /usr/local/nginx/sbin/nginx
  • 默认主配置文件:/usr/local/nginx/conf/nginx.conf
  • 日志目录:/usr/local/nginx/logs/

五、创建 systemd 服务单元

为了方便开机自启及系统统一管理,建议新建一个 systemd 服务文件:

sudo tee /etc/systemd/system/nginx.service > /dev/null << 'EOF'
[Unit]
Description=NGINX HTTP and reverse proxy server
After=network.target[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PIDFile=/usr/local/nginx/logs/nginx.pid
PrivateTmp=true[Install]
WantedBy=multi-user.target
EOF

随后执行:

sudo systemctl daemon-reload
sudo systemctl enable nginx

六、启动、重载与状态检查

  • 启动 Nginx
    sudo systemctl start nginx
    
  • 查看运行状态
    sudo systemctl status nginx
    
  • 平滑重载配置(修改 nginx.conf 后)
    sudo systemctl reload nginx
    
  • 停止 Nginx
    sudo systemctl stop nginx
    

七、防火墙设置与访问验证

如果系统启用了 UFW 防火墙,请放行 HTTP/HTTPS 端口:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

在浏览器中访问服务器 IP 或绑定的域名,若出现默认 Nginx 欢迎页,即代表安装部署成功。

八、常见故障排查

  1. 端口被占用

    sudo lsof -i:80
    

    如有其他服务占用,需停止或修改 Nginx 监听端口。

  2. 配置文件语法错误

    /usr/local/nginx/sbin/nginx -t
    

    检查并修正错误后再重载。

  3. 日志查看

    • 访问日志:/usr/local/nginx/logs/access.log
    • 错误日志:/usr/local/nginx/logs/error.log

小结

本文详细介绍了在 Ubuntu 上从源码编译安装 Nginx 1.28.0 的全流程,涵盖依赖环境准备、源码下载解压、配置编译选项、make 安装、systemd 服务管理及常见排错方法。通过这种方式,你可以根据业务需求灵活定制 Nginx 功能,并更好地集成到生产运维体系中。欢迎在评论区交流心得或提问!

http://www.xdnf.cn/news/1827.html

相关文章:

  • 本地使用Ollama部署DeepSeek
  • 30天通过软考高项-第三天
  • redis 数据类型新手练习系列——string类型
  • 【Java并发】【LinkedBlockingQueue】适合初学体质的LinkedBlockingQueue入门
  • 计算机组成原理-408考点-数的表示
  • 全面解析 MCP(Model Context Protocol):AI 大模型的“万能连接器”
  • 通讯录完善版本(详细讲解+源码)
  • 基于归纳共形预测的大型视觉-语言模型中预测集的**数据驱动校准**
  • 使用 硅基流动+Doris+DeepSeek搭建RAG知识库(保姆级教程)
  • XBIT以创新技术引领币圈十大APP,开启数字货币交易新时代
  • SpringBoot 学习
  • 基于STM32的大棚温度环境调控系统设计方案
  • 2015-2023 各省 GDP 数据,用QuickBI 进行数据可视化——堆叠图!
  • 基于HTML+CSS实现的动态导航引导页技术解析
  • 聚客AI手把手实战:用LlamaIndex+代码实现亿级数据的智能问答系统
  • 【C++指南】告别C字符串陷阱:如何实现封装string?
  • 深入浅出Sentinel:分布式系统的流量防卫兵
  • 5.3 Dify:低代码平台,适用于企业快速部署合规AI应用
  • Linux系统中命令设定临时IP
  • 四步完成机房3D建模仿真:小白也能快速上手
  • 提示js方法未定义,但是确实<textarea>标签未闭合。
  • 2025研究生论文阅读器推荐:提升学术效率的最佳工具
  • 电子病历高质量语料库构建方法与架构项目(数据遗忘篇)
  • DeepSeek+Cline:开启自动化编程新纪元
  • 矫平机进阶解析:技术细节、行业案例与未来创新
  • 算法设计与分析7(贪心算法)
  • 企业为何要禁止“片断引用开源软件代码”?一文看透!
  • python编程相关的单词
  • ConcurrentHashMap原理
  • 数据结构之排序