介绍
Nginx 是世界上最受欢迎的 Web 服务器之一,负责托管互联网上一些最大的和流量最高的网站,在大多数情况下比 Apache 更为资源友好,可以用作 Web 服务器或反向代理。
在本指南中,我们将讨论如何在 Ubuntu 16.04 服务器上安装 Nginx。
前提条件
在您开始本指南之前,您应该有一个常规的非根用户,在您的服务器上配置了sudo
权限,您可以通过遵循我们的 Ubuntu 16.04 初始服务器设置指南来学习如何配置常规用户帐户。
当你有一个帐户可用时,登录作为你的非根用户开始。
步骤1:安装 Nginx
Nginx在Ubuntu的默认存储库中可用,因此安装是相当直接的。
由于这是我们此次第一次与apt
包装系统进行交互,我们将更新本地的包装索引,以便我们可以访问最新的包装列表。
1sudo apt-get update
2sudo apt-get install nginx
接受此程序后,apt-get 将为您的服务器安装 Nginx 和任何所需的依赖。
步骤2:调整防火墙
在我们可以测试 Nginx 之前,我们需要重新配置我们的防火墙软件以允许访问该服务。 Nginx 在安装时将自己注册为ufw
,我们的防火墙。
我们可以列出ufw
知道如何通过键入来工作的应用程序配置:
1sudo ufw app list
您应该获得应用程序配置文件的列表:
1[secondary_label Output]
2Available applications:
3 Nginx Full
4 Nginx HTTP
5 Nginx HTTPS
6 OpenSSH
正如你所看到的, Nginx 有三种配置文件:
- Nginx Full :此配置文件打开端口 80(正常,未加密的网络流量)和端口 443(TLS/SSL加密的流量)
- Nginx HTTP :此配置文件只打开端口 80(正常,未加密的网络流量)
- Nginx HTTPS :此配置文件只打开端口 443 (TLS/SSL加密的流量)
建议您启用最限制的配置文件,仍然允许您配置的流量. 由于我们尚未为我们的服务器配置SSL,在本指南中,我们只需要允许端口80上的流量。
你可以通过键入来实现这一点:
1sudo ufw allow 'Nginx HTTP'
您可以通过键入检查更改:
1sudo ufw status
您应该在显示的输出中看到允许的 HTTP 流量:
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服务器
在安装过程结束时,Ubuntu 16.04 启动了 Nginx. 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 Mon 2016-04-18 16:14:00 EDT; 4min 2s ago
5 Main PID: 12857 (nginx)
6 CGroup: /system.slice/nginx.service
7 ├─12857 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
8 └─12858 nginx: worker process
正如您上面所看到的,该服务似乎已经成功启动,但是,测试这一点的最佳方法是实际上请求 Nginx 的页面。
您可以访问默认的 Nginx 定位页面,以确认该软件正在正常运行,您可以通过服务器的域名或 IP 地址访问。
如果您没有为您的服务器设置域名,您可以在这里学习 如何使用 DigitalOcean 设置域名。
如果你不想为你的服务器设置域名,你可以使用你的服务器的公共IP地址. 如果你不知道你的服务器的IP地址,你可以从命令行得到几种不同的方式。
尝试在您的服务器的命令提示书中输入以下内容:
1ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
你会得到回来的几行. 你可以尝试每个在你的网页浏览器,看看他们是否工作。
另一种选择是输入这个,该地址应该为您提供您从互联网上的另一个位置看到的公共IP地址:
1sudo apt-get install curl
2curl -4 icanhazip.com
当您有您的服务器的 IP 地址或域名时,请将其输入到浏览器的地址栏:
1http://server_domain_or_IP
您应该看到默认的 Nginx 定位页面,该页面应该看起来像这样:
此页面仅仅包含在 Nginx 中,以显示服务器是否正确运行。
步骤 4:管理 Nginx 流程
现在你有你的Web服务器并运行,我们可以通过一些基本的管理命令。
要停止您的 Web 服务器,您可以键入:
1sudo systemctl stop nginx
要在停止时启动 Web 服务器,键入:
1sudo systemctl start nginx
要停止,然后重新启动服务,键入:
1sudo systemctl restart nginx
如果你只是在进行配置更改, Nginx 通常可以重新加载而不会放弃连接。
1sudo systemctl reload nginx
默认情况下, Nginx 配置为在服务器启动时自动启动. 如果这不是你想要的,你可以通过键入来禁用此行为:
1sudo systemctl disable nginx
要重新启用服务在启动时启动,您可以键入:
1sudo systemctl enable nginx
步骤 5:熟悉重要的 Nginx 文件和目录
现在你知道如何管理服务本身,你应该花几分钟来熟悉一些重要的目录和文件。
内容
/var/www/html
:实际的网页内容,默认情况下仅由您之前看到的默认 Nginx 页面组成,从/var/www/html
目录中提供。
服务器配置
/etc/nginx
: Nginx 配置目录. 所有 Nginx 配置文件都位于此处./etc/nginx/nginx.conf
: 主要 Nginx 配置文件. 此处可以进行修改以对 Nginx 全球配置目录进行更改./etc/nginx/sites-available/
: 每个站点可存储服务器块
的目录. Nginx 不会使用本目录中发现的配置文件,除非它们链接到网站可用
目录(见下文)。 通常,所有服务器块配置都是在本目录中完成的,然后通过链接到其他目录启用。 */etc/ng
服务器日志
/var/log/nginx/access.log
:在这个日志文件中记录到您的 Web 服务器的每一个请求,除非 Nginx 已配置为另行。
结论
现在你已经安装了你的Web服务器,你有许多选择的内容类型来服务和你想要使用的技术来创建一个更丰富的体验。
如果您想构建一个更完整的应用程序堆栈,请参阅本文中的 如何在Ubuntu 16.04上配置LEMP堆栈。