如何在 Ubuntu 20.04 上安装和配置 Nginx?
Nginx 是一款流行的开源 Web 服务器软件,可以用作反向代理、负载均衡器、HTTP 缓存等。它以其速度和可扩展性而闻名,并被广泛用于为高流量网站提供网络内容。
如果您运行的是 Ubuntu 20.04 服务器并希望使用 Nginx 作为 Web 服务器,本指南将引导您完成安装和基本配置过程。
第1步:更新系统
在开始之前,最好更新系统以确保所有软件包都是最新的。您可以通过运行以下命令来做到这一点 -
sudo apt update && sudo apt upgrade -y
这将更新软件包列表并安装任何可用的更新。
第2步:安装Nginx
现在系统已是最新的,您可以继续安装 Nginx。您可以通过运行以下命令来做到这一点 -
sudo apt install nginx -y
这将在您的 Ubuntu 20.04 服务器上安装最新版本的 Nginx。
第三步:配置Nginx
安装 Nginx 后,您就可以开始配置它来为您的 Web 内容提供服务。默认情况下,Nginx 将提供位于 /var/www/html 目录中的内容。您可以通过在网络浏览器中访问服务器的 IP 地址来测试 Nginx 是否正常工作。
要配置 Nginx 来提供您自己的内容,您需要在 /etc/nginx/sites-available 目录中创建一个新的配置文件。您可以通过使用您喜欢的文本编辑器(例如 nano 或 vim)创建新文件来完成此操作。
sudo nano /etc/nginx/sites-available/example.com
在此文件中,您可以定义服务器块,其中包含网站的配置。这是基本服务器块的示例 -
server {
listen 80;
server_name example.com;
root /var/www/example.com;
index index.html;
}
此配置将服务器设置为侦听端口 80,并提供 /var/www/example.com 目录中的内容。您可以将 example.com 替换为您自己的域名,并将 /var/www/example.com 替换为您的 Web 内容的位置。
创建配置文件后,您需要创建一个符号链接来启用它。您可以通过运行以下命令来做到这一点 -
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
最后,您可以通过运行以下命令来测试您的配置并重新启动 Nginx -
sudo nginx -t
sudo systemctl 重新启动 nginx
如果没有错误,您的网站现在应该已上线,并且可以通过您的域名进行访问。
步骤 4:配置 SSL/TLS
如果您要提供敏感信息或接受用户数据,那么使用 SSL/TLS 加密来保护您的网站非常重要。您可以通过获取 SSL/TLS 证书并配置 Nginx 使用它来完成此操作。
获取 SSL/TLS 证书的一种流行方法是通过免费开放的证书颁发机构 Let’s Encrypt。您可以通过运行以下命令在服务器上安装 Let’s Encrypt 客户端 -
sudo apt install certbot python3-certbot-nginx -y
安装 Let’s Encrypt 客户端后,您可以通过运行以下命令来获取您的域的证书 -
sudo certbot --nginx -d example.com
这将运行 Let’s Encrypt 客户端并配置 Nginx 以使用新获得的 SSL/TLS 证书。
以下是在 Ubuntu 20.04 上使用 Nginx 时您可能需要考虑的一些更高级的配置选项 -
自定义服务器块
在上一节中,我们创建了一个简单的服务器块,用于提供来自特定目录的内容。但是,您可能有多个域或子域需要从同一服务器提供服务。为此,您可以创建额外的服务器块来定义每个域或子域的配置。
例如,假设您有两个域:example.com 和 example.org。您可以创建两个服务器块,每个域一个,并将它们放在 /etc/nginx/sites-available 目录中。然后,您可以通过在 /etc/nginx/sites-enabled 目录中创建符号链接来启用每个服务器块。
sudo nano /etc/nginx/sites-available/example.com
server {
listen 80;
server_name example.com;
root /var/www/example.com;
index index.html;
}
sudo nano /etc/nginx/sites-available/example.org
server {
listen 80;
server_name example.org;
root /var/www/example.org;
index index.html;
}
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/example.org /etc/nginx/sites-enabled/
启用缓存
Nginx 还可以用作缓存服务器来提高网站的性能。通过缓存经常访问的内容,Nginx 可以减少 Web 服务器上的负载并缩短访问者的响应时间。
要启用缓存,您可以将以下配置添加到您的服务器块 -
server {
listen 80;
server_name example.com;
root /var/www/example.com;
index index.html;
# Enable caching
location / {
proxy_cache_valid 200 60m;
proxy_cache_bypass $http_pragma;
proxy_cache_revalidate on;
proxy_cache_min_uses 3;
proxy_cache_use_stale error timeout invalid_header http_502;
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
proxy_cache_key "$scheme$request_method$host$request_uri";
proxy_cache_lock on;
proxy_cache_methods GET HEAD POST;
add_header X-Cache-Status $upstream_cache_status;
}
}
此配置启用所有请求的缓存并将缓存过期时间设置为 60 分钟。您可以调整缓存设置以满足您网站的需求。
负载均衡
如果您有多个 Web 服务器,则可以使用 Nginx 作为负载均衡器来跨服务器分配传入流量。这可以提高网站的可扩展性和可靠性。
要启用负载平衡,您可以将以下配置添加到您的服务器块 -
server {
listen 80;
server_name example.com;
root /var/www/example.com;
index index.html;
# Enable load balancing
upstream backend {
server backend1.example.com;
server backend2.example.com;
}
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
此配置定义了一个名为“backend”的上游组,其中包括两个服务器:backend1.example.com 和 backend2.example.com。然后,位置块将请求代理到后端组,在两台服务器之间分配流量。
这些只是 Nginx 可用的高级配置选项的几个示例。通过探索官方文档和社区论坛,您可以发现更多根据您的特定需求定制和优化 Nginx 的方法。
防火墙配置
与任何服务器一样,确保您的 Ubuntu 20.04 服务器受到防火墙保护非常重要。默认情况下,Ubuntu 20.04 预装了 UFW(简单防火墙)。
要允许流向 Nginx,您可以向 UFW 添加规则以允许端口 80 上的 HTTP 流量 -
sudo ufw allow 80/tcp
如果您使用 SSL/TLS 加密,您还可以添加规则以允许端口 443 上的 HTTPS 流量 -
sudo ufw allow 443/tcp
有了这些规则,您的 Ubuntu 20.04 服务器就应该通过 UFW 得到正确的保护。
监控和记录
监控 Nginx 服务器的性能和可用性以确保其平稳运行非常重要。您可以使用各种工具和服务来监控您的服务器,包括 -
Nginx Amplify - 专为 Nginx 设计的监控和管理工具。它为您的 Nginx 服务器提供实时性能指标和警报。
Netdata - 一种实时监控和故障排除工具,可提供服务器(包括 Nginx)各个方面的详细指标。
Prometheus - 一种流行的开源监控解决方案,可用于监控 Nginx 以及其他应用程序和系统。
除了监控之外,跟踪 Nginx 生成的访问和错误日志也很重要。这些日志可以提供有关您网站行为的宝贵见解,并可以帮助您解决问题。
默认情况下,Nginx 日志存储在 /var/log/nginx 目录中。您可以通过运行以下命令查看访问日志 -
sudo tail -f /var/log/nginx/access.log
您可以通过运行以下命令查看错误日志 -
sudo tail -f /var/log/nginx/error.log
结论
在本指南中,我们介绍了在 Ubuntu 20.04 服务器上安装和配置 Nginx 的过程。我们首先更新系统并安装 Nginx。然后,我们配置 Nginx 来提供我们的 Web 内容并测试配置。最后,我们使用 Let’s Encrypt 通过 SSL/TLS 加密来保护我们的网站。
请记住,这只是一个基本配置,您可以使用许多附加选项和模块来根据您的特定需求自定义 Nginx。您可以通过阅读官方文档或加入 Nginx 社区论坛来了解有关 Nginx 的更多信息。
总体而言,Nginx 是一款功能强大且多功能的 Web 服务器软件,可以处理各种 Web 应用程序和流量负载。通过执行以下步骤,您可以开始在 Ubuntu 20.04 服务器上使用 Nginx 并开始向世界提供您的 Web 内容。