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

Linux下Nginx源码安装步骤详解

以下是在Linux系统下从源码安装Nginx的详细步骤及解释:


1. 下载Nginx源码

步骤:
wget http://nginx.org/download/nginx-1.25.3.tar.gz
tar -zxvf nginx-1.25.3.tar.gz
cd nginx-1.25.3
解释:
  • wget:从官网下载Nginx源码包(版本号以最新稳定版为准)。
  • tar -zxvf:解压.tar.gz文件,z表示解压gzip,x表示解压,v显示过程,f指定文件名。
  • 进入解压后的目录准备后续操作。

2. 安装编译依赖

Ubuntu/Debian系统:
sudo apt update
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
CentOS/RHEL系统:
sudo yum install gcc make pcre-devel zlib-devel openssl-devel
解释:
  • build-essential(Debian)或 gcc make(CentOS):安装编译器(GCC)和构建工具(Make)。
  • libpcre3-dev/pcre-devel:PCRE库(支持正则表达式,用于路由匹配)。
  • zlib1g-dev/zlib-devel:zlib库(支持HTTP压缩)。
  • libssl-dev/openssl-devel:OpenSSL库(支持HTTPS协议)。

3. 配置编译选项

步骤:
./configure \--prefix=/usr/local/nginx \--with-http_ssl_module \--with-http_realip_module \--with-http_gzip_static_module
解释:
  • --prefix:指定安装路径(默认/usr/local/nginx)。
  • --with-http_ssl_module:启用HTTPS支持。
  • --with-http_realip_module:获取客户端真实IP(常用于反向代理)。
  • --with-http_gzip_static_module:启用gzip静态压缩。
  • 其他可选模块可通过 ./configure --help 查看。

4. 编译并安装

步骤:
make
sudo make install
解释:
  • make:根据配置编译源码,生成二进制文件。
  • sudo make install:将编译后的文件安装到--prefix指定的目录(需root权限)。

5. 验证安装

检查安装目录结构:
ls /usr/local/nginx

目录说明:

  • sbin/nginx:可执行文件。
  • conf/nginx.conf:主配置文件。
  • html/:默认网站文件。
  • logs/:日志文件。

6. 启动Nginx

启动命令:
sudo /usr/local/nginx/sbin/nginx
验证运行状态:
ps aux | grep nginx  # 查看进程
curl http://localhost  # 访问默认页面(应看到Welcome to nginx!)

7. 配置系统服务(可选)

创建Systemd服务文件:
sudo vim /etc/systemd/system/nginx.service
内容:
[Unit]
Description=The 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[Install]
WantedBy=multi-user.target
启用服务:
sudo systemctl daemon-reload
sudo systemctl start nginx
sudo systemctl enable nginx  # 开机自启

8. 防火墙放行端口(若需要)

sudo ufw allow 80/tcp    # Ubuntu
sudo firewall-cmd --permanent --add-port=80/tcp  # CentOS
sudo firewall-cmd --reload

9. 访问测试

浏览器访问 http://服务器IP,看到Nginx欢迎页即表示成功。


常用命令

  • 停止Nginx:sudo /usr/local/nginx/sbin/nginx -s stop
  • 重新加载配置:sudo /usr/local/nginx/sbin/nginx -s reload
  • 检查配置文件语法:sudo /usr/local/nginx/sbin/nginx -t

可能遇到的问题

  1. 端口冲突:若80端口被占用(如Apache),需先停止其他服务。
  2. 权限不足:使用sudo执行安装和启动命令。
  3. 依赖缺失:配置阶段报错时,检查是否安装所有依赖库。

通过以上步骤,您已完成Nginx的源码编译安装及基础配置。

http://www.lryc.cn/news/2379559.html

相关文章:

  • SQLMesh 增量模型从入门到精通:5步实现高效数据处理
  • Zookeeper 入门(二)
  • 【架构篇】安全架构-双向认证
  • 负载均衡—会话保持技术详解
  • Flask快速入门和问答项目源码
  • go语法大赏
  • 软件工程各种图总结
  • R-tree详解
  • AAAI2024 | 基于特征多样性对抗扰动攻击 Transformer 模型
  • 关于数据湖和数据仓的一些概念
  • 鸿蒙OSUniApp制作自定义的下拉菜单组件(鸿蒙系统适配版)#三方框架 #Uniapp
  • C++面试2——C与C++的关系
  • 常用的Java工具库
  • 基于LabVIEW的双音多频系统设计
  • R S的EMI接收机面板
  • [ctfshow web入门] web122
  • Nginx+Lua 实战避坑:从模块加载失败到版本冲突的深度剖析
  • LangChain框架-Chain 链详解
  • Java虚拟机 - JVM与Java体系结构
  • elementUI调整滚动条高度后与固定列冲突问题解决
  • 基于 nvitop+Prometheus+Grafana 的物理资源与 VLLM 引擎服务监控方案
  • 互联网大厂Java求职面试:Spring AI与大模型交互在短视频平台中的应用
  • 【Lua】java 调用redis执行 lua脚本
  • 【工奥阀门科技有限公司】签约智橙PLM
  • 灌区量测水自动化监测解决方案
  • SpringBoot整合MQTT实战:基于EMQX构建高可靠物联网通信,从零到一实现设备云端双向对话
  • AI与机器学习深度集成:从设备端能力爆发到开发工具智能化
  • 界面控件DevExpress WinForms v24.2 - 数据处理功能增强
  • Linux的MySQL头文件和找不到头文件问题解决
  • wps excel将表格输出pdf时所有列在一张纸上