

在 Ubuntu 服务器上安装已下载的 Nginx,需完成依赖安装、解压编译、配置安装及服务验证等步骤,以下是详细操作流程。
Nginx 编译安装需依赖gcc、pcre、zlib等库,先通过 APT 命令安装缺失依赖,避免编译报错:
\# 更新APT软件源(可选,确保依赖版本最新)
sudo apt update
\# 安装编译依赖
sudo apt install -y gcc g++ make libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-devgcc/g++:编译 Nginx 源码的编译器;
libpcre3-dev:支持 Nginx 的 URL 重写功能;
zlib1g-dev:支持 Nginx 的 gzip 压缩;
libssl-dev:(可选)支持 HTTPS 协议(若需配置 SSL 则必须安装)。
假设已下载的 Nginx 压缩包(如nginx-1.24.0.tar.gz)存放在/home/ubuntu/downloads/目录,先进入该目录,再解压文件:
\# 进入安装包所在目录(替换为你的实际路径)
cd /home/ubuntu/downloads/
\# 解压tar.gz压缩包(替换为你的Nginx文件名)
tar -zxvf nginx-1.24.0.tar.gz
\# 进入解压后的Nginx源码目录
cd nginx-1.24.0解压后会生成以 Nginx 版本命名的源码目录(如nginx-1.24.0),后续操作均在此目录下进行。
通过./configure命令指定安装路径及功能配置,常用参数如下(基础场景用默认配置即可):
\# 基础配置:指定安装路径为/usr/local/nginx(推荐路径,便于管理)
./configure --prefix=/usr/local/nginx
\# (可选)若需支持HTTPS,添加SSL模块配置:
\# ./configure --prefix=/usr/local/nginx --with-http\_ssl\_module--prefix=/usr/local/nginx:指定 Nginx 的安装根目录;
--with-http_ssl_module:(可选)启用 SSL 模块,用于后续配置 HTTPS。
执行后若未报错,会生成Makefile文件(编译所需的脚本文件),表示配置成功。
通过make编译源码,再通过make install完成安装:
\# 编译源码(-j4 表示用4个线程编译,加快速度,可根据CPU核心数调整)
make -j4
\# 安装编译后的文件到指定路径(/usr/local/nginx)
sudo make install/usr/local/nginx目录下会生成sbin(执行文件)、conf(配置文件)、html(默认网页)等子目录。
通过 Nginx 安装目录下的nginx执行文件启动服务:
\# 启动Nginx(需用绝对路径,或配置环境变量后直接用nginx命令)
sudo /usr/local/nginx/sbin/nginx\# 查看Nginx进程(若有nginx进程,说明启动成功)
ps aux | grep nginx
\# 测试Nginx默认页面(本地访问,或服务器IP访问)
curl http://127.0.0.1curl命令返回<h1>Welcome to nginx!</h1>,表示 Nginx 已正常运行;
\# 开放80端口(Ubuntu防火墙用ufw)
sudo ufw allow 80
sudo ufw reload之后在本地浏览器输入服务器 IP,即可看到 Nginx 默认欢迎页。
安装完成后,常用命令需通过/usr/local/nginx/sbin/nginx执行,核心命令如下:
\# 停止Nginx服务
sudo /usr/local/nginx/sbin/nginx -s stop
\# 重启Nginx服务(配置文件修改后需重启)
sudo /usr/local/nginx/sbin/nginx -s reload
\# 检查Nginx配置文件语法(修改conf后先检查,避免报错)
sudo /usr/local/nginx/sbin/nginx -tUbuntu 通过systemd管理服务,需手动创建 Nginx 服务文件,实现开机自启:
使用vim编辑服务文件(路径固定为/etc/systemd/system/nginx.service):
sudo vim /etc/systemd/system/nginx.service在打开的文件中,粘贴以下内容(需确保ExecStart路径与 Nginx 安装路径一致):
\[Unit]
Description=Nginx Web Server
After=network.target # 网络服务启动后,再启动Nginx
\[Service]
Type=forking # Nginx以多进程模式运行(fork方式)
ExecStart=/usr/local/nginx/sbin/nginx # Nginx启动命令路径
ExecReload=/usr/local/nginx/sbin/nginx -s reload # 重启命令
ExecStop=/usr/local/nginx/sbin/nginx -s stop # 停止命令
PrivateTmp=true # 为Nginx分配独立临时目录
\[Install]
WantedBy=multi-user.target # 多用户模式下生效(服务器常用模式)粘贴完成后,按Esc键,输入:wq保存并退出vim。
\# 重新加载systemd配置(识别新创建的nginx.service文件)
sudo systemctl daemon-reload
\# 设置Nginx开机自启
sudo systemctl enable nginx
\# 验证开机自启是否设置成功(返回enabled表示成功)
sudo systemctl is-enabled nginx
\# (可选)重启服务器,测试开机自启效果
sudo reboot
\# 重启后,通过以下命令检查Nginx是否自动启动
ps aux | grep nginx默认情况下,Nginx 的html(网页文件)、log(日志文件)、conf(配置文件)分散在安装根目录下,以下提供两种方法将它们统一存放到指定路径(以统一存放在/data/nginx/为例)。
先确认默认目录位置(基于前文--prefix=/usr/local/nginx安装路径):
/usr/local/nginx/conf(存放 nginx.conf 等配置文件)
/usr/local/nginx/html(存放默认欢迎页等网页文件)
/usr/local/nginx/logs(存放 access.log、error.log 等日志文件)
适合希望保留原目录结构,仅通过配置指向统一路径的场景:
\# 创建统一根目录及子目录
sudo mkdir -p /data/nginx/{conf,html,log}
\# 复制默认文件到新目录(保持原有配置和网页文件)
sudo cp -r /usr/local/nginx/conf/\* /data/nginx/conf/
sudo cp -r /usr/local/nginx/html/\* /data/nginx/html/
sudo cp -r /usr/local/nginx/logs/\* /data/nginx/log/ # 复制现有日志(可选)编辑新目录下的nginx.conf,指定新的html和log路径:
sudo vim /data/nginx/conf/nginx.conf在文件中修改以下内容(找到对应配置项替换):
\# 1. 修改网页文件(html)路径(找到"root"配置项)
server {
  listen 80;
  server\_name localhost;
  root /data/nginx/html; # 原路径:/usr/local/nginx/html
  index index.html index.htm;
  # 其他配置保持不变...
}
\# 2. 修改日志文件(log)路径(找到"access\_log"和"error\_log"配置项)
http {
  # 其他配置...
  access\_log /data/nginx/log/access.log; # 原路径:/usr/local/nginx/logs/access.log
  error\_log /data/nginx/log/error.log; # 原路径:/usr/local/nginx/logs/error.log
  # 其他配置保持不变...
}修改后保存退出(Esc→:wq)。
\# 先停止原Nginx服务
sudo /usr/local/nginx/sbin/nginx -s stop
\# 启动时通过"-c"指定新conf路径
sudo /usr/local/nginx/sbin/nginx -c /data/nginx/conf/nginx.conf
\# 验证配置是否生效(访问网页和查看日志路径)
curl http://127.0.0.1 # 正常返回则html路径生效
ls /data/nginx/log/ # 有access.log和error.log则log路径生效适合希望保留原 Nginx 命令习惯(无需指定配置文件),通过链接指向统一路径的场景:
\# 同方法一,创建目录并复制默认文件
sudo mkdir -p /data/nginx/{conf,html,log}
sudo cp -r /usr/local/nginx/conf/\* /data/nginx/conf/
sudo cp -r /usr/local/nginx/html/\* /data/nginx/html/
sudo cp -r /usr/local/nginx/logs/\* /data/nginx/log/\# 先停止Nginx服务(避免占用文件)
sudo /usr/local/nginx/sbin/nginx -s stop
\# 删除原目录(确保已复制文件,避免数据丢失)
sudo rm -rf /usr/local/nginx/conf
sudo rm -rf /usr/local/nginx/html
sudo rm -rf /usr/local/nginx/logs
\# 创建软链接,指向统一目录
sudo ln -s /data/nginx/conf /usr/local/nginx/conf
sudo ln -s /data/nginx/html /usr/local/nginx/html
sudo ln -s /data/nginx/log /usr/local/nginx/logs\# 启动Nginx(无需指定配置文件,默认读取链接后的conf)
sudo /usr/local/nginx/sbin/nginx
\# 验证链接是否正确(ls -l查看链接指向)
ls -l /usr/local/nginx/ | grep -E "conf|html|logs"
\# 输出类似如下内容表示成功:
\# lrwxrwxrwx 1 root root 14 Oct 18 15:00 conf -> /data/nginx/conf
\# lrwxrwxrwx 1 root root 14 Oct 18 15:00 html -> /data/nginx/html
\# lrwxrwxrwx 1 root root 13 Oct 18 15:00 logs -> /data/nginx/log/data/nginx/conf/nginx.conf,后续所有配置修改需在此文件操作,避免误改原路径下的空文件;
/usr/local/nginx/conf/nginx.conf或新路径/data/nginx/conf/nginx.conf修改,两者指向同一文件,修改后需执行sudo /usr/local/nginx/sbin/nginx -t检查语法正确性。
nginx.service服务文件中的启动命令,添加-c参数指定新配置路径,否则开机后 Nginx 会因找不到默认配置文件启动失败,完整修改命令如下:sudo vim /etc/systemd/system/nginx.service
\# 将ExecStart行修改为:ExecStart=/usr/local/nginx/sbin/nginx -c /data/nginx/conf/nginx.conf
sudo systemctl daemon-reload # 重新加载服务配置
sudo systemctl restart nginx # 重启服务验证logrotate工具),避免占用过多磁盘空间,示例清理 30 天前日志的命令:\# 方法一日志路径清理
find /data/nginx/log/ -name "\*.log" -mtime +30 -delete
\# 方法二日志路径清理(软链接路径同样生效)
find /usr/local/nginx/logs/ -name "\*.log" -mtime +30 -delete/data/nginx/html/(方法一)或/usr/local/nginx/html/(方法二),替换默认的index.html即可,更新后无需重启 Nginx,刷新浏览器即可生效。/data/nginx/需设置合理权限,避免普通用户误修改,建议设置所有者为root,权限为755,命令如下:sudo chown -R root:root /data/nginx/
sudo chmod -R 755 /data/nginx/sudo ufw allow 443 && sudo ufw reload,避免外部无法访问 HTTPS 服务。sudo /usr/local/nginx/sbin/nginx -v查看已安装版本,如输出nginx version: nginx/1.24.0;
sudo /usr/local/nginx/sbin/nginx -s stop),且升级后需重新配置统一目录(方法一或方法二)。
本文围绕 “已下载 Nginx 安装包” 的前提,完成了从依赖安装到服务上线的全流程,核心步骤可归纳为:
gcc、pcre等编译依赖,避免编译报错;
./configure指定安装路径,make编译后sudo make install完成安装;
curl和浏览器验证服务正常运行,开放 80 端口支持外部访问;
html/log/conf目录统一存放,便于后续管理;
按照上述步骤操作,可在 Ubuntu 服务器上快速完成 Nginx 的安装与配置,满足基础网页服务或后续反向代理、HTTPS 等进阶需求。