我来详细讲解如何在云主机上部署静态网站,从基础到进阶的完整流程:
一、基础准备工作
推荐配置(静态网站足够): - CPU:1核 - 内存:1-2GB - 系统盘:40GB - 系统:Ubuntu 20.04/22.04 或 CentOS 7/8
使用SSH连接 ssh root@你的服务器IP 首次登录后建议创建普通用户 adduser yourname usermod -aG sudo yourname
二、安装Web服务器(Nginx为例)
Ubuntu/Debian sudo apt update sudo apt install nginx -y CentOS/RHEL sudo yum install epel-release -y sudo yum install nginx -y
sudo systemctl start nginx sudo systemctl enable nginx 检查状态 sudo systemctl status nginx 开放防火墙端口 sudo ufw allow 80/tcp # Ubuntu 或 sudo firewall-cmd --permanent --add-service=http # CentOS sudo firewall-cmd --reload
三、配置静态网站
sudo mkdir -p /var/www/yourdomain sudo chown -R $USER:$USER /var/www/yourdomain sudo chmod -R 755 /var/www/yourdomain
方法1:使用scp本地传输 scp -r /local/path/* username@server_ip:/var/www/yourdomain/ 方法2:使用git克隆 cd /var/www/yourdomain git clone https://github.com/your-repo.git . 方法3:使用rsync rsync -avz /local/path/ username@server_ip:/var/www/yourdomain/
创建配置文件 sudo nano /etc/nginx/sites-available/yourdomain
配置文件内容:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
root /var/www/yourdomain;
index index.html index.htm;
# 启用gzip压缩
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
# 缓存设置
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
# 处理单页应用路由
location / {
try_files $uri $uri/ /index.html;
}
# 禁止访问隐藏文件
location ~ /\. {
deny all;
}
}创建符号链接 sudo ln -s /etc/nginx/sites-available/yourdomain /etc/nginx/sites-enabled/ 测试配置 sudo nginx -t 重启Nginx sudo systemctl restart nginx
四、域名配置(可选)
A记录:@ -> 你的服务器IP CNAME:www -> yourdomain.com
2.配置SSL证书(HTTPS)
使用Certbot自动配置 sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com 自动续期测试 sudo certbot renew --dry-run
五、优化和安全设置
调整Nginx worker进程数 sudo nano /etc/nginx/nginx.conf
修改:
worker_processes auto; # 自动根据CPU核心数调整 worker_connections 1024; keepalive_timeout 65;
禁用服务器信息 sudo nano /etc/nginx/nginx.conf 添加:server_tokens off; 限制文件上传大小(如果有表单) client_max_body_size 10m;
六、部署自动化脚本
创建部署脚本deploy.sh:
#!/bin/bash echo "开始部署静态网站..." 1. 备份当前版本 BACKUP_DIR="/var/backups/website/$(date +%Y%m%d_%H%M%S)" mkdir -p $BACKUP_DIR cp -r /var/www/yourdomain/* $BACKUP_DIR/ 2. 同步新文件 rsync -avz --delete ./dist/ user@server:/var/www/yourdomain/ 3. 设置权限 ssh user@server "chmod -R 755 /var/www/yourdomain" 4. 重启Nginx ssh user@server "sudo systemctl reload nginx" echo "部署完成!"
七、监控和维护
实时监控 sudo tail -f /var/log/nginx/access.log 查看错误日志 sudo tail -f /var/log/nginx/error.log
安装htop查看资源使用 sudo apt install htop htop
八、替代方案(更简单)
- 阿里云OSS
- 腾讯云COS
- AWS S3 + CloudFront
- 适合纯静态资源,无需管理服务器
- GitHub Pages(免费)
- Netlify/Vercel(有免费额度)
- 云厂商的静态网站托管服务
常见问题解决
1、403 Forbidden错误
检查目录权限 sudo chown -R www-data:www-data /var/www/yourdomain sudo chmod -R 755 /var/www/yourdomain
2、502 Bad Gateway
检查Nginx是否运行 sudo systemctl status nginx 查看错误日志 sudo tail -f /var/log/nginx/error.log
3、域名无法访问
测试DNS解析 nslookup yourdomain.com 测试端口连通性 telnet yourdomain.com 80
建议的最佳实践
1、开发流程:
- 本地开发测试 → Git推送 → 自动部署到服务器
2、备份策略:
- 每日自动备份网站文件
- 配置文件版本控制
3、性能优化:
- 图片压缩(WebP格式)
- 启用CDN加速
- 浏览器缓存优化
需要我针对某个具体步骤(比如HTTPS配置、自动化部署)详细说明吗?
文章摘自:https://idc.huochengrm.cn/zj/24358.html
评论
宏梓涵
回复在云主机上搭建静态网站,首先需安装Web服务器(如Nginx或Apache),配置域名解析,上传静态文件,最后设置正确的文件路径和访问权限即可。