在云服务器上部署企业官网的 Web 环境,通常包括以下核心步骤。以下以 Linux(Ubuntu/CentOS)+ Nginx + PHP/MySQL(LAMP/LNMP)为例,提供通用且安全的部署流程:
一、前期准备
-
购买并配置云服务器
- 选择合适配置(如 2 核 4G 起,根据访问量调整)
- 操作系统推荐:Ubuntu 22.04 LTS 或 CentOS Stream 9
- 开通必要端口(80/443 HTTP/HTTPS,22 SSH)
-
域名解析
- 将域名 A 记录指向服务器公网 IP
- (可选)配置 CDN 提速与 SSL 证书
二、基础系统加固
# 更新系统
sudo apt update && sudo apt upgrade -y # Ubuntu
# 或
sudo yum update -y # CentOS
# 创建非 root 用户
sudo adduser webadmin
sudo usermod -aG sudo webadmin
# 配置 SSH 密钥登录(禁用密码登录)
ssh-keygen -t ed25519
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
sudo chmod 600 ~/.ssh/authorized_keys
# 修改 SSH 配置文件(/etc/ssh/sshd_config)
PermitRootLogin no
PasswordAuthentication no
Port 2222 # 可选:改默认端口增强安全
三、安装 Web 服务栈(以 LNMP 为例)
1. 安装 Nginx
sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx
2. 安装 PHP 及扩展(以 PHP 8.2 为例)
sudo apt install php8.2-fpm php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring
php8.2-xml php8.2-zip php8.2-bcmath -y
sudo systemctl enable php8.2-fpm
sudo systemctl start php8.2-fpm
3. 安装 MySQL/MariaDB
sudo apt install mysql-server -y
sudo mysql_secure_installation # 按提示设置 root 密码、移除匿名用户等
✅ 建议为网站创建独立数据库与用户:
CREATE DATABASE company_site CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'site_user'@'localhost' IDENTIFIED BY 'StrongPassword123!'; GRANT ALL PRIVILEGES ON company_site.* TO 'site_user'@'localhost'; FLUSH PRIVILEGES;
四、部署网站代码
-
上传源码至服务器(推荐
/var/www/company-site)sudo mkdir -p /var/www/company-site sudo chown -R www-data:www-data /var/www/company-site sudo chmod -R 755 /var/www/company-site -
通过
scp、Git 拉取或 FTP/SFTP 上传项目文件
(如 WordPress、自定义 Laravel/ThinkPHP 等) -
配置 Nginx 站点(
/etc/nginx/sites-available/company-site):server { listen 80; server_name example.com www.example.com; root /var/www/company-site/public; # 注意:多数框架需指向 public 目录 index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { fastcgi_pass unix:/run/php/php8.2-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; } # 禁止访问敏感文件 location ~ /.ht { deny all; } location ~ /.git { deny all; } } -
启用站点并测试配置:
sudo ln -s /etc/nginx/sites-available/company-site /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx
五、启用 HTTPS(必做)
使用 Let’s Encrypt 免费证书(Certbot):
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com
✅ Certbot 会自动配置重定向(HTTP→HTTPS)和自动续期。
验证:
sudo systemctl status certbot.timer
curl -I https://example.com
六、安全与优化建议
| 类别 | 措施 |
|---|---|
| 防火墙 | 仅开放 22, 80, 443;UFW 示例:sudo ufw allow 22/tcpsudo ufw allow 80/tcpsudo ufw allow 443/tcpsudo ufw enable |
| 防暴力破解 | 安装 Fail2Ban:sudo apt install fail2ban -y,配置针对 SSH/Nginx 日志 |
| 定期备份 | 脚本定时备份数据库 + 网站目录到远程存储(如 AWS S3、阿里云 OSS) |
| 监控告警 | 部署 Prometheus + Grafana 或云厂商自带监控(CPU/内存/磁盘/流量) |
| WAF 防护 | 可接入云 WAF 或 ModSecurity(需评估性能影响) |
七、后续维护
- 定期更新系统包与依赖:
apt upgrade/yum update - 检查错误日志:
/var/log/nginx/error.log、/var/log/php8.2-fpm.log - 压力测试:使用 Apache Bench 或 JMeter 模拟并发访问
- 备案(中国大陆):完成 ICP 备案后方可对外提供服务
如您有具体技术栈需求(如 Docker 部署、Kubernetes、WordPress 一键安装、静态站 + CDN 方案),我可提供更针对性的步骤与脚本模板。需要吗?
CLOUD技术博