Skip to content

feat(06): live deploy to zijingmoments.xyz (nginx+HTTPS, docker compose networking) - #166

Open
sililass wants to merge 1 commit into
eesast:06-Deploymentfrom
sililass:06-Deployment
Open

feat(06): live deploy to zijingmoments.xyz (nginx+HTTPS, docker compose networking)#166
sililass wants to merge 1 commit into
eesast:06-Deploymentfrom
sililass:06-Deployment

Conversation

@sililass

@sililass sililass commented Sep 4, 2026

Copy link
Copy Markdown

2025暑培-网站作业提交

作业内容(第 6 讲 Deployment)

将便签纸全栈应用部署到公网 https://zijingmoments.xyz(阿里云轻量应用服务器 182.92.245.68),并配置 HTTPS:

  • server/nginx/docker-compose.yml(修改):nginx stable-alpine,新增 80:80 端口映射用于 HTTP→HTTPS 跳转;接入 backend_defaultdatabase_default 两个外部网络,使 nginx 可同时反代 backend 与 graphql-engine
  • server/nginx/nginx.conf(新增):绑定 server_name zijingmoments.xyz;80 端口统一 return 301 https://$host$request_uri;443 使用 Let's Encrypt 证书(nginx 挂载宿主机 /etc/letsencrypt),/ → backend:8888(保留 Host 头、client_max_body_size 100M),/v1/graphql → graphql-engine:8080(保留 WebSocket upgrade 头)
  • server/backend/docker-compose.yml(新增):基于服务器本地构建的 backend:latest 镜像,映射 20248:8888,加入 database_default 外部网络,endpoint 直连 http://graphql-engine:8080/v1/graphql
  • backend/Dockerfile(修改):在两个 yarn install 步骤前追加 npmmirror 源配置(registry.npmmirror.com),解决服务器构建时官方源不可达导致的安装失败
  • backend/src/file.ts(修改):修复 @types/express@types/multer 类型冲突导致 tsc 编译失败的两处类型问题
  • 数据库沿用 06-Deployment 分支 server/database/docker-compose.yml(postgres:15 + hasura/graphql-engine:v2.40.0,映射 20247),建表 SQL 与 Hasura metadata 来自 database/ 目录

改动文件(相对 06-Deployment,共 5 个):新增 server/nginx/nginx.confserver/backend/docker-compose.yml;修改 server/nginx/docker-compose.ymlbackend/Dockerfilebackend/src/file.ts

验收结果(2026-09-04 实测)

  • https://zijingmoments.xyz/user/login:正确密码返回 200,错误密码返回 401(多次复测)
  • TLS 证书链校验通过(curl ssl_verify_result: 0),Let's Encrypt 签发,有效期至 2026-12-03(宿主机 certbot + timer 自动续期)
  • https://zijingmoments.xyz/v1/graphql:admin + GraphQL 查询返回 200
  • hasura 健康检查 http://182.92.245.68:20247/healthz 返回 200(healthy)
  • nginx HTTP→HTTPS 跳转:服务器内访问 http://127.0.0.1/ 返回 301
  • 说明:公网直接访问 http://zijingmoments.xyz 时阿里云边缘返回 403 "Non-compliance ICP Filing"(域名未完成 ICP 备案,机房侧对 80 明文端口的拦截,不影响 HTTPS)

基本信息

  • 姓名:豆梓宁
  • 班级:无57
  • 学号:2025010355

提交说明

@mergify mergify Bot added the homework Homework PR, will not be merged label Sep 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

homework Homework PR, will not be merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant