Ubuntu上部署静态网站完整指南:Nginx/Apache配置实战 (2026)

>Ubuntu上部署静态网站完整指南:Nginx/Apache配置实战 (2026)

>前言

静态网站因其高性能、低资源消耗和高安全性,在现代Web开发中越来越受欢迎。无论是个人博客、项目文档还是产品落地页,掌握在Ubuntu服务器上部署静态网站的技能都至关重要。本文将详细介绍两种主流部署方案:Nginx和Apache,帮助你选择最适合的配置。

>环境准备

在开始部署之前,确保满足以下条件:

1. Ubuntu服务器:本文基于Ubuntu 22.04 LTS,其他版本操作类似
2. sudo权限:需要管理员权限安装软件包和修改配置
3. 域名(可选):如果需要通过域名访问,请提前解析到服务器IP
4. SSH访问:能够通过SSH连接到服务器

建议先更新系统软件包:

>sudo apt update && sudo apt upgrade -y

方法一:使用Nginx部署静态网站

Nginx以其高性能和低内存占用而闻名,是部署静态网站的首选方案。

>1. 安装Nginx

>sudo apt install nginx -y


安装完成后,Nginx会自动启动。可以通过 systemctl status nginx 检查运行状态。

>2. 配置网站目录

默认网站目录为 /var/www/html,建议为每个项目创建独立目录:

>sudo mkdir -p /var/www/example.com
sudo chown -R $USER:$USER /var/www/example.com
sudo chmod -R 755 /var/www/example.com


将你的静态文件(HTML、CSS、JS、图片等)上传到该目录。

>3. 创建Nginx配置文件

/etc/nginx/sites-available/ 下创建配置文件:

>sudo nano /etc/nginx/sites-available/example.com


添加以下配置:

>server {
listen 80;
listen [::]:80;

server_name example.com www.example.com;
root /var/www/example.com;
index index.html;

location / {
try_files $uri $uri/ =404;
}

# 缓存静态资源
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
}
}

4. 启用配置

>sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t # 测试配置
sudo systemctl restart nginx

方法二:使用Apache部署静态网站

Apache是另一个成熟稳定的Web服务器选择,配置更灵活。

>1. 安装Apache

>sudo apt install apache2 -y

2. 配置虚拟主机

创建配置文件:

>sudo nano /etc/apache2/sites-available/example.com.conf


内容如下:

>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com


Options Indexes FollowSymLinks
AllowOverride All
Require all granted

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

3. 启用站点

>sudo a2ensite example.com.conf
sudo a2dissite 000-default.conf # 禁用默认站点
sudo systemctl restart apache2

Nginx vs Apache:如何选择?

| 特性 | Nginx | Apache |
|------|-------|--------|
| 性能 | 更高,资源占用少 | 稍低,但功能丰富 |
| 配置复杂度 | 简单直观 | 灵活但较复杂 |
| 静态文件服务 | 优秀 | 良好 |
| 社区支持 | 活跃 | 非常成熟 |

建议:如果只部署静态网站,优先选择Nginx;如果需要复杂的.htaccess规则或特定Apache模块,选择Apache。

>域名解析与SSL配置

>域名解析

在域名注册商处添加A记录:

    >

  • @ 指向服务器IP
  • www 指向服务器IP
  • >配置SSL证书(Let's Encrypt)

    使用Certbot可以免费获取SSL证书:

    >

    Nginx

    sudo apt install certbot python3-certbot-nginx -y
    sudo certbot --nginx -d example.com -d www.example.com

    >Apache

    sudo apt install certbot python3-certbot-apache -y
    sudo certbot --apache -d example.com -d www.example.com


    证书会自动续期,无需手动操作。

    >性能优化建议

    1. 启用Gzip压缩

    Nginx配置中添加:

       gzip on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;


    2. 使用CDN加速

    配置Cloudflare等CDN服务,缓存静态资源,减轻服务器压力。

    3. 浏览器缓存

    通过配置适当的Cache-Control头部,让浏览器缓存静态资源。

    4. 监控与日志

    定期检查Nginx/Apache访问日志和错误日志,及时发现异常情况。

    >常见问题排查

    >1. 403 Forbidden错误

    原因:文件权限不正确

    解决

    sudo chown -R www-data:www-data /var/www/example.com
    sudo chmod -R 755 /var/www/example.com

    2. 网站无法访问

    检查步骤

  • 确认防火墙已开放80/443端口:sudo ufw allow 'Nginx Full'
  • 检查Nginx/Apache是否运行:systemctl status nginx
  • 查看错误日志:sudo tail -f /var/log/nginx/error.log
  • >3. 域名解析未生效

    使用dignslookup检查DNS解析:

    dig example.com +short


    DNS生效可能需要24-48小时,请耐心等待。

    >安全加固建议

    1. 隐藏服务器版本信息

    在Nginx配置中添加:

       server_tokens off;


    2. 配置防火墙

    仅开放必要端口:

       sudo ufw allow OpenSSH
    sudo ufw allow 'Nginx Full'
    sudo ufw enable


    3. 定期更新系统

       sudo apt update && sudo apt upgrade -y

    总结

    在Ubuntu上部署静态网站是一个相对简单的过程。本文介绍了Nginx和Apache两种主流方案,你可以根据需求选择。记住以下几点:

    1. 优先选择Nginx以获得更好的性能
    2. 务必配置SSL证书启用HTTPS
    3. 做好性能优化和安全加固
    4. 定期检查日志,及时发现问题

    通过本文的步骤,你应该能够成功在Ubuntu服务器上部署自己的静态网站。如果在实践中遇到问题,可以参考"常见问题排查"章节,或者查阅官方文档获取更多帮助。

    相关资源

  • [Nginx官方文档](https://nginx.org/en/docs/)
  • [Apache官方文档](https://httpd.apache.org/docs/)
  • [Let's Encrypt证书申请指南](https://letsencrypt.org/getting-started/)

希望本文对你有所帮助!如有疑问,欢迎在评论区留言讨论。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注