如何在新EC2实例中创建静态维护页面?
没问题,这事儿我熟,一步步给你捋清楚怎么在EC2上搭静态维护页面:
第一步:连接到你的EC2实例
先通过SSH连接到你的EC2实例,命令大概是这样的(记得替换成你的密钥对路径和实例IP):
ssh -i "你的密钥对文件名.pem" ec2-user@你的实例公网IP
小提示:不同AMI的用户名不一样,比如Ubuntu系统用ubuntu,Amazon Linux用ec2-user,CentOS用centos,别搞混了。
第二步:安装Web服务器(选Apache或者Nginx都行)
我个人常用Apache,这里给你两种服务器的安装方式:
- 如果是Amazon Linux 2/CentOS:
先更新系统包,再装Apache:sudo yum update -y sudo yum install httpd -y - 如果是Ubuntu/Debian:
同样先更新,再装Apache:sudo apt update && sudo apt install apache2 -y
要是你偏好Nginx,把上面的httpd换成nginx就行,后续步骤逻辑差不多。
第三步:创建静态维护页面
Web服务器的默认根目录,Apache一般是/var/www/html/,Nginx是/usr/share/nginx/html/。咱们直接在根目录创建首页文件:
# Apache的话用这个路径 sudo nano /var/www/html/index.html # Nginx的话换这个 sudo nano /usr/share/nginx/html/index.html
打开编辑器后,粘贴下面的静态页面代码(你可以根据自己的需求改文字、样式):
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>网站维护通知</title> <style> body { margin: 0; padding: 0; font-family: "Microsoft Yahei", Arial, sans-serif; background-color: #f5f5f5; display: flex; align-items: center; justify-content: center; min-height: 100vh; } .maintenance-box { background: white; padding: 4rem 6rem; border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); text-align: center; } h1 { color: #e74c3c; margin-bottom: 1.5rem; font-size: 2.2rem; } p { color: #555; font-size: 1.1rem; line-height: 1.6; margin-bottom: 0.8rem; } .recovery-time { color: #2980b9; font-weight: bold; } </style> </head> <body> <div class="maintenance-box"> <h1>🔧 网站维护中</h1> <p>我们正在对系统进行升级优化,以提供更好的服务体验</p> <p>预计恢复时间:<span class="recovery-time">今日 18:00</span></p> <p>给您带来的不便,敬请谅解!</p> </div> </body> </html>
写完后按Ctrl+O保存,回车确认文件名,再按Ctrl+X退出编辑器。
第四步:启动Web服务器并设置开机自启
启动服务,还要设置成开机自动启动,避免实例重启后服务停了:
- Apache:
# Amazon Linux/CentOS sudo systemctl start httpd sudo systemctl enable httpd # Ubuntu/Debian sudo systemctl start apache2 sudo systemctl enable apache2 - Nginx:
sudo systemctl start nginx sudo systemctl enable nginx
第五步:验证页面+检查安全组
现在打开浏览器,输入你的EC2实例公网IP,应该能看到刚才做的维护页面了。如果打不开,大概率是安全组没开80端口:
- 去EC2控制台找到你的实例,进入安全组配置
- 添加一条入站规则,允许
HTTP(80)端口,来源选0.0.0.0/0(允许所有IP访问)
等你Web应用停机的时候,直接把弹性IP从原来的实例解绑,再绑定到这个维护页面的EC2实例就行,用户访问的时候就会看到维护通知了。
内容的提问来源于stack exchange,提问作者giturr14
相关产品推荐
相关产品推荐

