2b327cd365
Deploy / build-linux-web (push) Successful in 49s
Deploy / build-windows (push) Successful in 1m45s
Deploy / build-macos (push) Successful in 1m24s
Deploy / build-android (push) Successful in 58s
Deploy / build-ios (push) Failing after 10m6s
Deploy / release-deploy (push) Has been skipped
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
88 lines
2.7 KiB
Plaintext
88 lines
2.7 KiB
Plaintext
server {
|
||
listen 127.0.0.1:8445 ssl;
|
||
server_name jiu.51yanmei.com;
|
||
|
||
ssl_certificate /etc/letsencrypt/live/jiu.51yanmei.com/fullchain.pem;
|
||
ssl_certificate_key /etc/letsencrypt/live/jiu.51yanmei.com/privkey.pem;
|
||
ssl_protocols TLSv1.2 TLSv1.3;
|
||
ssl_ciphers HIGH:!aNULL:!MD5;
|
||
|
||
client_max_body_size 20m;
|
||
|
||
# 商品图片静态文件
|
||
location ^~ /images/ {
|
||
alias /opt/jiu/images/;
|
||
expires 30d;
|
||
add_header Cache-Control "public, immutable";
|
||
}
|
||
|
||
# 文件导入接口(超时更长)
|
||
location ~ ^/api/v1/import/ {
|
||
proxy_pass http://127.0.0.1:8080;
|
||
proxy_set_header Host $host;
|
||
proxy_set_header X-Real-IP $remote_addr;
|
||
proxy_read_timeout 300s;
|
||
}
|
||
|
||
# API 反向代理
|
||
location ~ ^/(api|health|version) {
|
||
proxy_pass http://127.0.0.1:8080;
|
||
proxy_set_header Host $host;
|
||
proxy_set_header X-Real-IP $remote_addr;
|
||
proxy_read_timeout 30s;
|
||
}
|
||
|
||
# Flutter 管理端(仅 /app/ 前缀,不污染根路径)
|
||
location /app/ {
|
||
alias /opt/jiu/web/;
|
||
index index.html;
|
||
try_files $uri $uri/ /app/index.html;
|
||
}
|
||
|
||
# index.html 不缓存,确保每次发版后浏览器加载最新版
|
||
location = /app/index.html {
|
||
alias /opt/jiu/web/index.html;
|
||
add_header Cache-Control "no-cache, no-store, must-revalidate";
|
||
add_header Pragma "no-cache";
|
||
expires 0;
|
||
}
|
||
|
||
# 公开商品详情页(扫码跳转)→ 后端注入 OG 标签后返回 Flutter index.html
|
||
location ~ ^/product/ {
|
||
proxy_pass http://127.0.0.1:8080;
|
||
proxy_set_header Host $host;
|
||
proxy_set_header X-Real-IP $remote_addr;
|
||
proxy_read_timeout 30s;
|
||
}
|
||
|
||
# Flutter 路由会把 /product/:id 重写为 /app/product/:id(base-href=/app/)
|
||
# 分享此 URL 时微信爬虫也需要 OG 标签 → 去掉 /app 前缀后转发后端
|
||
location ~ ^/app/product/ {
|
||
rewrite ^/app(/product/.+)$ $1 break;
|
||
proxy_pass http://127.0.0.1:8080;
|
||
proxy_set_header Host $host;
|
||
proxy_set_header X-Real-IP $remote_addr;
|
||
proxy_read_timeout 30s;
|
||
}
|
||
|
||
# 桌面客户端安装包下载(Windows .exe / macOS .zip)
|
||
location /downloads/ {
|
||
alias /opt/jiu/downloads/;
|
||
add_header Content-Disposition "attachment";
|
||
add_header Cache-Control "no-cache";
|
||
autoindex off;
|
||
}
|
||
|
||
# 营销站点兜底(根路径及所有其他路径)
|
||
location / {
|
||
root /opt/jiu/marketing;
|
||
try_files $uri $uri.html $uri/index.html /index.html;
|
||
}
|
||
}
|
||
|
||
server {
|
||
listen 80;
|
||
server_name jiu.51yanmei.com;
|
||
return 301 https://$host$request_uri;
|
||
}
|