在开始编译安装 Nginx 之前,需要确保系统中已经安装了必要的编译工具和依赖库。可以通过以下命令安装这些依赖项(以 Ubuntu/Debian 为例):
sudo apt update
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
对于 CentOS/RHEL 系统,可以使用以下命令:
sudo yum groupinstall "Development Tools"
sudo yum install pcre pcre-devel zlib zlib-devel openssl openssl-devel
访问 Nginx 官方网站 获取最新的稳定版本源码包链接,然后使用 wget
下载:
wget http://nginx.org/download/nginx-1.24.0.tar.gz
解压下载的源码包:
tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0
进入解压后的目录,运行 configure
脚本以配置编译选项。可以根据需要添加模块或自定义路径:
./configure --prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_stub_status_module
常用选项说明:
--prefix
:指定安装目录。--with-http_ssl_module
:启用 SSL 支持。--with-http_v2_module
:启用 HTTP/2 支持。--with-http_stub_status_module
:启用状态监控模块。配置完成后,使用 make
命令编译源码:
make
编译成功后,使用 make install
进行安装:
sudo make install
安装完成后,进入安装目录启动 Nginx:
cd /usr/local/nginx/sbin
sudo ./nginx
验证 Nginx 是否成功启动:
curl http://localhost
如果返回 Nginx 的欢迎页面,说明安装成功。
为了方便管理,可以创建 systemd 服务文件。使用以下命令创建服务配置文件:
sudo vim /etc/systemd/system/nginx.service
在文件中添加以下内容:
[Unit]
Description=The Nginx HTTP and reverse proxy server
After=network.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=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
保存后重新加载 systemd 并启用服务:
sudo systemctl daemon-reload
sudo systemctl enable nginx
sudo systemctl start nginx
如果系统启用了防火墙,需要放行 HTTP(80)和 HTTPS(443)端口:
# Ubuntu/Debian(使用 ufw)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# CentOS/RHEL(使用 firewalld)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
至此,Nginx 已经成功编译安装并运行。可以通过浏览器访问服务器 IP 地址查看默认页面。