一步步:Ubuntu Nginx 安装教程
Nginx(发音为 “engine-x”)是一款高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。因其稳定、功能丰富、配置简单以及资源消耗低等特点,Nginx 在Web服务器领域占据了重要地位,尤其适合高并发场景。本教程将详细介绍如何在 Ubuntu 系统上一步步安装和配置 Nginx。
步骤一:更新系统软件包列表
在安装任何新软件之前,始终建议更新您的系统软件包列表,以确保您获取到最新版本的软件和依赖项。打开终端并执行以下命令:
bash
sudo apt update
sudo apt upgrade -y
sudo apt update 会从配置的源中下载最新的包信息。
sudo apt upgrade -y 会将所有已安装的软件包升级到最新版本,-y 选项会自动确认所有提示。
步骤二:安装 Nginx
更新完成后,您可以直接从 Ubuntu 的默认仓库安装 Nginx。执行以下命令:
bash
sudo apt install nginx -y
这个命令会下载并安装 Nginx 及其所有必要的依赖项。
步骤三:验证 Nginx 安装和运行状态
安装完成后,Nginx 服务应该会自动启动。您可以通过以下命令检查 Nginx 的运行状态:
bash
systemctl status nginx
如果 Nginx 正在正常运行,您会看到类似“active (running)”的状态信息。
同时,您也可以通过访问服务器的公共 IP 地址或域名来验证 Nginx 是否正常工作。在您的Web浏览器中输入 http://您的服务器IP地址 或 http://您的域名。如果一切正常,您应该会看到 Nginx 的默认欢迎页面,内容通常是“Welcome to nginx!”。
如何查找服务器IP地址?
如果您不确定服务器的公共IP地址,可以在终端中运行以下命令:
“`bash
curl -4 icanhazip.com
或
ip a | grep -oP ‘inet \K[\d.]+’ | head -n 1
“`
步骤四:配置防火墙 (UFW)
如果您在 Ubuntu 上启用了 UFW (Uncomplicated Firewall),您需要允许 HTTP 和 HTTPS 流量通过防火墙。Nginx 在安装时会自动注册为 UFW 服务。
首先,检查 UFW 的状态:
bash
sudo ufw status
如果 UFW 处于活动状态 (Status: active),您需要允许 Nginx 的流量。Nginx 提供了几个配置文件,可用于 UFW:
- Nginx Full: 此配置文件同时打开端口 80 (HTTP) 和 443 (HTTPS)。
- Nginx HTTP: 此配置文件仅打开端口 80 (HTTP)。
- Nginx HTTPS: 此配置文件仅打开端口 443 (HTTPS)。
对于大多数情况,您会希望允许完整的 HTTP 和 HTTPS 流量:
bash
sudo ufw allow 'Nginx Full'
然后,重新检查 UFW 状态以确认规则已添加:
bash
sudo ufw status
您应该能看到 Nginx Full 或 Nginx HTTP (如果您只允许 HTTP) 的规则已添加到允许列表中。
步骤五:管理 Nginx 服务
以下是一些常用的 Nginx 服务管理命令:
- 启动 Nginx 服务:
bash
sudo systemctl start nginx - 停止 Nginx 服务:
bash
sudo systemctl stop nginx - 重启 Nginx 服务 (平滑重启,不中断连接):
bash
sudo systemctl reload nginx
此命令会重新加载 Nginx 配置文件,而不会中断正在处理的连接。 - 重新启动 Nginx 服务 (强制重启,会中断连接):
bash
sudo systemctl restart nginx - 禁用 Nginx 服务 (开机不自启):
bash
sudo systemctl disable nginx - 启用 Nginx 服务 (开机自启):
bash
sudo systemctl enable nginx
步骤六:Nginx 配置文件结构
Nginx 的主要配置文件位于 /etc/nginx/ 目录下。了解其结构对于后续配置虚拟主机和自定义设置至关重要:
/etc/nginx/nginx.conf: Nginx 的主配置文件,包含全局设置。通常您不需要直接修改太多内容,除非是调整 worker 进程数或事件模型。/etc/nginx/sites-available/: 这个目录存放所有可用的虚拟主机(Server Blocks)配置文件。您可以创建多个文件来定义不同的网站或应用程序。/etc/nginx/sites-enabled/: 这个目录包含指向sites-available目录中配置文件的符号链接。只有在这个目录中的配置文件才会被 Nginx 加载和使用。/etc/nginx/snippets/: 这个目录通常用于存放可重用的配置片段,例如 SSL 设置、fastcgi 参数等。/var/www/html: 这是 Nginx 默认的 Web 根目录,您可以在这里放置您的网站文件。
步骤七:配置您的第一个网站 (虚拟主机)
Nginx 使用“虚拟主机”(在 Nginx 中称为 server block)来管理多个网站。我们将创建一个新的配置文件。
-
创建新的网站配置文件:
例如,为example.com创建一个配置文件。bash
sudo nano /etc/nginx/sites-available/example.com
将以下内容粘贴到文件中,并根据您的实际情况进行修改:“`nginx
server {
listen 80;
listen [::]:80;root /var/www/example.com/html; # 网站文件存放的根目录 index index.html index.htm index.nginx-debian.html; server_name example.com www.example.com; # 您的域名 location / { try_files $uri $uri/ =404; } # 可选:如果你有错误页面 # error_page 404 /404.html; # location = /404.html { # internal; # } # 可选:如果你有自定义访问日志和错误日志 # access_log /var/log/nginx/example.com_access.log; # error_log /var/log/nginx/example.com_error.log warn;}
“`
保存并关闭文件 (Ctrl+X, Y, Enter)。 -
创建网站根目录并放置一个测试页面:
bash
sudo mkdir -p /var/www/example.com/html
echo "<h1>Welcome to example.com!</h1>" | sudo tee /var/www/example.com/html/index.html
给 Nginx 用户设置正确的权限:bash
sudo chown -R www-data:www-data /var/www/example.com
sudo chmod -R 755 /var/www/example.com -
激活虚拟主机:
通过创建符号链接,将sites-available中的配置文件链接到sites-enabled目录。bash
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ -
删除默认虚拟主机 (可选,但推荐):
为了避免冲突,建议禁用并删除 Nginx 的默认虚拟主机配置,特别是当您有多个网站时。bash
sudo rm /etc/nginx/sites-enabled/default -
测试 Nginx 配置:
在重新加载 Nginx 之前,最好测试一下配置文件是否有语法错误。bash
sudo nginx -t
如果显示syntax is ok和test is successful,则表示配置无误。 -
重新加载 Nginx 服务:
bash
sudo systemctl reload nginx
现在,在您的浏览器中访问 http://example.com (或者如果您没有配置域名解析,暂时使用服务器IP地址),您应该能看到“Welcome to example.com!”的页面。
总结
至此,您已经成功在 Ubuntu 系统上安装并配置了 Nginx 服务器,并部署了您的第一个网站。Nginx 功能强大且灵活,您可以根据需要进一步探索其高级特性,例如配置 SSL/TLS 证书(HTTPS)、反向代理、负载均衡等,以满足更复杂的Web服务需求。