在Ubuntu 18.04上安装Nginx【快速入门】

随笔4个月前发布 靳景然
44 0 0

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

介绍

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

在本指南中,我们将解释如何在 Ubuntu 18.04 服务器上安装 Nginx。有关此教程的更详细版本,请参阅《在 Ubuntu 18.04 上安装 Nginx 的方法》。

先决条件

在开始本指南之前,您应具备以下条件:

一个 Ubuntu 18.04 服务器和一个常规的非根用户,具有 sudo 特权。此外,您需要启用基本防火墙以阻止非必要的端口。您可以按照我们的 Ubuntu 18.04 初始服务器设置指南来了解如何配置常规用户帐户和设置防火墙。

当您有可用帐户时,请以非根用户身份登录。

步骤 1 – 安装 Nginx

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

更新本地软件包索引:

sudo apt update

1

安装 Nginx:

sudo apt install nginx

1

步骤 2 – 调整防火墙

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

sudo ufw app list

1

可用应用程序:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

123456

让我们启用最严格的配置文件,仍然允许您配置的流量,允许端口 80 上的流量:

sudo ufw allow 'Nginx HTTP'

1

验证更改:

sudo ufw status

1

状态:active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Nginx HTTP                 ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

123456789

步骤 3 – 检查您的 Web 服务器

使用 systemd 初始化系统,通过输入以下命令来确保服务正在运行:

systemctl status nginx

1

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

12345678910

通过您的 IP 地址访问默认的 Nginx 登陆页面,以确认软件是否正常运行:

http://your_server_ip

1

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

!Nginx default page

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

在使用 Nginx Web 服务器时,您可以使用 server blocks(类似于 Apache 中的虚拟主机)来封装配置详细信息,并从单个服务器托管多个域。我们将设置一个名为 example.com 的域,但您应该用您自己的域名替换它。要了解如何使用 DigitalOcean 设置域名,请参阅我们的 DigitalOcean DNS 介绍。

使用 -p 标志创建 example.com 目录,以创建任何必要的父目录:

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

1

分配目录的所有权:

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

1

如果您尚未修改 umask 值,则您的 Web 根目录的权限应该是正确的,但您可以通过输入以下命令来确保:

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

1

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

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

1

在其中,添加以下示例 HTML:


<html>
    <head>
        <title>Welcome to Example.com!</title>
    </head>
    <body>
        <h1>Success!  The example.com server block is working!</h1>
    </body>
</html>

123456789

完成后保存并关闭文件。

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

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

1

粘贴以下配置块,根据我们的新目录和域名进行更新:


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;
        }
}

1234567891011121314

完成后保存并关闭文件。

通过创建从该文件到 sites-enabled 目录的链接来启用文件:

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

1

现在已启用并配置了两个服务器块,以响应基于它们的 listenserver_name 指令的请求:

example.com:将响应对 example.comwww.example.com 的请求。default:将响应端口 80 上不匹配其他两个块的任何请求。

为了避免由于添加额外服务器名可能导致的哈希桶内存问题,有必要调整 /etc/nginx/nginx.conf 文件中的单个值。打开文件:

sudo nano /etc/nginx/nginx.conf

1

找到 server_names_hash_bucket_size 指令,并删除 # 符号以取消注释该行:


...
http {
    ...
    server_names_hash_bucket_size 64;
    ...
}
...

12345678

检查语法错误:

sudo nginx -t

1

重新启动 Nginx 以启用更改:

sudo systemctl restart nginx

1

Nginx 现在应该正在为您的域名提供服务。您可以通过导航到 http://example.com 来测试,您应该会看到类似以下内容:

!Nginx first server block

结论

现在您已经安装了您的 Web 服务器,您有许多选项可用于提供内容的类型以及您想要使用的技术来创建更丰富的体验。

如果您想构建一个更完整的应用程序堆栈,请查看这篇关于如何在 Ubuntu 18.04 上配置 LEMP 堆栈的文章。

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...