已编辑 5 几天前 通过 ExtremeHow 编辑团队
Nginx乌班图服务器Linux网络服务器安装配置操作系统系统设置
翻译更新 5 几天前
欢迎阅读本指南,了解如何在Ubuntu服务器上安装和配置Nginx。在这篇详细的文章中,我们将逐步进行说明,从安装到配置,包括可以根据您的需要进行调整的各种模块和设置。Nginx以其高性能、稳定性、丰富的功能集、简单的配置和低资源消耗而闻名,使其成为Web服务器的热门选择。让我们深入探讨在Ubuntu系统上运行Nginx的步骤。
Nginx(发音为“engine x”)是一款高性能的HTTP服务器和反向代理服务器,也是一个IMAP/POP3代理服务器。它被设计用于处理大量并发连接,这意味着它在提供静态内容和负载平衡功能方面非常高效。Nginx是开源软件,这意味着可以免费使用、修改和分发。
在安装Nginx之前,您必须拥有运行Ubuntu的服务器。本指南假定以下内容:
确保您的服务器已更新到最新的软件包,为此,请执行以下操作:sudo apt update && sudo apt upgrade
。
要安装Nginx,您的包管理器必须是最新的。您将使用apt
,这是Ubuntu的默认包管理器。按以下步骤操作:
sudo apt update sudo apt install nginx
第一条命令更新包列表。第二条命令安装Nginx。安装后,Nginx会自动启动。要验证Nginx是否正在运行,可以使用命令:systemctl status nginx
。如果服务处于活动状态并正在运行,您应该能看到指示该状态的输出。
默认情况下,Nginx会注册到ufw
,这是一个防火墙配置工具。使用ufw
可以管理哪些HTTP和HTTPS端口是开放的。运行:
sudo ufw app list
您应该能看到列出的Nginx配置文件。授予Nginx Full
权限,如下所示:
sudo ufw allow 'Nginx Full'
然后,通过检查防火墙状态:sudo ufw status
来验证更改,以确保允许必需端口上的流量。
现在Nginx正在运行并且防火墙已调整,您可以查看Web服务器的默认页面。打开Web浏览器并导航到服务器的公共IP地址。如果Nginx设置正确,您应该能看到“欢迎使用Nginx!”页面。要查找服务器的公共IP,您可以使用:
curl -4 icanhazip.com
熟悉Nginx安装的目录结构非常重要,主要在/etc/nginx
中。主要的目录和文件包括:
nginx.conf
:主配置文件。sites-available
:存储所有服务器块配置的地方。sites-enabled
:包含启用sites-available
中文件的符号链接的目录。配置更改通常应在nginx.conf
中进行或通过在sites-available
中创建新文件来实现。
nginx.conf
文件是Nginx的主配置文件。简单任务可以直接编辑它,但对于与托管站点相关的特定更改,应使用服务器块文件。让我们为名为example.com
的域创建一个新的服务器块文件。在/etc/nginx/sites-available/
内部:
sudo nano /etc/nginx/sites-available/example.com
添加以下配置:
server { listen 80; 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/
要检查您是否正确配置:
sudo nginx -t
如果成功,重新加载Nginx:
sudo systemctl reload nginx
此示例仅从目录中提供静态文件,假定它们位于Nginx默认根目录下的/var/www/html
中。
服务器块允许您在单个服务器上托管多个域。每个域的配置文件必须在sites-available
中,符号链接在sites-enabled
中。服务器块示例:
server { listen 80; server_name example.com www.example.com; root /var/www/example.com/html; index index.html index.htm index.nginx-debian.html; location / { try_files $uri $uri/ =404; } }
创建目录结构:
sudo mkdir -p /var/www/example.com/html
指定权限并创建示例HTML页面:
sudo chown -R $USER:$USER /var/www/example.com/html sudo chmod -R 755 /var/www/example.com echo '<h1>Hello World!</h1>' > /var/www/example.com/html/index.html
记得创建符号链接并测试配置,然后重新加载Nginx。
要保护服务器的进出流量,实现SSL/TLS是重要的。Let's Encrypt提供免费的SSL证书。首先安装Certbot,Let's Encrypt的客户端:
sudo apt install certbot python3-certbot-nginx
Certbot可以自动为Nginx配置SSL;运行:
sudo certbot --nginx -d example.com -d www.example.com
在此过程中,需要提供电子邮件地址并同意服务条款。Certbot将处理您的Nginx配置的修改以通过HTTPS提供内容。
Let's Encrypt证书每90天到期。设置cron job来自动更新证书。打开crontab:
sudo crontab -e
添加:
0 3 * * * /usr/bin/certbot renew --quiet
这将在每天凌晨3点运行更新命令。
对于高流量站点,性能调优非常重要。某些调优策略:
/etc/nginx/nginx.conf
中增加:通过设置worker_processes auto;
和worker_connections 1024;
。gzip on;
考虑使用New Relic或Datadog等工具来监控Nginx性能。
恭喜,您已在Ubuntu上安装并配置了Nginx!您学习了如何提供多个域,使用SSL保护您的站点,并优化配置以提高性能。由于Nginx的选项和模块非常丰富,进一步探索其文档可以为您提供许多高级且有趣的功能。继续尝试,您将很快管理一个高度优化的Web服务器。
如果你发现文章内容有误, 您可以