如何在 Ubuntu 20.04 上安装和配置 Nginx?
Nginx 是一款流行的开源 Web 服务器软件,可用作反向代理、负载均衡器、HTTP 缓存等。它以速度和可扩展性著称,广泛用于为高流量网站提供 Web 内容服务。
如果您正在运行 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。
步骤 3:配置 Nginx
Nginx 安装完成后,您可以开始配置它来提供您的网站内容。默认情况下,Nginx 将提供位于 /var/www/html 目录中的内容。您可以通过在 Web 浏览器中访问服务器的 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 替换为您的网站内容的实际位置。
创建配置文件后,您需要创建一个符号链接来启用它。您可以通过运行以下命令来完成此操作:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
最后,您可以通过运行以下命令来测试您的配置并重启 Nginx:
sudo nginx -t
sudo systemctl restart 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。location 块会将请求代理到 backend 组,从而将流量分配到这两台服务器上。
以上只是 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 来提供网站内容并测试了配置。最后,我们使用 Let's Encrypt 为网站启用了 SSL/TLS 加密。
请记住,这只是一个基本配置,您可以使用许多其他选项和模块来根据您的特定需求自定义 Nginx。您可以阅读官方文档或加入 Nginx 社区论坛来了解更多关于 Nginx 的信息。
总而言之,Nginx 是一款功能强大且用途广泛的 Web 服务器软件,可以处理各种 Web 应用程序和流量负载。按照这些步骤,您就可以在 Ubuntu 20.04 服务器上开始使用 Nginx,并开始向全世界提供您的网站内容。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

