修正新生产服务器 8442 默认入口 #43

Merged
WuYongJie merged 1 commits from hotfix/WuYongJie-new-server-8442-default into main 2026-08-13 12:49:39 +08:00
3 changed files with 14 additions and 9 deletions

View File

@ -109,8 +109,8 @@
- 当前生产服务器约有 16GB 内存,仍只负责运行容器、健康检查和镜像切换。
- 严禁在服务器执行 `docker build`、`docker compose build`、`npm install`、`npm run production`、`composer install` 或其他源码构建命令。
- `compose.jiangling.yml` 不得出现 `build:`;服务器只能运行开发机已经构建并上传的 `caiwu_akaunting:<commit>` 镜像。
- 生产访问地址固定为 `https://218.93.190.75`(不附加端口);宿主机 Nginx 监听 `80/443`,HTTP 自动跳转 HTTPS,应用容器仅绑定 `127.0.0.1:18088`。
- HTTPS 使用 Let’s Encrypt 短期 IP 证书,服务器定时器每 8 小时检查续期;证书、私钥和 ACME 账户不得进入 Git 或应用镜像。
- 当前生产直连地址固定为 `https://218.93.190.75:8442`;宿主机 Nginx 监听 `8442`,应用容器仅绑定 `127.0.0.1:18088`。在云平台真正放行 `80/443` 并完成受信任证书验收前,不得把发布脚本或 `APP_URL` 改回不带端口的地址。
- 当前 `8442` 使用服务器内部证书,浏览器可能显示证书警告。待 `80/443` 真正可用或正式域名完成解析后,再通过 `-ConfigureHttps` 切换到受信任证书和不带端口的正式入口;证书、私钥和 ACME 账户不得进入 Git 或应用镜像。
- `mariadb:11.4` 运行镜像由开发机缓存并仅随首次初始化全量包上传,服务器不得在发布时临时访问 Docker Hub。
- 日常发布必须通过只监听 `127.0.0.1` 的服务器本机 Registry 和 SSH 隧道传输,仅上传 Registry 中不存在的镜像层;禁止每次上传完整 `docker save` 压缩包。
- 日常增量包必须由 BuildKit 直接导出 OCI 分层格式;禁止用 `docker save` 作为日常增量源,因为其未压缩层在重复导入时会产生不同压缩摘要、破坏跨版本层复用。
@ -127,7 +127,7 @@
- JavaScript、CSS、字体、PWA 图标和其他程序静态资源必须随应用镜像发布并由应用同源提供,禁止上传到七牛或把对象存储失败作为程序发布前置条件。七牛只用于用户上传的业务图片、票据和附件。
- 基础镜像、Composer 下载缓存、npm 下载缓存和未变化的构建层应直接复用,不得每次全量下载。
- `-BootstrapServer` 仅用于新服务器首次全量初始化;已有服务器的日常发布自动走增量镜像层传输。
- `-ConfigureHttps` 仅用于首次配置或修复宿主机 Nginx、IP 证书和自动续期;日常发布不得重复添加。
- `-ConfigureHttps` 仅在公网 `80/443` 已真实放行后用于首次配置或修复宿主机 Nginx、IP 证书和自动续期;当前 `8442` 入口的日常发布不得添加。
### 8.4 磁盘和缓存上限

View File

@ -82,9 +82,9 @@
- 创建持久化数据库卷和运行文件卷;运行文件卷继续保存缓存、临时文件和可回滚的旧上传原件。
- 上传应用与 MariaDB 首次全量包,并初始化仅限本机访问的增量 Registry。
云平台安全组必须放行 `TCP 80` 和 `TCP 443`。应用容器只绑定服务器本机 `127.0.0.1:18088`,公网由轻量 Nginx 提供 HTTPS;Registry 的 `5000` 端口仍禁止对公网开放。
当前云平台仅提供可用的 `TCP 8442`,生产直连地址为 `https://218.93.190.75:8442`。应用容器只绑定服务器本机 `127.0.0.1:18088`,公网由轻量 Nginx 在 `8442` 提供 HTTPS;Registry 的 `5000` 端口仍禁止对公网开放。
首次部署后执行一次 HTTPS 配置:
只有云平台已经真正放行 `TCP 80/443`(外网不仅能握手,还能收到服务器响应)时,才执行一次受信任 HTTPS 配置:
```powershell
.\scripts\deploy-from-workstation.ps1 `
@ -93,9 +93,9 @@
-ConfigureHttps
```
该步骤在服务器安装轻量 Nginx 和独立 Certbot 环境,为公网 IP 申请 Let’s Encrypt 短期证书,并启用每 8 小时检查一次的自动续期。服务器仍不构建任何应用源码或镜像。
该步骤在服务器安装轻量 Nginx 和独立 Certbot 环境,为公网 IP 申请 Let’s Encrypt 短期证书,并启用每 8 小时检查一次的自动续期。服务器仍不构建任何应用源码或镜像。当前 `80/443` 尚未真正可用时不得执行;继续使用 `8442` 内部证书入口。
首次打开 `https://218.93.190.75` 后,由负责人或指定人员在网页安装向导中设置管理员账号和密码。
首次打开 `https://218.93.190.75:8442` 后,由负责人或指定人员在网页安装向导中设置管理员账号和密码。当前内部证书可能触发浏览器警告;正式域名或受信任 IP 证书完成后再取消端口和警告。
## 5. 日常正式发布
@ -368,7 +368,7 @@ php artisan system-database:reencrypt-upstream-passwords --apply
- 发布分支和完整 Git SHA;
- 镜像标签;
- 服务器 `caiwu_app`、`caiwu_db` 状态;
- `https://218.93.190.75` 的实际返回结果和证书有效期;
- `https://218.93.190.75:8442` 的实际返回结果和证书状态;
- 是否执行数据库迁移;
- 本地临时包是否删除;
- 本地/服务器保留了几个本项目镜像;

View File

@ -303,7 +303,12 @@ try {
$buildDate = [DateTime]::UtcNow.ToString('yyyy-MM-ddTHH:mm:ssZ')
if (-not $AppUrl) {
$AppUrl = "https://${Server}"
$AppUrl = if ($Server -eq '218.93.190.75') {
"https://${Server}:8442"
}
else {
"https://${Server}"
}
}
Invoke-Native { docker version | Out-Null } 'Docker Desktop 未启动或不可用。'