在云服务器上部署企业官网的 Web 环境,通常遵循“系统准备 → 环境搭建 → 代码部署 → 安全加固 → 域名解析与监控”的标准流程。以下以 Linux(如 CentOS/Ubuntu)+ Nginx + MySQL + PHP/Node.js 为例,提供清晰可操作的步骤:
一、前期准备
-
购买并配置云服务器
- 选择合适配置(建议 ≥2 核 CPU / 4GB 内存 / 50GB SSD)
- 操作系统推荐:Ubuntu 22.04 LTS 或 CentOS Stream 9
- 开启公网 IP,配置安全组规则(开放 80/443/22 端口)
-
基础系统加固
# 更新系统 sudo apt update && sudo apt upgrade -y # Ubuntu # 或 sudo yum update -y # CentOS # 创建非 root 用户并授权 sudo sudo adduser webadmin sudo usermod -aG sudo webadmin # 切换用户操作后续步骤 su - webadmin
二、安装 Web 环境(以 LAMP/LNMP 为例)
方案 A:LNMP(推荐,性能更好)
# 安装 Nginx
sudo apt install nginx -y
sudo systemctl enable --now nginx
# 安装 MariaDB(MySQL 兼容)
sudo apt install mariadb-server -y
sudo mysql_secure_installation # 设置 root 密码、移除测试库等
# 安装 PHP-FPM + 常用扩展
sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml unzip -y
# 配置 PHP 时区(可选)
echo "date.timezone = Asia/Shanghai" | sudo tee /etc/php/8.1/fpm/conf.d/timezone.ini
方案 B:Docker 快速部署(适合容器化场景)
# docker-compose.yml 示例
version: '3.8'
services:
web:
image: nginx:alpine
ports: ["80:80", "443:443"]
volumes: ["./html:/usr/share/nginx/html", "./nginx.conf:/etc/nginx/nginx.conf"]
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: your_strong_password
MYSQL_DATABASE: company_site
volumes: ["db-data:/var/lib/mysql"]
volumes:
db-data:
启动:
docker-compose up -d
三、部署网站代码
-
上传代码
- 方式1:Git 拉取(推荐)
git clone https://github.com/your-org/company-site.git /var/www/company-site cd /var/www/company-site composer install --no-dev # 若为 PHP 项目 - 方式2:SFTP 上传压缩包后解压
- 方式1:Git 拉取(推荐)
-
配置 Nginx 站点
# /etc/nginx/sites-available/company-site server { listen 80; server_name www.yourdomain.com yourdomain.com; root /var/www/company-site/public; # Laravel/ThinkPHP 等框架通常在 public/ index index.php index.html; location ~ .php$ { fastcgi_pass unix:/run/php/php8.1-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } # 静态资源缓存 location ~* .(jpg|jpeg|png|css|js)$ { expires 30d; add_header Cache-Control "public, immutable"; } }启用站点:
sudo ln -s /etc/nginx/sites-available/company-site /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx
四、安全与优化关键项
| 类别 | 措施 |
|---|---|
| HTTPS | 使用 Let’s Encrypt 免费证书:sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com |
| 防火墙 | 仅开放必要端口:ufw allow 'Nginx Full' && ufw allow ssh && ufw enable |
| 数据库 | 修改默认端口、禁用远程 root、定期备份mysqldump -u root -p company_site > backup.sql |
| 文件权限 | chown -R www-data:www-data /var/www/company-sitefind /var/www/company-site -type d -exec chmod 755 {} ;find /var/www/company-site -type f -exec chmod 644 {} ; |
| 防攻击 | 安装 Fail2Ban 封禁暴力破解:sudo apt install fail2ban -y |
五、域名解析与上线
- 在 DNS 服务商处添加记录:
A记录:@→ 服务器公网 IPCNAME记录:www→yourdomain.com
- 等待生效(通常几分钟~48 小时)
- 访问
https://yourdomain.com验证 SSL 和页面正常
六、持续维护建议
- ✅ 每日自动备份数据库 + 代码(crontab + rsync)
- ✅ 监控资源使用(Prometheus + Grafana 或云厂商自带监控)
- ✅ 定期更新系统补丁:
unattended-upgrades(Ubuntu) - ✅ 日志轮转配置:避免
/var/log/nginx/access.log占满磁盘
需要我针对您的具体技术栈(如 WordPress / Java Spring Boot / Vue SSR)提供定制化部署脚本,或生成完整的 deploy.sh 自动化脚本吗?
云服务器