diff --git a/.env.example b/.env.example index 9dd71d2..3604e45 100644 --- a/.env.example +++ b/.env.example @@ -45,14 +45,12 @@ CLIENTS_NGINX_IMAGE=nginx:1.27-alpine CLIENTS_INTERNAL_PORT=80 VITE_CLIENT_H5_API_BASE=/api/v1 VITE_CLIENT_H5_SERVER_ORIGIN= -VITE_CLIENT_NATIVE_API_BASE=http://10.0.10.11:8000/api/v1 -VITE_CLIENT_NATIVE_SERVER_ORIGIN=http://10.0.10.11:8000 +VITE_CLIENT_NATIVE_API_BASE=/api/v1 +VITE_CLIENT_NATIVE_SERVER_ORIGIN= # Nginx host ports NGINX_IMAGE=nginx:1.27-alpine NGINX_CLIENT_INTERNAL_PORT=80 NGINX_ADMIN_INTERNAL_PORT=81 -NGINX_SERVER_INTERNAL_PORT=82 CLIENT_WEB_PORT=5173 ADMIN_WEB_PORT=5174 -SERVER_WEB_PORT=8000 diff --git a/admin-web/Dockerfile b/admin-web/Dockerfile index 548b0ce..d63f211 100644 --- a/admin-web/Dockerfile +++ b/admin-web/Dockerfile @@ -16,7 +16,7 @@ RUN npm run build FROM ${ADMIN_WEB_NGINX_IMAGE} -COPY nginx.conf /etc/nginx/conf.d/default.conf +COPY nginx.conf /etc/nginx/templates/default.conf.template COPY --from=build /app/dist /usr/share/nginx/html EXPOSE 80 diff --git a/admin-web/nginx.conf b/admin-web/nginx.conf index 84a540f..74d00c0 100644 --- a/admin-web/nginx.conf +++ b/admin-web/nginx.conf @@ -1,12 +1,12 @@ server { - listen 80; + listen ${ADMIN_WEB_INTERNAL_PORT}; server_name _; root /usr/share/nginx/html; index index.html; location /api/ { - proxy_pass http://server:8000/api/; + proxy_pass http://server:${SERVER_INTERNAL_PORT}/api/; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; @@ -15,11 +15,38 @@ server { } location /uploads/ { - proxy_pass http://server:8000/uploads/; + proxy_pass http://server:${SERVER_INTERNAL_PORT}/uploads/; proxy_http_version 1.1; proxy_set_header Host $host; } + location = /docs { + proxy_pass http://server:${SERVER_INTERNAL_PORT}/docs; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + location = /redoc { + proxy_pass http://server:${SERVER_INTERNAL_PORT}/redoc; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + location = /openapi.json { + proxy_pass http://server:${SERVER_INTERNAL_PORT}/openapi.json; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + location / { try_files $uri $uri/ /index.html; } diff --git a/admin-web/src/composables/admin-api.ts b/admin-web/src/composables/admin-api.ts index 8c22af9..1bbbc0b 100644 --- a/admin-web/src/composables/admin-api.ts +++ b/admin-web/src/composables/admin-api.ts @@ -2,7 +2,7 @@ import { clearAdminToken, getAdminToken, setAdminToken, setAdminUser } from './a const API_BASE = import.meta.env.VITE_API_BASE - || (import.meta.env.DEV ? 'http://127.0.0.1:8000/api/v1' : '/api/v1') + || '/api/v1' type RequestError = Error & { status?: number } diff --git a/clients/Dockerfile b/clients/Dockerfile index 8676509..4922c07 100644 --- a/clients/Dockerfile +++ b/clients/Dockerfile @@ -24,7 +24,7 @@ RUN npm run build:h5 FROM ${CLIENTS_NGINX_IMAGE} -COPY nginx.conf /etc/nginx/conf.d/default.conf +COPY nginx.conf /etc/nginx/templates/default.conf.template COPY --from=build /app/dist/build/h5 /usr/share/nginx/html EXPOSE 80 diff --git a/clients/nginx.conf b/clients/nginx.conf index 84a540f..1a3884c 100644 --- a/clients/nginx.conf +++ b/clients/nginx.conf @@ -1,12 +1,12 @@ server { - listen 80; + listen ${CLIENTS_INTERNAL_PORT}; server_name _; root /usr/share/nginx/html; index index.html; location /api/ { - proxy_pass http://server:8000/api/; + proxy_pass http://server:${SERVER_INTERNAL_PORT}/api/; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; @@ -15,11 +15,38 @@ server { } location /uploads/ { - proxy_pass http://server:8000/uploads/; + proxy_pass http://server:${SERVER_INTERNAL_PORT}/uploads/; proxy_http_version 1.1; proxy_set_header Host $host; } + location = /docs { + proxy_pass http://server:${SERVER_INTERNAL_PORT}/docs; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + location = /redoc { + proxy_pass http://server:${SERVER_INTERNAL_PORT}/redoc; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + location = /openapi.json { + proxy_pass http://server:${SERVER_INTERNAL_PORT}/openapi.json; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + location / { try_files $uri $uri/ /index.html; } diff --git a/clients/utils/config.js b/clients/utils/config.js index aaa3060..555b6bf 100644 --- a/clients/utils/config.js +++ b/clients/utils/config.js @@ -1,14 +1,12 @@ // #ifdef H5 const API_BASE = import.meta.env.VITE_CLIENT_H5_API_BASE || "/api/v1"; -const SERVER_ORIGIN = - import.meta.env.VITE_CLIENT_H5_SERVER_ORIGIN || window.location.origin; +const SERVER_ORIGIN = import.meta.env.VITE_CLIENT_H5_SERVER_ORIGIN || ""; // #endif // #ifndef H5 const API_BASE = - import.meta.env.VITE_CLIENT_NATIVE_API_BASE || "http://10.0.10.11:8000/api/v1"; -const SERVER_ORIGIN = - import.meta.env.VITE_CLIENT_NATIVE_SERVER_ORIGIN || "http://10.0.10.11:8000"; + import.meta.env.VITE_CLIENT_NATIVE_API_BASE || "/api/v1"; +const SERVER_ORIGIN = import.meta.env.VITE_CLIENT_NATIVE_SERVER_ORIGIN || ""; // #endif export { API_BASE, SERVER_ORIGIN }; diff --git a/docker-compose.yml b/docker-compose.yml index 6c0b994..aca3130 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -118,6 +118,9 @@ services: ADMIN_WEB_NGINX_IMAGE: "${ADMIN_WEB_NGINX_IMAGE}" VITE_API_BASE: "${VITE_API_BASE}" container_name: ciyuan-admin-web + environment: + ADMIN_WEB_INTERNAL_PORT: "${ADMIN_WEB_INTERNAL_PORT}" + SERVER_INTERNAL_PORT: "${SERVER_INTERNAL_PORT}" expose: - "${ADMIN_WEB_INTERNAL_PORT}" depends_on: @@ -138,6 +141,9 @@ services: VITE_CLIENT_NATIVE_API_BASE: "${VITE_CLIENT_NATIVE_API_BASE}" VITE_CLIENT_NATIVE_SERVER_ORIGIN: "${VITE_CLIENT_NATIVE_SERVER_ORIGIN}" container_name: ciyuan-clients + environment: + CLIENTS_INTERNAL_PORT: "${CLIENTS_INTERNAL_PORT}" + SERVER_INTERNAL_PORT: "${SERVER_INTERNAL_PORT}" expose: - "${CLIENTS_INTERNAL_PORT}" depends_on: @@ -153,14 +159,11 @@ services: environment: NGINX_CLIENT_INTERNAL_PORT: "${NGINX_CLIENT_INTERNAL_PORT}" NGINX_ADMIN_INTERNAL_PORT: "${NGINX_ADMIN_INTERNAL_PORT}" - NGINX_SERVER_INTERNAL_PORT: "${NGINX_SERVER_INTERNAL_PORT}" - SERVER_INTERNAL_PORT: "${SERVER_INTERNAL_PORT}" CLIENTS_INTERNAL_PORT: "${CLIENTS_INTERNAL_PORT}" ADMIN_WEB_INTERNAL_PORT: "${ADMIN_WEB_INTERNAL_PORT}" ports: - "${CLIENT_WEB_PORT}:${NGINX_CLIENT_INTERNAL_PORT}" - "${ADMIN_WEB_PORT}:${NGINX_ADMIN_INTERNAL_PORT}" - - "${SERVER_WEB_PORT}:${NGINX_SERVER_INTERNAL_PORT}" volumes: - ./docker/nginx/default.conf:/etc/nginx/templates/default.conf.template:ro depends_on: diff --git a/docker/nginx/default.conf b/docker/nginx/default.conf index 6eff4a9..046af60 100644 --- a/docker/nginx/default.conf +++ b/docker/nginx/default.conf @@ -2,48 +2,6 @@ server { listen ${NGINX_CLIENT_INTERNAL_PORT}; server_name _; - location /api/ { - proxy_pass http://server:${SERVER_INTERNAL_PORT}/api/; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } - - location /uploads/ { - proxy_pass http://server:${SERVER_INTERNAL_PORT}/uploads/; - proxy_http_version 1.1; - proxy_set_header Host $host; - } - - location = /docs { - proxy_pass http://server:${SERVER_INTERNAL_PORT}/docs; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } - - location = /redoc { - proxy_pass http://server:${SERVER_INTERNAL_PORT}/redoc; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } - - location = /openapi.json { - proxy_pass http://server:${SERVER_INTERNAL_PORT}/openapi.json; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } - location / { proxy_pass http://clients:${CLIENTS_INTERNAL_PORT}; proxy_http_version 1.1; @@ -58,48 +16,6 @@ server { listen ${NGINX_ADMIN_INTERNAL_PORT}; server_name _; - location /api/ { - proxy_pass http://server:${SERVER_INTERNAL_PORT}/api/; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } - - location /uploads/ { - proxy_pass http://server:${SERVER_INTERNAL_PORT}/uploads/; - proxy_http_version 1.1; - proxy_set_header Host $host; - } - - location = /docs { - proxy_pass http://server:${SERVER_INTERNAL_PORT}/docs; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } - - location = /redoc { - proxy_pass http://server:${SERVER_INTERNAL_PORT}/redoc; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } - - location = /openapi.json { - proxy_pass http://server:${SERVER_INTERNAL_PORT}/openapi.json; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } - location / { proxy_pass http://admin-web:${ADMIN_WEB_INTERNAL_PORT}; proxy_http_version 1.1; @@ -109,17 +25,3 @@ server { proxy_set_header X-Forwarded-Proto $scheme; } } - -server { - listen ${NGINX_SERVER_INTERNAL_PORT}; - server_name _; - - location / { - proxy_pass http://server:${SERVER_INTERNAL_PORT}; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } -}