奋斗
努力

如何在云服务器上部署企业官网的Web环境?

云计算

在云服务器上部署企业官网的 Web 环境,通常遵循“系统准备 → 环境搭建 → 代码部署 → 安全加固 → 域名解析与监控”的标准流程。以下以 Linux(如 CentOS/Ubuntu)+ Nginx + MySQL + PHP/Node.js 为例,提供清晰可操作的步骤:


一、前期准备

  1. 购买并配置云服务器

    • 选择合适配置(建议 ≥2 核 CPU / 4GB 内存 / 50GB SSD)
    • 操作系统推荐:Ubuntu 22.04 LTS 或 CentOS Stream 9
    • 开启公网 IP,配置安全组规则(开放 80/443/22 端口)
  2. 基础系统加固

    # 更新系统
    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. 上传代码

    • 方式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 上传压缩包后解压
  2. 配置 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-site
find /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

五、域名解析与上线

  1. 在 DNS 服务商处添加记录:
    • A 记录:@ → 服务器公网 IP
    • CNAME 记录:www → yourdomain.com
  2. 等待生效(通常几分钟~48 小时)
  3. 访问 https://yourdomain.com 验证 SSL 和页面正常

六、持续维护建议

  • ✅ 每日自动备份数据库 + 代码(crontab + rsync)
  • ✅ 监控资源使用(Prometheus + Grafana 或云厂商自带监控)
  • ✅ 定期更新系统补丁:unattended-upgrades(Ubuntu)
  • ✅ 日志轮转配置:避免 /var/log/nginx/access.log 占满磁盘

需要我针对您的具体技术栈(如 WordPress / Java Spring Boot / Vue SSR)提供定制化部署脚本,或生成完整的 deploy.sh 自动化脚本吗?

未经允许不得转载:云服务器 » 如何在云服务器上部署企业官网的Web环境?