diff --git a/DEPLOY_1PANEL.md b/DEPLOY_1PANEL.md index abf0711..c2bf851 100644 --- a/DEPLOY_1PANEL.md +++ b/DEPLOY_1PANEL.md @@ -385,7 +385,15 @@ dependency failed to start: container haovp-nacos is unhealthy 新版编排不再让业务服务等待 Nacos `healthy`,也不再给 Nacos 配置 Docker healthcheck。这样可以避免 1Panel 因 Nacos 启动慢而判定整个编排失败。同步新版 `docker-compose.1panel.yml` 后,需要删除失败编排或重新创建容器,让新的依赖策略生效。 -如果仍失败,查看 Nacos 容器内部日志: +现在编排里新增了 `haovp-nacos-init` 一次性初始化容器。它会先创建 `nacos_config` 库和表,再决定是否导入默认 Nacos 配置。 + +如果仍失败,优先查看初始化容器日志: + +```bash +docker logs --tail 200 haovp-nacos-init +``` + +再查看 Nacos 容器内部日志: ```bash docker logs --tail 200 haovp-nacos @@ -396,8 +404,9 @@ docker logs --tail 200 haovp-nacos | 问题 | 处理 | | --- | --- | | `NACOS_AUTH_TOKEN` 相关报错 | 确认 `.env.1panel` 中 `NACOS_AUTH_TOKEN` 是 Base64,且解码后至少 32 字节 | -| `No DataSource set` | 先确认服务器上的 `backend/config/nacos/application-1panel.properties` 是“文件”而不是目录,再确认它被挂载到 `/home/nacos/conf/application.properties`,最后用 `--force-recreate` 重建 `haovp-nacos` | -| 数据库连接失败 | 确认 `haovp-mysql` 正常,且首次初始化没有被中断 | +| `No DataSource set` | 先确认服务器上的 `backend/config/nacos/application-1panel.properties` 是“文件”而不是目录,再确认它被挂载到 `/home/nacos/conf/application.properties`,然后看 `haovp-nacos-init` 是否成功完成 | +| 数据库连接失败 | 确认 `haovp-mysql` 正常,且 `haovp-nacos-init` 能连上 MySQL | +| 业务服务短暂报 `nacos:9848 Connection refused` | Nacos 2.x 客户端会连接 `8848 + 1000 = 9848` 的 gRPC 端口。启动早期短暂失败后出现 `Success to connect a server [nacos:8848]` 即为自动恢复 | | 端口占用 | 确认宿主机 `8848` 未被其他服务占用,或修改 `NACOS_HTTP_PORT` | 推荐的检查顺序: @@ -405,13 +414,63 @@ docker logs --tail 200 haovp-nacos ```bash ls -l /opt/HAOVP/backend/config/nacos/application-1panel.properties docker inspect haovp-nacos --format '{{range .Mounts}}{{println .Source "->" .Destination}}{{end}}' +docker logs --tail 200 haovp-nacos-init docker rm -f haovp-nacos +docker rm -f haovp-nacos-init docker compose --env-file .env.1panel -f docker-compose.1panel.yml up -d --force-recreate nacos docker logs --tail 200 haovp-nacos ``` 如果 `application-1panel.properties` 在服务器上不存在,Docker 可能会把挂载源当成目录处理,Nacos 就还是读不到数据源配置。 +如果使用了编排里的 `JAVA_OPT_EXT` 兜底,Nacos 启动日志的 `exec java ...` 行里应出现 `--nacos.plugin.datasource.db.url.0=jdbc:mysql://mysql:3306/nacos_config...`。Nacos Docker 启动脚本会把 `JAVA_OPT_EXT` 追加到 `-jar nacos-server.jar` 后面,所以这里必须按 Spring Boot 命令行参数传入。 + +如果挂载和启动参数都正确,但仍然是 `No DataSource set`,继续检查 MySQL 里的 Nacos 库表。1Panel 反复创建编排时,`mysql_data` volume 如果已经存在,`/docker-entrypoint-initdb.d/` 下的初始化 SQL 不会再次自动执行: + +```bash +cd /opt/HAOVP/backend +set -a +source .env.1panel +set +a + +docker exec haovp-mysql mysql -uroot -p"$MYSQL_ROOT_PASSWORD" -e " +SHOW DATABASES LIKE 'nacos_config'; +SELECT TABLE_NAME FROM information_schema.TABLES +WHERE TABLE_SCHEMA='nacos_config' + AND TABLE_NAME IN ('config_info','config_info_beta','users','roles'); +SELECT COUNT(*) AS config_count FROM nacos_config.config_info; +" +``` + +如果缺库或缺表,手动补执行初始化: + +```bash +docker exec -i haovp-mysql mysql --default-character-set=utf8mb4 -uroot -p"$MYSQL_ROOT_PASSWORD" < ./sql/nacos-schema.sql +docker exec -i haovp-mysql mysql --default-character-set=utf8mb4 -uroot -p"$MYSQL_ROOT_PASSWORD" --force nacos_config < ./sql/nacos-config-init.sql +docker rm -f haovp-nacos +docker compose --env-file .env.1panel -f docker-compose.1panel.yml up -d --force-recreate nacos +``` + +如果业务服务日志出现 `org.yaml.snakeyaml.parser.ParserException`,并指向 `video-gateway.yaml` 的 `response-body`,说明 Nacos 中已有的配置内容还是旧的错误引号。检查当前内容: + +```bash +docker exec haovp-mysql mysql --default-character-set=utf8mb4 -uroot -p"$MYSQL_ROOT_PASSWORD" -N -s -e "SELECT content FROM nacos_config.config_info WHERE data_id='video-gateway.yaml';" | sed -n '50,62p' +``` + +正确内容应类似: + +```yaml + mode: response + response-body: '{"code":500,"message":"服务不可用,请稍后再试"}' +``` + +如果不是这个格式,在 Nacos 控制台修正 `video-gateway.yaml` 后重启网关: + +```bash +docker restart haovp-video-gateway +curl -i "http://127.0.0.1:${GATEWAY_HTTP_PORT:-9000}/recommend/home?page=1&size=12" +``` + ### 拉取 `haovp/video-*` 镜像失败 如果 1Panel 报错类似: @@ -456,6 +515,28 @@ docker logs haovp-video-content 前端 Nginx 会把用户端 `/api/auth/login` 转发为网关 `/auth/login`,把管理端 `/api/admin/auth/login` 转发为网关 `/admin/auth/login`。 +### 前端接口 502 + +如果 `curl http://127.0.0.1:${WEB_HTTP_PORT:-18180}/health` 正常,但 `/api/...` 返回 `502 Bad Gateway`,先看前端 Nginx 日志: + +```bash +docker logs --tail 120 haovp-frontend-web +``` + +如果出现 `connect() failed (111: Connection refused) while connecting to upstream`,且 upstream 指向旧的 Docker 内网 IP,说明前端 Nginx 缓存了重建前的 gateway 地址。新版 `nginx.1panel.conf` 已使用 Docker DNS 动态解析;同步配置并重建前端,临时恢复可先执行: + +```bash +docker restart haovp-frontend-web +``` + +如果直连网关仍是 404: + +```bash +curl -i "http://127.0.0.1:${GATEWAY_HTTP_PORT:-9000}/recommend/home?page=1&size=12" +``` + +返回 `No static resource recommend/home` 时,表示 gateway 没加载到 `/recommend/**` 路由,优先按上面的 `video-gateway.yaml` 检查 Nacos 配置。 + ### 图片或视频无法访问 前端使用: diff --git a/backend/docker-compose.1panel.yml b/backend/docker-compose.1panel.yml index 0ddcdd2..735f499 100644 --- a/backend/docker-compose.1panel.yml +++ b/backend/docker-compose.1panel.yml @@ -8,10 +8,16 @@ x-service-env: &service-env SPRING_PROFILES_ACTIVE: ha NACOS_HOST: nacos NACOS_PORT: 8848 + NACOS_NAMESPACE: ${NACOS_NAMESPACE:-} + NACOS_GROUP: ${NACOS_GROUP:-DEFAULT_GROUP} NACOS_USERNAME: ${NACOS_USERNAME:-nacos} NACOS_PASSWORD: ${NACOS_PASSWORD:-nacos} + SPRING_CLOUD_NACOS_DISCOVERY_NAMESPACE: ${NACOS_NAMESPACE:-} + SPRING_CLOUD_NACOS_DISCOVERY_GROUP: ${NACOS_GROUP:-DEFAULT_GROUP} SPRING_CLOUD_NACOS_DISCOVERY_USERNAME: ${NACOS_USERNAME:-nacos} SPRING_CLOUD_NACOS_DISCOVERY_PASSWORD: ${NACOS_PASSWORD:-nacos} + SPRING_CLOUD_NACOS_CONFIG_NAMESPACE: ${NACOS_NAMESPACE:-} + SPRING_CLOUD_NACOS_CONFIG_GROUP: ${NACOS_GROUP:-DEFAULT_GROUP} SPRING_CLOUD_NACOS_CONFIG_USERNAME: ${NACOS_USERNAME:-nacos} SPRING_CLOUD_NACOS_CONFIG_PASSWORD: ${NACOS_PASSWORD:-nacos} MYSQL_HOST: mysql @@ -103,6 +109,18 @@ services: MYSQL_SERVICE_DB_PARAM: characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true JVM_XMS: ${NACOS_JVM_XMS:-512m} JVM_XMX: ${NACOS_JVM_XMX:-512m} + JAVA_OPT_EXT: >- + --nacos.plugin.datasource-dialect.type=mysql + --spring.datasource.platform=mysql + --spring.sql.init.platform=mysql + --nacos.plugin.datasource.db.num=1 + --nacos.plugin.datasource.db.url.0=jdbc:mysql://mysql:3306/nacos_config?characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true + --nacos.plugin.datasource.db.user=root + --nacos.plugin.datasource.db.password=${MYSQL_ROOT_PASSWORD} + --db.num=1 + --db.url.0=jdbc:mysql://mysql:3306/nacos_config?characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true + --db.user.0=root + --db.password.0=${MYSQL_ROOT_PASSWORD} NACOS_AUTH_ENABLE: "true" NACOS_AUTH_TOKEN: ${NACOS_AUTH_TOKEN} NACOS_AUTH_IDENTITY_KEY: serverIdentity @@ -115,6 +133,30 @@ services: depends_on: mysql: condition: service_healthy + nacos-init: + condition: service_completed_successfully + networks: + - haovp-network + + nacos-init: + image: mysql:8.0 + container_name: haovp-nacos-init + restart: "no" + depends_on: + mysql: + condition: service_healthy + environment: + <<: *common-env + MYSQL_HOST: mysql + MYSQL_PORT: 3306 + MYSQL_DB: nacos_config + MYSQL_USER: root + MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} + volumes: + - ./sql/nacos-schema.sql:/init-sql/nacos-schema.sql:ro + - ./sql/nacos-config-init.sql:/init-sql/nacos-config-init.sql:ro + - ./sql/nacos-init.sh:/init-sql/nacos-init.sh:ro + entrypoint: ["/bin/sh", "/init-sql/nacos-init.sh"] networks: - haovp-network diff --git a/backend/sql/nacos-config-init.sql b/backend/sql/nacos-config-init.sql index d382ad6..f2d5678 100644 --- a/backend/sql/nacos-config-init.sql +++ b/backend/sql/nacos-config-init.sql @@ -158,7 +158,7 @@ spring: scg: fallback: mode: response - response-body: '{"code":500,"message":"服务不可用,请稍后再试"}' + response-body: ''{"code":500,"message":"服务不可用,请稍后再试"}'' gateway: ignore: diff --git a/backend/sql/nacos-init.sh b/backend/sql/nacos-init.sh new file mode 100644 index 0000000..e5ce285 --- /dev/null +++ b/backend/sql/nacos-init.sh @@ -0,0 +1,33 @@ +#!/bin/sh +set -eu + +: "${MYSQL_ROOT_PASSWORD:?MYSQL_ROOT_PASSWORD is required}" + +MYSQL_HOST="${MYSQL_HOST:-mysql}" +MYSQL_PORT="${MYSQL_PORT:-3306}" +MYSQL_DB="${MYSQL_DB:-nacos_config}" +MYSQL_USER="${MYSQL_USER:-root}" + +export MYSQL_PWD="$MYSQL_ROOT_PASSWORD" + +mysql_exec() { + mysql --default-character-set=utf8mb4 -h "$MYSQL_HOST" -P "$MYSQL_PORT" -u"$MYSQL_USER" "$@" +} + +echo "Preparing Nacos database ${MYSQL_DB}..." +mysql_exec -e "CREATE DATABASE IF NOT EXISTS \`${MYSQL_DB}\` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" +mysql_exec "$MYSQL_DB" < /init-sql/nacos-schema.sql + +if row_count="$(mysql_exec -N -s -e "SELECT COUNT(*) FROM \`${MYSQL_DB}\`.config_info;" 2>/dev/null)"; then + : +else + row_count=0 +fi + +if [ "${row_count}" -eq 0 ]; then + echo "Seeding default Nacos configs..." + mysql_exec "$MYSQL_DB" < /init-sql/nacos-config-init.sql +else + echo "Nacos config already exists, skip seeding." +fi + diff --git a/backend/video-admin/src/main/resources/application-prod.yml b/backend/video-admin/src/main/resources/application-prod.yml index bf4ad7a..189c2dd 100644 --- a/backend/video-admin/src/main/resources/application-prod.yml +++ b/backend/video-admin/src/main/resources/application-prod.yml @@ -8,7 +8,7 @@ spring: nacos: discovery: server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848} - namespace: public + namespace: ${NACOS_NAMESPACE:} group: DEFAULT_GROUP sentinel: transport: diff --git a/backend/video-admin/src/main/resources/bootstrap.yml b/backend/video-admin/src/main/resources/bootstrap.yml index 955ee40..704709e 100644 --- a/backend/video-admin/src/main/resources/bootstrap.yml +++ b/backend/video-admin/src/main/resources/bootstrap.yml @@ -5,7 +5,7 @@ spring: nacos: discovery: server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848} - namespace: public + namespace: ${NACOS_NAMESPACE:} group: DEFAULT_GROUP username: ${NACOS_USERNAME:nacos} password: ${NACOS_PASSWORD:nacos} @@ -16,8 +16,8 @@ spring: register-enabled: true config: server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848} - namespace: public + namespace: ${NACOS_NAMESPACE:} group: DEFAULT_GROUP username: ${NACOS_USERNAME:nacos} password: ${NACOS_PASSWORD:nacos} - file-extension: yaml \ No newline at end of file + file-extension: yaml diff --git a/backend/video-auth/src/main/resources/application-prod.yml b/backend/video-auth/src/main/resources/application-prod.yml index 91447cd..3545021 100644 --- a/backend/video-auth/src/main/resources/application-prod.yml +++ b/backend/video-auth/src/main/resources/application-prod.yml @@ -8,7 +8,7 @@ spring: nacos: discovery: server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848} - namespace: public + namespace: ${NACOS_NAMESPACE:} group: DEFAULT_GROUP sentinel: transport: diff --git a/backend/video-auth/src/main/resources/bootstrap.yml b/backend/video-auth/src/main/resources/bootstrap.yml index 2826c2d..5f0661e 100644 --- a/backend/video-auth/src/main/resources/bootstrap.yml +++ b/backend/video-auth/src/main/resources/bootstrap.yml @@ -5,7 +5,7 @@ spring: nacos: discovery: server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848} - namespace: public + namespace: ${NACOS_NAMESPACE:} group: DEFAULT_GROUP username: ${NACOS_USERNAME:nacos} password: ${NACOS_PASSWORD:nacos} @@ -16,8 +16,8 @@ spring: register-enabled: true config: server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848} - namespace: public + namespace: ${NACOS_NAMESPACE:} group: DEFAULT_GROUP username: ${NACOS_USERNAME:nacos} password: ${NACOS_PASSWORD:nacos} - file-extension: yaml \ No newline at end of file + file-extension: yaml diff --git a/backend/video-comment/src/main/resources/application-prod.yml b/backend/video-comment/src/main/resources/application-prod.yml index f4424aa..18c28da 100644 --- a/backend/video-comment/src/main/resources/application-prod.yml +++ b/backend/video-comment/src/main/resources/application-prod.yml @@ -8,7 +8,7 @@ spring: nacos: discovery: server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848} - namespace: public + namespace: ${NACOS_NAMESPACE:} group: DEFAULT_GROUP sentinel: transport: diff --git a/backend/video-comment/src/main/resources/bootstrap.yml b/backend/video-comment/src/main/resources/bootstrap.yml index 88167e2..485236a 100644 --- a/backend/video-comment/src/main/resources/bootstrap.yml +++ b/backend/video-comment/src/main/resources/bootstrap.yml @@ -5,7 +5,7 @@ spring: nacos: discovery: server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848} - namespace: public + namespace: ${NACOS_NAMESPACE:} group: DEFAULT_GROUP username: ${NACOS_USERNAME:nacos} password: ${NACOS_PASSWORD:nacos} @@ -16,8 +16,8 @@ spring: register-enabled: true config: server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848} - namespace: public + namespace: ${NACOS_NAMESPACE:} group: DEFAULT_GROUP username: ${NACOS_USERNAME:nacos} password: ${NACOS_PASSWORD:nacos} - file-extension: yaml \ No newline at end of file + file-extension: yaml diff --git a/backend/video-content/src/main/resources/application-prod.yml b/backend/video-content/src/main/resources/application-prod.yml index 028492c..f2b66bd 100644 --- a/backend/video-content/src/main/resources/application-prod.yml +++ b/backend/video-content/src/main/resources/application-prod.yml @@ -8,7 +8,7 @@ spring: nacos: discovery: server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848} - namespace: public + namespace: ${NACOS_NAMESPACE:} group: DEFAULT_GROUP sentinel: transport: diff --git a/backend/video-content/src/main/resources/bootstrap.yml b/backend/video-content/src/main/resources/bootstrap.yml index 8bb879d..a9320b4 100644 --- a/backend/video-content/src/main/resources/bootstrap.yml +++ b/backend/video-content/src/main/resources/bootstrap.yml @@ -5,7 +5,7 @@ spring: nacos: discovery: server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848} - namespace: public + namespace: ${NACOS_NAMESPACE:} group: DEFAULT_GROUP username: ${NACOS_USERNAME:nacos} password: ${NACOS_PASSWORD:nacos} @@ -16,8 +16,8 @@ spring: register-enabled: true config: server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848} - namespace: public + namespace: ${NACOS_NAMESPACE:} group: DEFAULT_GROUP username: ${NACOS_USERNAME:nacos} password: ${NACOS_PASSWORD:nacos} - file-extension: yaml \ No newline at end of file + file-extension: yaml diff --git a/backend/video-gateway/src/main/resources/application-prod.yml b/backend/video-gateway/src/main/resources/application-prod.yml index c96ab60..71778f3 100644 --- a/backend/video-gateway/src/main/resources/application-prod.yml +++ b/backend/video-gateway/src/main/resources/application-prod.yml @@ -14,7 +14,7 @@ spring: nacos: discovery: server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848} - namespace: public + namespace: ${NACOS_NAMESPACE:} group: DEFAULT_GROUP # 移除以下健康检查配置 # heart-beat-interval: 5000 diff --git a/backend/video-gateway/src/main/resources/bootstrap.yml b/backend/video-gateway/src/main/resources/bootstrap.yml index a834b27..46aef86 100644 --- a/backend/video-gateway/src/main/resources/bootstrap.yml +++ b/backend/video-gateway/src/main/resources/bootstrap.yml @@ -5,7 +5,7 @@ spring: nacos: discovery: server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848} - namespace: public + namespace: ${NACOS_NAMESPACE:} group: DEFAULT_GROUP username: ${NACOS_USERNAME:nacos} password: ${NACOS_PASSWORD:nacos} @@ -19,8 +19,8 @@ spring: register-enabled: true config: server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848} - namespace: public + namespace: ${NACOS_NAMESPACE:} group: DEFAULT_GROUP username: ${NACOS_USERNAME:nacos} password: ${NACOS_PASSWORD:nacos} - file-extension: yaml \ No newline at end of file + file-extension: yaml diff --git a/backend/video-recommend/src/main/resources/application-prod.yml b/backend/video-recommend/src/main/resources/application-prod.yml index 882edde..670bd93 100644 --- a/backend/video-recommend/src/main/resources/application-prod.yml +++ b/backend/video-recommend/src/main/resources/application-prod.yml @@ -8,7 +8,7 @@ spring: nacos: discovery: server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848} - namespace: public + namespace: ${NACOS_NAMESPACE:} group: DEFAULT_GROUP sentinel: transport: diff --git a/backend/video-recommend/src/main/resources/bootstrap.yml b/backend/video-recommend/src/main/resources/bootstrap.yml index 483a29c..00abed1 100644 --- a/backend/video-recommend/src/main/resources/bootstrap.yml +++ b/backend/video-recommend/src/main/resources/bootstrap.yml @@ -5,7 +5,7 @@ spring: nacos: discovery: server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848} - namespace: public + namespace: ${NACOS_NAMESPACE:} group: DEFAULT_GROUP username: ${NACOS_USERNAME:nacos} password: ${NACOS_PASSWORD:nacos} @@ -16,8 +16,8 @@ spring: register-enabled: true config: server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848} - namespace: public + namespace: ${NACOS_NAMESPACE:} group: DEFAULT_GROUP username: ${NACOS_USERNAME:nacos} password: ${NACOS_PASSWORD:nacos} - file-extension: yaml \ No newline at end of file + file-extension: yaml diff --git a/backend/video-recommend/src/main/resources/mapper/RecommendUserBehaviorMapper.xml b/backend/video-recommend/src/main/resources/mapper/RecommendUserBehaviorMapper.xml index b17f2b7..924bf06 100644 --- a/backend/video-recommend/src/main/resources/mapper/RecommendUserBehaviorMapper.xml +++ b/backend/video-recommend/src/main/resources/mapper/RecommendUserBehaviorMapper.xml @@ -48,16 +48,16 @@ video_id as videoId, SUM( CASE - - WHEN behavior_type = #{entry.key} THEN behavior_weight * #{entry.value} + + WHEN behavior_type = #{behaviorType} THEN behavior_weight * #{weight} ELSE behavior_weight END ) as score FROM recommend_user_behavior - WHERE + WHERE 1 = 1 - create_time >= #{startTime} + AND create_time >= #{startTime} AND behavior_type IN @@ -69,4 +69,4 @@ ORDER BY score DESC LIMIT #{limit} - \ No newline at end of file + diff --git a/backend/video-user/src/main/resources/application-prod.yml b/backend/video-user/src/main/resources/application-prod.yml index e66a64f..c54d5b5 100644 --- a/backend/video-user/src/main/resources/application-prod.yml +++ b/backend/video-user/src/main/resources/application-prod.yml @@ -8,7 +8,7 @@ spring: nacos: discovery: server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848} - namespace: public + namespace: ${NACOS_NAMESPACE:} group: DEFAULT_GROUP sentinel: transport: diff --git a/backend/video-user/src/main/resources/bootstrap.yml b/backend/video-user/src/main/resources/bootstrap.yml index d775fe2..76de1ae 100644 --- a/backend/video-user/src/main/resources/bootstrap.yml +++ b/backend/video-user/src/main/resources/bootstrap.yml @@ -5,7 +5,7 @@ spring: nacos: discovery: server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848} - namespace: public + namespace: ${NACOS_NAMESPACE:} group: DEFAULT_GROUP username: ${NACOS_USERNAME:nacos} password: ${NACOS_PASSWORD:nacos} @@ -16,8 +16,8 @@ spring: register-enabled: true config: server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848} - namespace: public + namespace: ${NACOS_NAMESPACE:} group: DEFAULT_GROUP username: ${NACOS_USERNAME:nacos} password: ${NACOS_PASSWORD:nacos} - file-extension: yaml \ No newline at end of file + file-extension: yaml diff --git a/frontend/video-frontend-admin/deploy/nginx.1panel.conf b/frontend/video-frontend-admin/deploy/nginx.1panel.conf index 578728d..92c6473 100644 --- a/frontend/video-frontend-admin/deploy/nginx.1panel.conf +++ b/frontend/video-frontend-admin/deploy/nginx.1panel.conf @@ -5,6 +5,8 @@ server { root /usr/share/nginx/html; index index.html; + resolver 127.0.0.11 valid=10s ipv6=off; + client_max_body_size 1024m; gzip on; @@ -15,8 +17,14 @@ server { try_files $uri $uri/ /index.html; } + location ~ /\.(?!well-known(?:/|$)) { + return 404; + } + location /api/admin/ { - proxy_pass http://video-gateway:9000/admin/; + set $gateway_upstream video-gateway:9000; + rewrite ^/api/admin/(.*)$ /admin/$1 break; + proxy_pass http://$gateway_upstream; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; @@ -28,7 +36,9 @@ server { } location /media/ { - proxy_pass http://minio:9000/; + set $minio_upstream minio:9000; + rewrite ^/media/(.*)$ /$1 break; + proxy_pass http://$minio_upstream; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; diff --git a/frontend/video-frontend-web/deploy/nginx.1panel.conf b/frontend/video-frontend-web/deploy/nginx.1panel.conf index 5b74561..7a88082 100644 --- a/frontend/video-frontend-web/deploy/nginx.1panel.conf +++ b/frontend/video-frontend-web/deploy/nginx.1panel.conf @@ -5,6 +5,8 @@ server { root /usr/share/nginx/html; index index.html; + resolver 127.0.0.11 valid=10s ipv6=off; + client_max_body_size 1024m; gzip on; @@ -15,8 +17,14 @@ server { try_files $uri $uri/ /index.html; } + location ~ /\.(?!well-known(?:/|$)) { + return 404; + } + location /api/ { - proxy_pass http://video-gateway:9000/; + set $gateway_upstream video-gateway:9000; + rewrite ^/api/(.*)$ /$1 break; + proxy_pass http://$gateway_upstream; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; @@ -28,7 +36,9 @@ server { } location /media/ { - proxy_pass http://minio:9000/; + set $minio_upstream minio:9000; + rewrite ^/media/(.*)$ /$1 break; + proxy_pass http://$minio_upstream; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr;