From 4cb82ec769bf04356c13b4698f6ad89af8704290 Mon Sep 17 00:00:00 2001 From: none Date: Tue, 4 Jul 2023 20:06:18 +0800 Subject: [PATCH] v1.1 --- .gitignore | 3 ++- README.md | 30 ++++++++++++++++-------------- conf/nginx.conf | 42 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index 867dad5..b0d2299 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ frontend/ -backend/ \ No newline at end of file +backend/ +h5/ \ No newline at end of file diff --git a/README.md b/README.md index 4cc8a62..f40c51d 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ ### PlayEdu Light Docker 构建方案 -本套方案将 API + PC 前台 + 后台管理 三个整合在一个镜像当中,适用于轻量级客户。 +本套方案将 API + PC 前台 + H5 前台 + 后台管理 四个整合在一个镜像当中,适用于轻量级客户。 ### 使用官方镜像 在命令行中执行: ``` -docker run -d -p 9700:80 -p 9800:9800 -p 9900:9900 --name playedu-light \ +docker run -d -p 9700:80 -p 9800:9800 -p 9801:9801 -p 9900:9900 --name playedu-light \ -e DB_HOST=数据库host \ -e DB_PORT=数据库端口 \ -e DB_NAME=数据库名 \ @@ -17,16 +17,17 @@ docker run -d -p 9700:80 -p 9800:9800 -p 9900:9900 --name playedu-light \ -e REDIS_PORT=Redis的端口 \ -e REDIS_PASS=redis的密码 \ -e SA_TOKEN_JWT_SECRET_KEY=随机英文+数字的字符串 \ - registry.cn-hangzhou.aliyuncs.com/playedu/light:1.0-beta.7.1 + registry.cn-hangzhou.aliyuncs.com/playedu/light:1.1 ``` 跑起来之后,可以通过下面的链接访问前后台: -| 端口 | 地址 | -| -------- | -------------------------- | -| API 服务 | `http://你的服务器IP:9700` | -| 学员界面 | `http://你的服务器IP:9800` | -| 后台管理 | `http://你的服务器IP:9900` | +| 端口 | 地址 | +| ------------ | -------------------------- | +| API 服务 | `http://你的服务器IP:9700` | +| 学员 PC 界面 | `http://你的服务器IP:9800` | +| 学员 H5 界面 | `http://你的服务器IP:9801` | +| 后台管理 | `http://你的服务器IP:9900` | ### 自己动手 @@ -43,7 +44,7 @@ docker build -t playedu-light . 执行完毕之后,可运行下面命令将 PlayEdu 服务跑起来: ``` -docker run -d -p 9700:80 -p 9800:9800 -p 9900:9900 --name playedu-local \ +docker run -d -p 9700:80 -p 9800:9800 -p 9801:9801 -p 9900:9900 --name playedu-local \ -e DB_HOST=数据库host \ -e DB_PORT=数据库端口 \ -e DB_NAME=数据库名 \ @@ -58,8 +59,9 @@ docker run -d -p 9700:80 -p 9800:9800 -p 9900:9900 --name playedu-local \ 跑起来之后,可以通过下面的链接访问前后台: -| 端口 | 地址 | -| -------- | -------------------------- | -| API 服务 | `http://你的服务器IP:9700` | -| 学员界面 | `http://你的服务器IP:9800` | -| 后台管理 | `http://你的服务器IP:9900` | +| 端口 | 地址 | +| ------------ | -------------------------- | +| API 服务 | `http://你的服务器IP:9700` | +| 学员 PC 界面 | `http://你的服务器IP:9800` | +| 学员 H5 界面 | `http://你的服务器IP:9801` | +| 后台管理 | `http://你的服务器IP:9900` | diff --git a/conf/nginx.conf b/conf/nginx.conf index 89c76c8..b4cb4c9 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -40,6 +40,48 @@ server { } } +server { + # 监听端口号9801 + listen 9801 default_server; + # 禁用绝对重定向 + # 如果没有设置该配置项,当Nginx重定向时,它将使用绝对路径,这意味着当用户访问一个虚拟主机时 + # Nginx可能会将他们重定向到另一个主机的URL,这可能会导致安全问题和用户体验问题。因此,通过 + # 设置 absolute_redirect off ,Nginx将使用相对路径进行重定向,以确保用户在同一主机上进 + # 行重定向,而不会遇到上述问题。 + absolute_redirect off; + # 匹配任何主机名 + server_name _; + # 指定Web应用程序的根目录 + root /app/h5; + # 指定默认的索引文件为index.html + index index.html; + # 启用gzip压缩 + gzip on; + gzip_static on; + gzip_buffers 4 16k; + gzip_http_version 1.1; + gzip_comp_level 5; + gzip_types text/plain application/javascript text/css application/xml text/javascript; + gzip_vary on; + + # 将所有以/api/开头的请求代理到本地地址为127.0.0.1:9898的Web应用程序后端服务器 + location /api/ { + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_pass http://127.0.0.1:9898/; + } + + # 拒绝所有以.ht开头的请求 + location ~ /\.ht { + deny all; + } + + # 处理所有不以/api/开头的请求,尝试查找匹配的文件,如果没有找到则返回index.html + location ~* ^/(?![api].*) { + try_files $uri /index.html; + } +} + server { # 监听端口号9900 listen 9900 default_server;