如何在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后,您可以开始配置它来提供您的Web内容。默认情况下,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替换为您Web内容的路径。

创建配置文件后,您需要创建一个符号链接来启用它。您可以通过运行以下命令来实现:

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(Uncomplicated Firewall)。

要允许流量访问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内容。

更新于:2023年5月12日

2K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.