如何在 Ubuntu 18.04 上安装 Nginx [快速入门]
介绍
Nginx 是世界上最流行的网络服务器之一,负责托管互联网上一些最大和最高流量的网站。在大多数情况下,它比 Apache 对资源更友好,可以用作 Web 服务器或反向代理。
在本指南中,我们将解释如何在 Ubuntu 18.04 服务器上安装 Nginx。本教程更详细的版本请参考How To Install Nginx on Ubuntu 18.04。
先决条件
在开始本指南之前,您应该具备以下条件:
- 一台 Ubuntu 18.04 服务器和一个具有 sudo 权限的普通非根用户。此外,您将需要启用基本防火墙以阻止非必要端口。您可以按照我们的 Ubuntu 18.04 初始服务器设置指南了解如何配置普通用户帐户和设置防火墙。
当您有一个可用帐户时,请以您的非根用户身份登录以开始。
第 1 步 – 安装 Nginx
因为 Nginx 在 Ubuntu 的默认存储库中可用,所以您可以使用 apt
打包系统安装它。
更新本地包索引:
- sudo apt update
安装 Nginx:
- sudo apt install nginx
第 2 步 – 调整防火墙
如果您遵循了先决条件服务器设置教程,那么您已经启用了 UFW 防火墙。使用以下命令检查可用的 ufw
应用程序配置文件:
- sudo ufw app list
OutputAvailable applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
让我们启用最严格的配置文件,它仍然允许您配置的流量,允许端口 80
上的流量:
- sudo ufw allow 'Nginx HTTP'
验证更改:
- sudo ufw status
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
第 3 步 – 检查您的 Web 服务器
通过键入以下内容检查 systemd
init 系统以确保服务正在运行:
- systemctl status nginx
Output● 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
通过您的IP地址访问默认的Nginx登陆页面,确认软件是否正常运行:
http://your_server_ip
您应该会看到默认的 Nginx 登录页面:

第 4 步 – 设置服务器块(推荐)
使用 Nginx 网络服务器时,您可以使用服务器块(类似于 Apache 中的虚拟主机)来封装配置详细信息,并从一台服务器托管多个域。我们将设置一个名为 Introduction to DigitalOcean DNS 的域。
为 example.com
创建目录,使用 -p
标志创建任何必要的父目录:
- sudo mkdir -p /var/www/example.com/html
分配目录的所有权:
- sudo chown -R $USER:$USER /var/www/example.com/html
如果您没有修改您的 umask
值,您的 web roots 的权限应该是正确的,但您可以通过键入以下内容来确保:
- sudo chmod -R 755 /var/www/example.com
使用 nano
或您喜欢的编辑器创建示例 index.html
页面:
- nano /var/www/example.com/html/index.html
在内部,添加以下示例 HTML:
<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h1>Success! The example.com server block is working!</h1>
</body>
</html>
完成后保存并关闭文件。
在 /etc/nginx/sites-available/example.com
创建一个新的服务器块:
- sudo nano /etc/nginx/sites-available/example.com
粘贴以下配置块,为我们的新目录和域名更新:
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;
}
}
完成后保存并关闭文件。
通过创建从文件到 sites-enabled
目录的链接来启用该文件:
- sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
现在启用并配置了两个服务器块,以响应基于它们的 listen
和 server_name
指令的请求:
example.com
:将响应对example.com
和www.example.com
的请求。default
:将响应端口80
上与其他两个块不匹配的任何请求。
为避免因添加额外的服务器名称而可能出现的哈希桶内存问题,有必要调整 /etc/nginx/nginx.conf
文件中的单个值。打开文件:
- sudo nano /etc/nginx/nginx.conf
找到 server_names_hash_bucket_size
指令并删除 #
符号以取消注释该行:
...
http {
...
server_names_hash_bucket_size 64;
...
}
...
测试语法错误:
- sudo nginx -t
重新启动 Nginx 以启用您的更改:
- sudo systemctl restart nginx
Nginx 现在应该为您的域名提供服务。您可以通过导航到 http://example.com
来测试它,您应该会在其中看到如下内容:

结论
现在您已经安装了 Web 服务器,对于要提供的内容类型以及要用于创建更丰富体验的技术,您有很多选择。
如果您想构建更完整的应用程序堆栈,请查看这篇关于如何在 Ubuntu 18.04 上配置 LEMP 堆栈的文章。