5分钟快速搭建Nginx静态网站教程

孔庆轩

1. 从零开始:5分钟快速搭建Nginx静态网站

作为一个运维老手,我经常需要快速搭建测试环境或演示页面。Nginx作为轻量级高性能的Web服务器,绝对是静态网站部署的首选工具。今天我就来分享一个经过实战验证的极简配置方案,即使你是刚接触服务器的新手,也能在5分钟内完成从安装到访问的全流程。

这个方案适用于个人博客、项目演示页、产品介绍等静态内容场景。我们将使用最基础的HTML页面作为示例,但实际你可以替换成任何静态网站文件(包括CSS/JS/图片等资源)。整个过程不需要复杂的配置,也不需要额外的编程知识,只需要跟着步骤操作即可。

提示:本文以CentOS和Ubuntu两大主流Linux发行版为例,其他系统可参考类似步骤。所有命令都经过实测验证,确保可执行性。

2. 环境准备与Nginx安装

2.1 系统要求检查

在开始之前,请确保你的服务器满足以下基本条件:

  • 已安装CentOS 7/8或Ubuntu 18.04/20.04等主流Linux发行版
  • 具有root权限或sudo权限的账户
  • 能够正常访问互联网(用于软件包下载)
  • 防火墙已开放80端口(HTTP默认端口)

可以通过以下命令检查网络连通性和用户权限:

bash复制# 检查网络连通性
ping -c 4 baidu.com

# 检查用户权限
sudo -v

2.2 Nginx安装步骤详解

根据不同的Linux发行版,Nginx的安装方式略有差异。下面分别介绍CentOS和Ubuntu系统下的安装方法。

对于CentOS/RHEL系统:

bash复制# 安装EPEL源(提供Nginx官方软件包)
sudo yum install -y epel-release

# 更新软件包缓存
sudo yum makecache

# 安装Nginx
sudo yum install -y nginx

# 设置开机自启
sudo systemctl enable nginx

注意:CentOS 8默认使用dnf包管理器,但yum命令仍然可用。如果你使用的是CentOS 8,也可以将上述命令中的yum替换为dnf。

对于Ubuntu/Debian系统:

bash复制# 更新软件包列表
sudo apt update

# 安装Nginx
sudo apt install -y nginx

# 设置开机自启
sudo systemctl enable nginx

安装完成后,可以通过以下命令验证Nginx是否安装成功:

bash复制nginx -v

正常情况下会显示安装的Nginx版本号,如nginx version: nginx/1.18.0

3. 创建并配置静态网页

3.1 了解Nginx默认目录结构

在部署网页前,我们需要了解Nginx的几个关键目录:

  • /usr/share/nginx/html:默认的网页根目录
  • /etc/nginx/nginx.conf:主配置文件
  • /etc/nginx/conf.d/:额外的配置文件目录
  • /var/log/nginx/:日志文件目录

我们的静态网页文件需要放置在html目录下。可以通过以下命令查看默认目录内容:

bash复制ls -l /usr/share/nginx/html

通常你会看到一个index.html文件,这是Nginx默认的欢迎页面。

3.2 创建自定义HTML页面

让我们创建一个简单的自定义页面来替换默认内容。使用vim或nano编辑器创建一个新的index.html文件:

bash复制sudo vim /usr/share/nginx/html/index.html

将以下内容粘贴到文件中(这是一个包含基本样式的HTML5模板):

html复制<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>我的第一个Nginx网站</title>
    <style>
        body {
            font-family: 'Arial', sans-serif;
            line-height: 1.6;
            margin: 0;
            padding: 0;
            background-color: #f5f5f5;
            color: #333;
        }
        .container {
            max-width: 800px;
            margin: 50px auto;
            padding: 20px;
            background: #fff;
            box-shadow: 0 0 10px rgba(0,0,0,0.1);
            border-radius: 5px;
        }
        h1 {
            color: #2c3e50;
            border-bottom: 2px solid #3498db;
            padding-bottom: 10px;
        }
        .server-info {
            background: #f8f9fa;
            padding: 15px;
            border-left: 4px solid #3498db;
            margin: 20px 0;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>恭喜!你的Nginx服务器已成功运行</h1>
        <p>这是一个通过Nginx服务的简单静态网页示例。</p>
        
        <div class="server-info">
            <h3>服务器信息</h3>
            <p>服务器时间: <span id="datetime"></span></p>
            <p>客户端IP: <span id="clientip"></span></p>
        </div>

        <p>你可以开始在这个目录(/usr/share/nginx/html)下添加自己的网页文件了。</p>
    </div>

    <script>
        // 显示当前日期时间
        document.getElementById('datetime').textContent = new Date().toLocaleString();
        
        // 获取客户端IP(需要后端支持,这里仅作演示)
        fetch('https://api.ipify.org?format=json')
            .then(response => response.json())
            .then(data => {
                document.getElementById('clientip').textContent = data.ip;
            })
            .catch(() => {
                document.getElementById('clientip').textContent = '无法获取';
            });
    </script>
</body>
</html>

这个模板包含了基本的HTML结构、CSS样式和一些简单的JavaScript功能,可以显示服务器时间和客户端IP(需要联网)。

提示:如果你不需要这些动态效果,可以删除