在当今互联网高速发展的时代,网站早已不仅是信息展示的窗口,更是企业品牌形象、服务交付和个人创作表达的重要载体,无论是搭建一个简洁的个人博客,还是部署复杂的高并发应用平台,选择一款稳定、高效且安全的 Web 服务器都至关重要。
Nginx(发音为“engine-x”)作为全球最受欢迎的开源 Web 服务器之一,凭借其卓越的高并发处理能力、低资源消耗以及高度灵活的配置机制,已成为无数开发者与运维工程师的首选工具,据统计,目前全球超过 40% 的活跃网站都在使用 Nginx,其中包括 Netflix、GitHub、WordPress.com 等世界级平台。
本文将带你从零开始,手把手完成基于 Nginx 的网站部署全过程,无论你是初学者,还是已有一定 Linux 和网络基础的技术人员,都能通过本教程掌握 Nginx 的核心原理与实战技能,最终成功上线一个可通过浏览器访问的完整网站系统。
Nginx 是由俄罗斯程序员 Igor Sysoev 于 2004 年开发的一款轻量级、高性能的 HTTP 和反向代理服务器,它的诞生初衷是为了解决著名的 C10K 问题——即如何在一个服务器上同时处理上万个并发连接,传统 Apache 模型在面对大量连接时容易因进程或线程开销过大而性能下降,而 Nginx 则采用了 事件驱动架构(Event-Driven Architecture) 和异步非阻塞 I/O 模型,在极低内存占用的情况下实现了极高的并发处理能力。
除了作为静态资源服务器,Nginx 还广泛应用于以下场景:
正是由于其出色的性能表现和模块化设计,Nginx 不仅被用作独立的 Web 服务器,也常作为现代微服务架构中的“流量入口”,承担网关和边缘代理的角色。
在正式安装与配置之前,我们需要先准备好基本运行环境。
推荐使用 Linux 发行版,Ubuntu 和 CentOS 因其稳定性与社区支持广受青睐,本文将以 Ubuntu 22.04 LTS(长期支持版本) 为例进行演示,适用于大多数云主机和服务部署场景。
💡 提示:LTS 版本提供长达五年的安全更新支持,更适合生产环境。
| 类型 | 推荐配置 |
|---|---|
| 最低配置 | 1 核 CPU、1GB 内存、10GB 硬盘空间 |
| 建议配置 | 2 核 CPU、2GB+ 内存,适合生产环境 |
对于小型站点或学习用途,最低配置即可满足需求;若计划承载较高流量或集成数据库等组件,则建议提升资源配置。
如果你希望网站能被外部网络访问,需具备以下条件:
🔒 注意:本地测试阶段可以不购买域名,通过修改
hosts文件模拟域名访问。
为了便于后续操作,请先更新系统源并安装常用工具:
sudo apt update sudo apt install curl wget vim net-tools gnupg lsb-release -y
这些工具分别用于:
curl / wget:下载文件vim:文本编辑器net-tools:查看网络状态(如 netstat)gnupg, lsb-release:辅助软件包管理在 Ubuntu 系统中,Nginx 已收录于官方仓库,安装极为简便:
sudo apt install nginx -y
安装完成后,启动服务并设置开机自启:
sudo systemctl start nginx sudo systemctl enable nginx
验证服务状态是否正常运行:
sudo systemctl status nginx
如果输出中包含 active (running),说明 Nginx 已成功启动。
此时打开浏览器,输入服务器的 公网 IP 或本地 IP,
http://your-server-ip
若能看到 “Welcome to nginx!” 的默认欢迎页面,则表示 Nginx 安装成功!
熟悉 Nginx 的文件组织结构有助于后期维护与故障排查,以下是主要路径及其作用:
| 路径 | 说明 |
|---|---|
/etc/nginx/ |
配置文件主目录 |
├── nginx.conf |
全局主配置文件,定义全局参数 |
├── sites-available/ |
存放所有站点的配置文件(未启用) |
├── sites-enabled/ |
启用的站点配置,通常通过软链接指向 sites-available |
/var/www/html/ |
默认网站根目录 |
/var/log/nginx/ |
日志存储目录,含 access.log(访问日志)和 error.log(错误日志) |
/usr/sbin/nginx |
Nginx 执行程序路径 |
⚠️ 注意:修改任何配置后必须重新加载才能生效。
接下来我们将创建一个名为 mywebsite.com 的简单静态网站,体验完整的部署流程。
sudo mkdir -p /var/www/mywebsite.com/html sudo mkdir -p /var/www/mywebsite.com/logs
这里我们分别为网页内容和日志建立了独立目录,便于管理和权限控制。
使用 Vim 编辑器创建首页文件:
sudo vim /var/www/mywebsite.com/html/index.html
填入如下 HTML 内容:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">我的 Nginx 网站</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
margin-top: 100px;
background-color: #f4f4f4;
color: #333;
}
h1 {
color: #007cba;
}
</style>
</head>
<body>
<h1>🎉 恭喜!你的 Nginx 网站已成功上线!</h1>
<p>这是一个由 Nginx 驱动的静态网站示例。</p>
<p>当前时间:<span id="time"></span></p>
<script>
document.getElementById("time").textContent = new Date().toLocaleString();
</script>
</body>
</html>
✅ 改进点:相比原版,增加了样式美化与动态时间显示,增强用户体验感。
保存并退出(wq)。
确保 Nginx 进程所属用户(通常是 www-data)对网站目录具有读取权限:
sudo chown -R www-data:www-data /var/www/mywebsite.com/html sudo chmod -R 755 /var/www/mywebsite.com
Nginx 支持 虚拟主机(Virtual Host) 技术,允许单台服务器托管多个独立域名网站,极大提升了资源利用率。
sudo vim /etc/nginx/sites-available/mywebsite.com
写入以下 server 块配置:
server {
listen 80;
server_name mywebsite.com www.mywebsite.com;
root /var/www/mywebsite.com/html;
index index.html index.htm;
access_log /var/www/mywebsite.com/logs/access.log;
error_log /var/www/mywebsite.com/logs/error.log;
location / {
try_files $uri $uri/ =404;
}
#