988a941b41
Deploy / deploy (push) Successful in 1m16s
- nginx: /app/ → Flutter,/ 兜底 → 营销站,移除零散 location 块 - deploy.yml: 每次部署自动 scp nginx-jiu.conf 到服务器并 nginx -t reload - deploy.yml: Release 附件新增 configs.tar.gz(nginx/systemd/compose 配置) - 删除 .github/workflows/(已全部迁移到 .gitea/) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
50 lines
1.3 KiB
Plaintext
50 lines
1.3 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;
|
||
|
||
# 商品图片静态文件
|
||
location ^~ /images/ {
|
||
alias /opt/jiu/images/;
|
||
expires 30d;
|
||
add_header Cache-Control "public, immutable";
|
||
}
|
||
|
||
# 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;
|
||
}
|
||
|
||
# 扫码页(/scan/<id> → scan.html,JS 从 URL 读取 id)
|
||
location /scan/ {
|
||
root /opt/jiu/marketing;
|
||
try_files /scan.html =404;
|
||
}
|
||
|
||
# 营销站点兜底(根路径及所有其他路径)
|
||
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;
|
||
}
|