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

介绍

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

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

前提条件

在你开始这个指南之前,你应该有以下几点:

  • Ubuntu 18.04 服务器和具有 sudo 特权的常规非 root 用户. 此外,您还需要启用基本防火墙来阻止非必不可少的端口。 您可以通过遵循我们的 Ubuntu 18.04 初始服务器设置指南来学习如何配置常规用户帐户并设置防火墙。

当你有一个帐户可用时,登录作为你的非根用户开始。

步骤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]
 2 nginx.service - A high performance web server and a reverse proxy server
 3   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
 4   Active: active (running) since Fri 2018-04-20 16:08:19 UTC; 3 days ago
 5     Docs: man:nginx(8)
 6 Main PID: 2369 (nginx)
 7    Tasks: 2 (limit: 1153)
 8   CGroup: /system.slice/nginx.service
 9           ├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
10           └─2380 nginx: worker process

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

1http://your_server_ip

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

Nginx default page

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

当您使用 Nginx Web 服务器时,您可以使用 server blocks (类似于 Apache 中的虚拟主机) 来封装配置细节并从单个服务器中托管多个域。

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

1sudo mkdir -p /var/www/example.com/html

授予董事会的所有权:

1sudo chown -R $USER:$USER /var/www/example.com/html

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

1sudo chmod -R 755 /var/www/example.com

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

1nano /var/www/example.com/html/index.html

内部,添加以下样本HTML:

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

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

创建一个新的服务器封锁在 /etc/nginx/sites-available/example.com:

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

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

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

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

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

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

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

  • example.com: 将响应对 example.comwww.example.com 的请求。
  • 默认: 将响应对不匹配其他两个块的 `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

Nginx现在应该为您的域名提供服务。您可以通过导航到http://example.com来测试此功能,您应该看到这样的内容:

Nginx first server block

结论

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

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

Published At
Categories with 技术
comments powered by Disqus