Skip to content

手把手带你从0搭建个人网站 ​

1. 环境准备 ​

安装 Nginx ​

在 Linux 系统 (以 Ubuntu 为例) 上安装 Nginx:

bash
sudo apt update
sudo apt install nginx -y

安装完成后,通过以下命令检查 Nginx 是否运行:

bash
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

可以通过访问 http://<服务器IP> 检查 Nginx 是否安装成功。成功的话,会看到默认的 Nginx 欢迎页面。

2. 准备网站文件 ​

将你的网站文件(HTML、CSS、JS 等)准备好,并存放在服务器的一个目录中,例如:

bash
/var/www/my_website

确保该目录及文件对 Nginx 有权限访问:

bash
sudo chown -R $USER:$USER /var/www/my_website
sudo chmod -R 755 /var/www/my_website

3. 配置 Nginx ​

创建 Nginx 配置文件 ​

Nginx 的配置文件存放在 /etc/nginx/sites-available/ 中。

创建一个新的站点配置文件,例如 my_website.conf:

bash
sudo nano /etc/nginx/sites-available/my_website

在文件中写入以下内容:

nginx
server {
    listen 80;
    server_name your-domain.com; # 修改为你的域名或者服务器的IP

    root /var/www/my_website;    # 网站文件的根目录
    index index.html;            # 默认加载的文件

    location / {
        try_files $uri $uri/ =404; # 如果文件不存在,返回404
    }
}
  • 将 your-domain.com 替换为你的域名或服务器 IP。
  • root 指定网站文件的实际路径。

启用站点配置 ​

创建一个软链接,把配置文件链接到 /etc/nginx/sites-enabled/:

bash
sudo ln -s /etc/nginx/sites-available/my_website /etc/nginx/sites-enabled/

检查配置文件语法 ​

确认没有语法错误:

bash
sudo nginx -t

如果通过测试,重启 Nginx:

bash
sudo systemctl reload nginx

4. 测试网站 ​

  • 打开浏览器,访问你的服务器 IP 或域名,例如:http://your-domain.com。
  • 你的网站应该能够正确加载。

5. 启用 HTTPS(可选,但推荐) ​

为了安全起见,可以为网站启用 HTTPS。最简单的方法是使用 Certbot 和 Let’s Encrypt 免费证书。

安装 Certbot ​

在 Ubuntu 上安装 Certbot 和 Nginx 插件:

bash
sudo apt install certbot python3-certbot-nginx -y

获取 SSL 证书 ​

运行以下命令以获取 SSL 证书并自动配置 Nginx:

bash
sudo certbot --nginx -d your-domain.com -d www.your-domain.com
  • -d your-domain.com 是你的主域名,-d www.your-domain.com 是子域名。

Certbot 将自动配置 Nginx 文件以支持 HTTPS。现在可以通过 https://your-domain.com 访问你的网站。

自动更新证书 ​

Let’s Encrypt 的证书有效期为 90 天,建议设置自动更新:

bash
sudo crontab -e

添加以下定时任务:

bash
0 0 * * * certbot renew --quiet

6. 常见问题排查 ​

  • Nginx 配置语法错误:运行 sudo nginx -t 检查语法。
  • 防火墙问题:确保端口 80 和 443 没有被防火墙阻止。
    bash
    sudo ufw allow 'Nginx Full'
    sudo ufw enable
  • 文件权限问题:确保 Nginx 有权限访问网站目录。