's'
This commit is contained in:
@@ -1,2 +1,2 @@
|
||||
PAYMENT_API_URL=https://api.nomadyt.com
|
||||
PAYMENT_API_URL=https://salonapi.hackrobot.cn
|
||||
PAYMENT_JOIN_AMOUNT=2900
|
||||
|
||||
@@ -13,9 +13,9 @@
|
||||
|
||||
### 前端 (salon)
|
||||
|
||||
- `PAYMENT_API_URL`: salonapi 公网地址,**生产环境必填**(如 `https://api.nomadyt.com`)
|
||||
- `ROOT_DOMAIN`: 根域名,未设 PAYMENT_API_URL 时用于推导 `https://api.${ROOT_DOMAIN}`,默认 `nomadyt.com`
|
||||
- `NEXT_PUBLIC_SITE_URL`: 前端站点地址,线上 `https://nomadyt.com`
|
||||
- `PAYMENT_API_URL`: salonapi 公网地址,**生产环境必填**(如 `https://salonapi.hackrobot.cn`)
|
||||
- `ROOT_DOMAIN`: 根域名(兼容变量),默认 `hackrobot.cn`;生产 salonapi 主机为 `salonapi.hackrobot.cn`
|
||||
- `NEXT_PUBLIC_SITE_URL`: 前端站点地址,线上 `https://salon.hackrobot.cn`
|
||||
- `PAYJSAPI_PORT`: 开发时 salonapi 端口,默认 `8007`
|
||||
- `ZPAY_PID` / `ZPAY_KEY`、`XORPAY_AID` / `XORPAY_SECRET`:支付平台凭证,与 salonapi 一致。用于 pay/status 兜底直接查询,**本地无回调时依赖此检测支付**
|
||||
- `NEXT_PUBLIC_POCKETBASE_URL` / `POCKETBASE_URL`: PocketBase 地址
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
const isDev = process.env.NODE_ENV === "development";
|
||||
|
||||
/** 前端站点地址。线上 nomadyt.com,开发 localhost:3002 */
|
||||
/** 前端站点地址。线上 salon.hackrobot.cn,开发 localhost:3002 */
|
||||
export const SITE_URL =
|
||||
process.env.NEXT_PUBLIC_SITE_URL ||
|
||||
(isDev ? "http://localhost:3002" : "https://nomadyt.com");
|
||||
(isDev ? "http://localhost:3002" : "https://salon.hackrobot.cn");
|
||||
|
||||
@@ -1,25 +1,28 @@
|
||||
/**
|
||||
* 域名配置
|
||||
* - salon 前端线上: nomadyt.com
|
||||
* - salonapi 后端线上: api.nomadyt.com(join、支付等)
|
||||
* 域名配置(腾讯云生产)
|
||||
* - 前端: https://salon.hackrobot.cn
|
||||
* - salonapi: https://salonapi.hackrobot.cn(join、支付等)
|
||||
*/
|
||||
|
||||
const isDev = process.env.NODE_ENV === "development";
|
||||
|
||||
/** 根域名。前端 nomadyt.com,后端 api.nomadyt.com */
|
||||
export const ROOT_DOMAIN =
|
||||
process.env.ROOT_DOMAIN || process.env.NEXT_PUBLIC_ROOT_DOMAIN || "nomadyt.com";
|
||||
/** 生产环境 salonapi 主机(非 api.根域名 模式) */
|
||||
const DEFAULT_PROD_PAYMENT_API_HOST = "salonapi.hackrobot.cn";
|
||||
|
||||
/** salonapi 默认地址。开发连本地 8007,生产连 api.nomadyt.com */
|
||||
/** 兼容旧逻辑:未单独设 PAYMENT_API_URL 时用于文档/兜底 */
|
||||
export const ROOT_DOMAIN =
|
||||
process.env.ROOT_DOMAIN || process.env.NEXT_PUBLIC_ROOT_DOMAIN || "hackrobot.cn";
|
||||
|
||||
/** salonapi 默认地址。开发连本地 8007,生产连 salonapi.hackrobot.cn */
|
||||
export const DEFAULT_PAYMENT_API_URL = isDev
|
||||
? "http://127.0.0.1:8007"
|
||||
: `https://api.${ROOT_DOMAIN}`;
|
||||
: `https://${DEFAULT_PROD_PAYMENT_API_HOST}`;
|
||||
|
||||
/** 解析 salonapi 地址(api.nomadyt.com) */
|
||||
/** 解析 salonapi 公网地址 */
|
||||
export function resolvePaymentApiUrl(): string {
|
||||
const url = process.env.PAYMENT_API_URL || DEFAULT_PAYMENT_API_URL;
|
||||
if (!isDev && /^(https?:\/\/)?(127\.0\.0\.1|localhost)(:\d+)?(\/|$)/i.test(url)) {
|
||||
return `https://api.${ROOT_DOMAIN}`;
|
||||
return `https://${DEFAULT_PROD_PAYMENT_API_HOST}`;
|
||||
}
|
||||
return url.replace(/\/$/, "");
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/**
|
||||
* salon 服务配置 - PocketBase、支付
|
||||
* 前端 nomadyt.com,后端 salonapi api.nomadyt.com
|
||||
* 前端 salon.hackrobot.cn,后端 salonapi.hackrobot.cn
|
||||
*/
|
||||
|
||||
import { resolvePaymentApiUrl } from "./domain.config";
|
||||
|
||||
53
deploy/nginx.hackrobot.cn.conf
Normal file
53
deploy/nginx.hackrobot.cn.conf
Normal file
@@ -0,0 +1,53 @@
|
||||
# 腾讯云:将 salon.hackrobot.cn、salonapi.hackrobot.cn 解析到本机公网 IP 后,
|
||||
# 复制到 /etc/nginx/sites-available/ 并 ln -s 到 sites-enabled,再 nginx -t && systemctl reload nginx。
|
||||
# 需先申请 SSL(certbot 或腾讯云 SSL 证书),把证书路径替换为实际路径。
|
||||
|
||||
# ---------- salon 前端(Next.js 建议 Node 监听 127.0.0.1:3002,由 Nginx 反代)----------
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
server_name salon.hackrobot.cn;
|
||||
|
||||
ssl_certificate /etc/nginx/ssl/salon.hackrobot.cn/fullchain.pem;
|
||||
ssl_certificate_key /etc/nginx/ssl/salon.hackrobot.cn/privkey.pem;
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:3002;
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
server_name salon.hackrobot.cn;
|
||||
return 301 https://$host$request_uri;
|
||||
}
|
||||
|
||||
# ---------- salonapi 后端(uvicorn 建议 127.0.0.1:8007)----------
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
server_name salonapi.hackrobot.cn;
|
||||
|
||||
ssl_certificate /etc/nginx/ssl/salonapi.hackrobot.cn/fullchain.pem;
|
||||
ssl_certificate_key /etc/nginx/ssl/salonapi.hackrobot.cn/privkey.pem;
|
||||
|
||||
client_max_body_size 50m;
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:8007;
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
server_name salonapi.hackrobot.cn;
|
||||
return 301 https://$host$request_uri;
|
||||
}
|
||||
Reference in New Issue
Block a user