以下是在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
可能遇到的问题
- 端口冲突:若80端口被占用(如Apache),需先停止其他服务。
- 权限不足:使用
sudo
执行安装和启动命令。 - 依赖缺失:配置阶段报错时,检查是否安装所有依赖库。
通过以上步骤,您已完成Nginx的源码编译安装及基础配置。