温馨提示×

Ubuntu上如何安装Nginx

小樊
50
2025-10-25 12:56:20
栏目: 智能运维

Ubuntu系统安装Nginx的详细步骤

一、前置准备

在安装Nginx前,需确保系统已联网且具备sudo权限(或root用户身份)。建议先更新系统软件包列表,避免因包版本冲突导致安装失败。

二、通过APT包管理器安装(推荐新手使用)

APT是Ubuntu默认的包管理工具,安装过程简单且能自动解决依赖问题,是最常用的安装方式。

1. 更新软件包列表

打开终端,执行以下命令同步系统与软件源的最新信息:

sudo apt update

2. 安装Nginx

输入以下命令安装Nginx及关联组件(如HTTP模块、邮件模块等):

sudo apt install nginx

安装过程中会提示“是否继续?”,输入Y并按回车键确认,等待安装完成。

3. 启动Nginx服务

安装完成后,通过以下命令启动Nginx:

sudo systemctl start nginx

若需让Nginx在系统启动时自动运行(推荐),执行:

sudo systemctl enable nginx

4. 验证安装结果

  • 检查服务状态:运行sudo systemctl status nginx,若输出显示“active (running)”,则表示服务已成功启动。
  • 访问默认页面:在浏览器中输入服务器的IP地址(如http://192.168.1.100),若看到Nginx的默认欢迎页面(包含“Welcome to nginx!”字样),则说明安装成功。

三、从源码包编译安装(适合高级用户)

若需要自定义Nginx模块(如添加HTTP/2支持、第三方模块)或使用特定版本,可选择源码编译安装。这种方式需手动管理依赖和配置,步骤较复杂。

1. 安装编译依赖

编译Nginx需要GCC编译器、PCRE库(处理正则表达式)、zlib库(压缩)、OpenSSL库(SSL/TLS支持)等,执行以下命令安装:

sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev

2. 下载并解压Nginx源码

访问Nginx官方网站获取最新稳定版链接(如nginx-1.25.3.tar.gz),然后执行:

cd /usr/local/src  # 进入源码存放目录
sudo wget https://nginx.org/download/nginx-1.25.3.tar.gz  # 下载源码包(替换为最新版本)
sudo tar -zxvf nginx-1.25.3.tar.gz  # 解压
cd nginx-1.25.3  # 进入解压后的目录

3. 配置编译选项

运行./configure脚本指定安装路径和所需模块(以下示例启用SSL和状态监控模块):

sudo ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module

常用选项说明:

  • --prefix:指定Nginx安装目录(默认为/usr/local/nginx);
  • --with-http_ssl_module:启用SSL/TLS支持(用于HTTPS);
  • --with-http_stub_status_module:启用状态监控模块(查看连接数、请求数等)。

4. 编译并安装

执行以下命令编译源码(耗时取决于服务器性能),然后安装到指定目录:

sudo make  # 编译
sudo make install  # 安装

5. 手动管理服务

  • 启动Nginx:进入sbin目录,执行sudo ./nginx
  • 停止Nginxsudo ./nginx -s stop(强制停止)或sudo ./nginx -s quit(优雅停止,等待请求完成);
  • 重载配置:修改配置文件后,执行sudo ./nginx -s reload使更改生效;
  • 检查配置语法sudo ./nginx -t(无错误则显示“syntax is ok”)。

6. 创建Systemd服务(可选)

为方便通过systemctl管理源码安装的Nginx,可创建服务文件:

sudo nano /etc/systemd/system/nginx.service

粘贴以下内容(根据实际安装路径调整):

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/local/nginx/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/usr/local/nginx/sbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

保存后执行以下命令激活服务:

sudo systemctl daemon-reload  # 重新加载Systemd配置
sudo systemctl start nginx    # 启动服务
sudo systemctl enable nginx   # 设置开机自启

7. 验证源码安装

  • 检查版本:/usr/local/nginx/sbin/nginx -v
  • 访问默认页面:浏览器输入服务器IP,确认显示Nginx欢迎页面。

四、后续配置建议

  • 修改默认页面:编辑/etc/nginx/sites-available/default(APT安装)或/usr/local/nginx/conf/nginx.conf(源码安装),调整root指向的网站目录(如/var/www/html)和index文件;
  • 配置防火墙:若使用UFW防火墙,允许HTTP(80端口)和HTTPS(443端口)流量:
    sudo ufw allow 'Nginx Full'
    sudo ufw enable  # 开启防火墙(若未开启)
    
  • 申请SSL证书:使用Let’s Encrypt免费证书实现HTTPS,执行:
    sudo apt install certbot python3-certbot-nginx  # 安装Certbot
    sudo certbot --nginx -d yourdomain.com  # 替换为你的域名
    
    按提示完成域名验证,Certbot会自动配置Nginx的SSL证书。

0