如何在 Ubuntu 20.04 上安装 Nginx [快速入门]

介绍

Nginx 是世界上最受欢迎的 Web 服务器之一,负责托管互联网上一些最大的和流量最高的网站,在大多数情况下比 Apache 更为资源友好,可以用作 Web 服务器或反向代理。

在本指南中,我们将解释如何在 Ubuntu 20.04 服务器上安装 Nginx. 对于本教程的更详细版本,请参阅 如何在 Ubuntu 20.04 上安装 Nginx

步骤1:安装 Nginx

由于Nginx在Ubuntu的默认存储库中可用,所以您可以使用apt包装系统安装它。

更新您的本地包索引:

1sudo apt update

安装 Nginx:

1sudo apt install nginx

第2步:调整防火墙

如果您遵循了先决条件的服务器设置教程,那么您已启用了UFW防火墙,然后使用以下命令检查可用的ufw应用程序配置文件:

1sudo ufw app list
1[secondary_label Output]
2Available applications:
3  Nginx Full
4  Nginx HTTP
5  Nginx HTTPS
6  OpenSSH

让我们启用最具限制性的配置,它仍然允许您配置的流量,允许在端口80上的流量:

1sudo ufw allow 'Nginx HTTP'

检查变化:

1sudo ufw status
1[secondary_label Output]
2Status: active
3
4To Action From
5--                         ------      ----
6OpenSSH ALLOW Anywhere                  
7Nginx HTTP ALLOW Anywhere                  
8OpenSSH (v6)               ALLOW Anywhere (v6)             
9Nginx HTTP (v6)            ALLOW Anywhere (v6)

步骤三:检查您的Web服务器

通过systemd init 系统检查,以确保该服务通过键入运行:

1systemctl status nginx
 1[secondary_label Output]
 2nginx.service - A high performance web server and a reverse proxy server
 3     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset:>
 4     Active: active (running) since Mon 2020-05-04 22:45:26 UTC; 1min 17s ago
 5       Docs: man:nginx(8)
 6   Main PID: 13255 (nginx)
 7      Tasks: 2 (limit: 1137)
 8     Memory: 4.6M
 9     CGroup: /system.slice/nginx.service
10             ├─13255 nginx: master process /usr/sbin/nginx -g daemon on; master>
11             └─13256 nginx: worker process

访问默认的 Nginx 定位页面以确认软件通过您的 IP 地址正确运行:

1http://your_server_ip

您应该收到默认的 Nginx 登陆页面:

Nginx default page

步骤 4 – 设置服务器封锁(推荐)

在使用 Nginx 网页服务器时,可使用 server block(类似于 Apache 中的虚拟主机)来封装配置细节,并从单个服务器中托管多个域。我们将设置一个名为 your_domain 的域名,但您应该 ** 用自己的域名代替它。

创建your_domain的目录,使用-p旗帜创建任何必要的母目录:

1sudo mkdir -p /var/www/your_domain/html

授予董事会的所有权:

1sudo chown -R $USER:$USER /var/www/your_domain/html

如果您尚未修改mask值,您的 Web 根的权限应该是正确的,但您可以通过键入确保:

1sudo chmod -R 755 /var/www/your_domain

使用nano或您最喜欢的编辑器创建一个样本index.html页面:

1nano /var/www/your_domain/html/index.html

内部,添加以下样本HTML:

1[label /var/www/your_domain/html/index.html]
2<html>
3    <head>
4        <title>Welcome to your_domain!</title>
5    </head>
6    <body>
7        <h1>Success!  The your_domain server block is working!</h1>
8    </body>
9</html>

保存并关闭文件,当你完成。

创建一个新的服务器块在 /etc/nginx/sites-available/your_domain:

1sudo nano /etc/nginx/sites-available/your_domain

插入以下配置块,更新为我们的新目录和域名:

 1[label /etc/nginx/sites-available/your_domain]
 2server {
 3        listen 80;
 4        listen [::]:80;
 5
 6        root /var/www/your_domain/html;
 7        index index.html index.htm index.nginx-debian.html;
 8
 9        server_name your_domain www.your_domain;
10
11        location / {
12                try_files $uri $uri/ =404;
13        }
14}

保存并关闭文件,当你完成。

通过从它创建一个链接到网站启用目录来激活该文件:

1sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

现在两个服务器块已启用并配置为根据其server_name指令响应请求:

  • your_domain: 将响应对 your_domainwww.your_domain 的请求。
  • 默认: 将响应对不匹配其他两个区块的 `80' 端口上的任何请求。

为了避免可能导致添加额外的服务器名称的哈希库存问题,需要在 `/etc/nginx/nginx.conf 文件中调整单个值。

1sudo nano /etc/nginx/nginx.conf

查找server_names_hash_bucket_size指令,然后删除# 符号以不评论行:

1[label /etc/nginx/nginx.conf]
2...
3http {
4    ...
5    server_names_hash_bucket_size 64;
6    ...
7}
8...

测试语法错误:

1sudo nginx -t

重新启动 Nginx 以启用您的更改:

1sudo systemctl restart nginx

您可以通过导航到http://your_domain,在那里您应该收到这样的东西:

Nginx first server block

结论

现在你已经安装了你的Web服务器,你有许多选择的内容类型来服务和你想要使用的技术来创建一个更丰富的体验。

如果您想构建一个更完整的应用程序堆栈,请参阅本文中的 如何在Ubuntu 20.04上配置LEMP堆栈

Published At
Categories with 技术
comments powered by Disqus