>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. 域名解析未生效
使用dig或nslookup检查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/)
希望本文对你有所帮助!如有疑问,欢迎在评论区留言讨论。