在现代Web开发中,将应用程序部署到Linux服务器是一项基本技能。本文将带你从零开始,学习如何在Linux服务器上部署Web应用。
服务器准备
在开始部署之前,我们需要准备好服务器环境:
- 选择合适的云服务提供商(如阿里云、腾讯云、AWS等)
- 选择适当的服务器配置(CPU、内存、存储空间)
- 安装Linux发行版(推荐Ubuntu或CentOS)
- 配置SSH密钥认证以提高安全性
基础环境配置
连接到服务器后,首先进行基础环境配置:
# 更新系统包
sudo apt update && sudo apt upgrade -y
# 安装常用工具
sudo apt install -y curl wget git vim nginx
# 创建非root用户(以提高安全性)
sudo adduser deploy
sudo usermod -aG sudo deploy
# 配置防火墙
sudo ufw enable
sudo ufw allow ssh
sudo ufw allow 'Nginx Full'
Nginx配置
Nginx是一个高性能的HTTP和反向代理服务器:
# 创建站点配置文件
sudo nano /etc/nginx/sites-available/myapp
# 配置内容示例:
server {
listen 80;
server_name your_domain.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
# 启用站点
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Node.js应用部署
如果你部署的是Node.js应用,可以使用PM2进行进程管理:
# 安装Node.js
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt install -y nodejs
# 安装PM2
sudo npm install -g pm2
# 启动应用
pm2 start app.js --name "myapp"
pm2 startup
pm2 save
SSL证书配置
使用Let's Encrypt免费获取SSL证书:
# 安装Certbot
sudo apt install certbot python3-certbot-nginx
# 获取并安装SSL证书
sudo certbot --nginx -d your_domain.com
# 自动续期
sudo crontab -e
# 添加以下行:
0 12 * * * /usr/bin/certbot renew --quiet
安全加固
为了提高服务器安全性,建议采取以下措施:
- 定期更新系统和软件包
- 禁用root用户直接登录
- 使用SSH密钥而非密码认证
- 配置Fail2ban防止暴力破解
- 限制不必要的网络访问端口
监控和日志
建立完善的监控和日志系统:
- 使用系统日志工具(rsyslog、journalctl)
- 配置应用日志轮转
- 设置监控告警(如资源使用率过高)
- 定期备份重要数据
遵循以上步骤,你可以成功地将Web应用部署到Linux服务器上,并确保其稳定运行。