Alibaba Cloud Linux 4 · Nginx + PHP-FPM(ondemand) · 无面板 / 无 Docker · 全站统一 80 / 443 按域名分发
建站命令速查
1新建静态站
/data/scripts/add-site.sh static myweb demo.lsrun.fun
作用:生成 /data/www/myweb/ 与 /etc/nginx/conf.d/20-myweb.conf,监听 80 并按域名 demo.lsrun.fun 分发。域名 A 记录需先指向 115.29.29.171。替换 index.html 即可发布内容。
2反向代理本机应用
/data/scripts/add-site.sh proxy myapp 9001 api.lsrun.fun
作用:把 api.lsrun.fun 转发到 127.0.0.1:9001。应用请只监听 127.0.0.1(不要暴露公网端口);已支持 WebSocket / SSE,请求体上限 20m。
3查看站点(只读,不改配置)
/data/scripts/add-site.sh list
作用:列出 /etc/nginx/conf.d/ 下全部站点(含 30-ssl-*.conf 的 443 配置),逐条输出 listen、server_name、root、proxy_pass、ssl_certificate。用于核对域名绑定与端口,不会修改任何文件。
4删除站点(会改配置)
/data/scripts/add-site.sh del myweb
作用:删除 20-myweb.conf 与对应的 30-ssl-myweb.conf(80 / 443 一并移除),随后自动 nginx -t 校验并 reload。网页文件 /data/www/myweb/ 会保留,不会误删内容。删除后建议重跑一次 enable-https.sh 以刷新证书 SAN。
5新增站点后开启 / 刷新 HTTPS
/data/scripts/enable-https.sh
作用:收集所有 80 server 的域名 → 现有证书已覆盖则跳过签发(避免触发 Let's Encrypt 重复签发限制)→ 必要时重签 SAN → 为每个站点生成 30-ssl-*.conf。可重复运行,新增 / 删除站点后执行即可。
完整语法
# /data/scripts/add-site.sh 全部子命令(<> 为必填参数)
add-site.sh static <name> <domain> 静态站 -> /data/www/<name>
add-site.sh proxy <name> <应用端口> <domain> 反代 -> 127.0.0.1:<应用端口>
add-site.sh list 列出站点(含 80 / 443)
add-site.sh del <name> 删除站点 80 / 443 配置
| 参数 | 含义与约束 |
<name> | 站点名,只允许字母、数字、-、_;决定网页目录名与 Nginx 配置文件名 |
<domain> | 完整域名(如 demo.lsrun.fun),必须含点;本服务器已废弃非标端口,一律走 80 / 443 |
<应用端口> | 纯数字,本机应用监听端口;反代固定转发到 127.0.0.1:<端口> |
所有站点统一监听 80 / 443,新增域名只需添加 A 记录,阿里云安全组无需改动;每次建站 / 删站脚本都会自动 nginx -t 并 reload。
运维命令速查
/data/scripts/health-check.sh
健康检查:按 Host 头探测 80 / 443 的 doc、hd、引导页与 ShowDoc ping,检查磁盘 / 内存水位,服务异常自动拉起。cron 每 10 分钟执行一次。
/data/scripts/backup.sh
每日备份:SQLite 一致性快照 + 附件 + /etc/nginx(含证书与私钥)+ ACME 账户,输出到 /data/backup/,保留 7 天。cron 每天 03:30。
/data/scripts/log-clean.sh
日志清理:清理过期 Nginx / PHP 日志与临时文件,控制磁盘占用。cron 每天 04:10。
nginx -t && systemctl reload nginx
手工改配置后用:先校验语法再热重载,不会中断现有连接;校验失败时不会 reload。
systemctl status nginx php-fpm crond
服务状态:查看 Web 栈与定时任务运行状态(按 q 退出)。重启用 systemctl restart nginx php-fpm。
/root/.acme.sh/acme.sh --cron --home /root/.acme.sh
证书续期预演:到期自动续期并 reload nginx,未到期则跳过。cron 每天 02:20 自动执行,一般无需手动运行。