一步步:Ubuntu Nginx 安装教程 – wiki基地


一步步:Ubuntu Nginx 安装教程

Nginx(发音为 “engine-x”)是一款高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。因其稳定、功能丰富、配置简单以及资源消耗低等特点,Nginx 在Web服务器领域占据了重要地位,尤其适合高并发场景。本教程将详细介绍如何在 Ubuntu 系统上一步步安装和配置 Nginx。

步骤一:更新系统软件包列表

在安装任何新软件之前,始终建议更新您的系统软件包列表,以确保您获取到最新版本的软件和依赖项。打开终端并执行以下命令:

bash
sudo apt update
sudo apt upgrade -y

sudo apt update 会从配置的源中下载最新的包信息。
sudo apt upgrade -y 会将所有已安装的软件包升级到最新版本,-y 选项会自动确认所有提示。

步骤二:安装 Nginx

更新完成后,您可以直接从 Ubuntu 的默认仓库安装 Nginx。执行以下命令:

bash
sudo apt install nginx -y

这个命令会下载并安装 Nginx 及其所有必要的依赖项。

步骤三:验证 Nginx 安装和运行状态

安装完成后,Nginx 服务应该会自动启动。您可以通过以下命令检查 Nginx 的运行状态:

bash
systemctl status nginx

如果 Nginx 正在正常运行,您会看到类似“active (running)”的状态信息。

同时,您也可以通过访问服务器的公共 IP 地址或域名来验证 Nginx 是否正常工作。在您的Web浏览器中输入 http://您的服务器IP地址http://您的域名。如果一切正常,您应该会看到 Nginx 的默认欢迎页面,内容通常是“Welcome to nginx!”。

如何查找服务器IP地址?
如果您不确定服务器的公共IP地址,可以在终端中运行以下命令:

“`bash
curl -4 icanhazip.com

ip a | grep -oP ‘inet \K[\d.]+’ | head -n 1
“`

步骤四:配置防火墙 (UFW)

如果您在 Ubuntu 上启用了 UFW (Uncomplicated Firewall),您需要允许 HTTP 和 HTTPS 流量通过防火墙。Nginx 在安装时会自动注册为 UFW 服务。

首先,检查 UFW 的状态:

bash
sudo ufw status

如果 UFW 处于活动状态 (Status: active),您需要允许 Nginx 的流量。Nginx 提供了几个配置文件,可用于 UFW:

  • Nginx Full: 此配置文件同时打开端口 80 (HTTP) 和 443 (HTTPS)。
  • Nginx HTTP: 此配置文件仅打开端口 80 (HTTP)。
  • Nginx HTTPS: 此配置文件仅打开端口 443 (HTTPS)。

对于大多数情况,您会希望允许完整的 HTTP 和 HTTPS 流量:

bash
sudo ufw allow 'Nginx Full'

然后,重新检查 UFW 状态以确认规则已添加:

bash
sudo ufw status

您应该能看到 Nginx FullNginx HTTP (如果您只允许 HTTP) 的规则已添加到允许列表中。

步骤五:管理 Nginx 服务

以下是一些常用的 Nginx 服务管理命令:

  • 启动 Nginx 服务:
    bash
    sudo systemctl start nginx
  • 停止 Nginx 服务:
    bash
    sudo systemctl stop nginx
  • 重启 Nginx 服务 (平滑重启,不中断连接):
    bash
    sudo systemctl reload nginx

    此命令会重新加载 Nginx 配置文件,而不会中断正在处理的连接。
  • 重新启动 Nginx 服务 (强制重启,会中断连接):
    bash
    sudo systemctl restart nginx
  • 禁用 Nginx 服务 (开机不自启):
    bash
    sudo systemctl disable nginx
  • 启用 Nginx 服务 (开机自启):
    bash
    sudo systemctl enable nginx

步骤六:Nginx 配置文件结构

Nginx 的主要配置文件位于 /etc/nginx/ 目录下。了解其结构对于后续配置虚拟主机和自定义设置至关重要:

  • /etc/nginx/nginx.conf: Nginx 的主配置文件,包含全局设置。通常您不需要直接修改太多内容,除非是调整 worker 进程数或事件模型。
  • /etc/nginx/sites-available/: 这个目录存放所有可用的虚拟主机(Server Blocks)配置文件。您可以创建多个文件来定义不同的网站或应用程序。
  • /etc/nginx/sites-enabled/: 这个目录包含指向 sites-available 目录中配置文件的符号链接。只有在这个目录中的配置文件才会被 Nginx 加载和使用。
  • /etc/nginx/snippets/: 这个目录通常用于存放可重用的配置片段,例如 SSL 设置、fastcgi 参数等。
  • /var/www/html: 这是 Nginx 默认的 Web 根目录,您可以在这里放置您的网站文件。

步骤七:配置您的第一个网站 (虚拟主机)

Nginx 使用“虚拟主机”(在 Nginx 中称为 server block)来管理多个网站。我们将创建一个新的配置文件。

  1. 创建新的网站配置文件:
    例如,为 example.com 创建一个配置文件。

    bash
    sudo nano /etc/nginx/sites-available/example.com

    将以下内容粘贴到文件中,并根据您的实际情况进行修改:

    “`nginx
    server {
    listen 80;
    listen [::]:80;

    root /var/www/example.com/html; # 网站文件存放的根目录
    index index.html index.htm index.nginx-debian.html;
    
    server_name example.com www.example.com; # 您的域名
    
    location / {
        try_files $uri $uri/ =404;
    }
    
    # 可选:如果你有错误页面
    # error_page 404 /404.html;
    # location = /404.html {
    #     internal;
    # }
    
    # 可选:如果你有自定义访问日志和错误日志
    # access_log /var/log/nginx/example.com_access.log;
    # error_log /var/log/nginx/example.com_error.log warn;
    

    }
    “`
    保存并关闭文件 (Ctrl+X, Y, Enter)。

  2. 创建网站根目录并放置一个测试页面:

    bash
    sudo mkdir -p /var/www/example.com/html
    echo "<h1>Welcome to example.com!</h1>" | sudo tee /var/www/example.com/html/index.html

    给 Nginx 用户设置正确的权限:

    bash
    sudo chown -R www-data:www-data /var/www/example.com
    sudo chmod -R 755 /var/www/example.com

  3. 激活虚拟主机:
    通过创建符号链接,将 sites-available 中的配置文件链接到 sites-enabled 目录。

    bash
    sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

  4. 删除默认虚拟主机 (可选,但推荐):
    为了避免冲突,建议禁用并删除 Nginx 的默认虚拟主机配置,特别是当您有多个网站时。

    bash
    sudo rm /etc/nginx/sites-enabled/default

  5. 测试 Nginx 配置:
    在重新加载 Nginx 之前,最好测试一下配置文件是否有语法错误。

    bash
    sudo nginx -t

    如果显示 syntax is oktest is successful,则表示配置无误。

  6. 重新加载 Nginx 服务:
    bash
    sudo systemctl reload nginx

现在,在您的浏览器中访问 http://example.com (或者如果您没有配置域名解析,暂时使用服务器IP地址),您应该能看到“Welcome to example.com!”的页面。

总结

至此,您已经成功在 Ubuntu 系统上安装并配置了 Nginx 服务器,并部署了您的第一个网站。Nginx 功能强大且灵活,您可以根据需要进一步探索其高级特性,例如配置 SSL/TLS 证书(HTTPS)、反向代理、负载均衡等,以满足更复杂的Web服务需求。

滚动至顶部