介绍

Nginx 是一个免费的开源 Linux 应用程序,用于 Web 服务器。它通过将 Web 流量定向到特定服务器来充当反向代理服务器。

Nginx 用于安全和负载平衡,但也可以作为 Web 服务器独立运行。

本指南将帮助您在 Ubuntu 20.04 Linux (Focal Fossa) 上安装 Nginx。

先决条件

  • 运行 Ubuntu 20.04 Linux 的系统
  • 具有 sudo 或 root 权限的用户帐户
  • 访问终端窗口/命令行(单击 活动 > 搜索 > 输入 终端

步骤 1:更新软件存储库

在安装新软件之前刷新存储库列表很重要。这有助于确保安装了最新的更新和补丁。

打开终端窗口并输入以下内容:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ sudo apt-get update

等等该过程完成。

第 2 步:从 Ubuntu 存储库安装 Nginx

Nginx 包含在 Ubuntu 20.04 默认存储库中。通过输入以下命令安装它:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ sudo nala install nginx

第 3 步:验证安装

通过检查软件版本来验证 Nginx 是否正确安装。输入以下内容:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ nginx -v
nginx version: nginx/1.18.0 (Ubuntu)

系统应该会显示 Nginx 的软件版本。

第四步:控制 Nginx 服务

Nginx 的行为可以调整。使用它来启动或停止 Nginx,或者在启动时启用或禁用 Nginx。

首先检查 Nginx 服务的状态:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ sudo systemctl status nginx

如果状态显示 active (running),则 Nginx 已经启动。按CTRL+z退出状态显示。

如果 Nginx 未运行,请使用以下命令启动 Nginx 服务:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ sudo systemctl start nginx

要设置 Nginx 在系统启动时加载,请输入以下内容:


linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ sudo systemctl enable nginx
Synchronizing state of nginx.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable nginx

要停止 Nginx 服务,请输入以下内容:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ sudo systemctl stop nginx

为了防止 Nginx 在系统启动时加载:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ sudo systemctl disable nginx
Synchronizing state of nginx.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable nginx
Removed /etc/systemd/system/multi-user.target.wants/nginx.service.

重新加载 Nginx 服务(用于应用配置更改):

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ sudo systemctl reload nginx

对于 Nginx 的硬重启:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ sudo systemctl restart nginx

第 5 步:允许 Nginx 流量

Nginx 需要通过系统的防火墙访问。为此,Nginx 为 Ubuntu 默认的ufw(简单防火墙)安装了一组配置文件。

首先显示可用的 Nginx 配置文件:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ sudo ufw app list

系统应显示以下内容:

注意:可能会列出其他应用程序。它们可以被忽略。

要通过默认的 Ubuntu 防火墙授予 Nginx 访问权限,请输入以下内容:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ sudo ufw allow 'nginx http'
防火墙规则已更新
规则已更新(v6)

系统应显示规则已更新.

通过输入以下内容刷新防火墙设置:

sudo ufw reload

对于加密 (https) 流量,请输入:

sudo ufw allow 'nginx https'

要允许两者,请输入:

sudo ufw allow 'nginx full'

注意:建议您只允许最低要求的流量通过防火墙。对于这个过程,只需要基本的 HTTP 流量。其他配置可能需要 HTTPS(加密)或其他流量。如果系统使用不同的防火墙,则应将其配置为允许端口 80 (HTTP)、端口 443 (HTTPS) 或网络所需的任何端口上的流量。

第 6 步:测试 Nginx

确保 Nginx 服务正在运行,如步骤 4 所示。打开 Web 浏览器,并导航到以下 Web 地址,系统应该显示 Nginx 欢迎页面。

注意:如果系统具有特定的主机名或 IP 地址,则可以使用它。

如果系统没有图形界面,可以在终端使用 curl加载 Nginx 欢迎页面:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ curl –i www.linuxmi.com

系统应该显示 Nginx 欢迎页面的 HTML 代码。

第 7 步:配置服务器块

在 Nginx 中,服务器块是作为自己的服务器工作的配置。默认情况下,Nginx 预先配置了一个服务器块。

它位于/var/www/html。但是,它可以为不同的站点配置多个服务器块。

注意:本教程使用www.linuxmi.com作为域名。这可以替换为您自己的域名。

1.为测试域名创建目录

在终端窗口中,通过输入以下内容创建一个新目录:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ sudo mkdir -p /var/www/www.linuxmi.com/html

2.配置所有权和权限

用于chmod 配置所有权和权限规则:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ sudo chown -R $USER:$USER /var/www/www.linuxmi.com

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ sudo chmod -R 755 /var/www/www.linuxmi.com

3. 为服务器块创建一个 index.html 文件

在您选择的文本编辑器中打开 index.html 进行编辑(我们将使用 Nano 文本编辑器):

sudo nano /var/www/www.linuxmi.com/html/index.html

在文本编辑器中,输入以下 HTML 代码:

<html>
   <head>
   <meta charset="UTF-8">
      <title>欢迎来到 Linux迷 www.linuxmi.com</title>
   </head>
   <body>
      <h1>这条消息确认你的 Nginx 服务器块正在工作。伟大的工作!</h1>
      <div>
      <img src="https://www.linuxmi.com/wp-content/uploads/2020/02/linuxmi.png" alt=Linux迷" width="666" height="666" />
      </div>
   </body>
</html>

CTRL+o 写入更改,然后 按CTRL+x 退出。

4.创建 Nginx 服务器块配置

打开配置文件进行编辑:

sudo nano /etc/nginx/sites-available/www.linuxmi.com.conf

输入以下代码:

server {
        listen 80;
        listen [::]:80;

        root /var/www/www.linuxmi.com/html;
        index index.html index.htm index.nginx-debian.html;

        server_name www.linuxmi.com linuxmi.com;

        location / {
                try_files $uri $uri/ =404;
        }
}

通过输入以下内容在服务器块和启动目录之间创建符号链接:

sudo ln -s /etc/nginx/sites-available/www.linuxmi.com.conf /etc/nginx/sites-enabled

6.重启Nginx服务

通过运行以下命令重新启动 Nginx :

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ sudo systemctl restart nginx

7. 测试配置

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

系统应报告配置文件语法正常,并且配置文件测试成功。

8.修改Hosts文件(可选)

如果您使用的是未注册或未公开的测试域名,则  可能需要修改/etc/hosts文件以显示test_domain.com页面。

使用以下命令显示系统的 IP 地址:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ hostname -i
127.0.1.1

记下显示的 IP 地址。

接下来,打开/etc/hosts 进行编辑:

sudo nano /etc/hosts

在 localhost 信息正下方的空白处,添加以下行:

127.0.1.1 www.linuxmi.com linuxmi.com

将 127.0.0.1 替换为上面显示的 IP 地址。按CTRL+o 保存更改,然后 按CTRL+x 退出。

9. 在 Web 浏览器中检查 www.linuxmi.com

打开浏览器窗口并导航到 www.linuxmi.com(或你在 Nginx 中配置的域名)。 

你此时应该会看到你在第 3 部分中输入的消息。

重要的 Nginx 文件位置

默认情况下,Nginx 将不同的配置和日志文件存储在以下位置:

  • /var/www/html – 访问者看到的网站内容。
  • /etc/nginx  – 主要 Nginx 应用程序文件的位置。
  • /etc/nginx/nginx.conf – 主要的 Nginx 配置文件。
  • /etc/nginx/sites-available – 通过 Nginx 配置的所有网站的列表。
  • /etc/nginx/sites-enabled – Nginx 正在服务的网站列表。
  • /var/log/nginx/access.log – 访问日志跟踪对服务器的每个请求。
  • /var/log/ngins/error.log – Nginx 中生成的任何错误的日志。

总结

你现在应该在 Ubuntu 20.04/22.04 上安装了 Nginx。而且您现在也应该了解如何设置 Nginx 服务器块。

发表回复