You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

单服务器同域名443端口下按路径部署前后端配置方案

结论

完全可以在同一台服务器、同一个域名的443端口下通过路径规则区分前后端流量,这也是解决非标准端口被用户侧防火墙拦截的通用方案,调整后不需要再对外暴露8443端口。

配置修改要点
  • Nginx的location匹配遵循最长前缀优先规则,后端路径规则必须放在前端根路径规则前面,避免请求被前端路由拦截。
  • 如果后端Django路由没有统一添加/backend前缀,代理时需要重写URI剥离前缀,否则后端收到的请求路径携带/backend会返回404。
  • 后端静态资源路径需要和接口路径统一前缀,避免和前端静态资源冲突。
  • 配置修改后先校验语法再重载服务,避免配置错误导致站点不可用。
完整修改后配置

你可以直接将原有443端口的server块替换为如下内容,原有8443、8000端口的server块可以直接删除,同时关闭服务器安全组/防火墙对应端口的入站规则:

# 80端口跳转规则
server {
  listen 80;
  server_name website.com app.website.com;
  return 301 https://$host$request_uri;
}

server {
  listen 443 ssl default_server;
  listen [::]:443 ssl default_server;
  ssl_certificate     /etc/ssl/app.website.com_ssl_certificate.cer;
  ssl_certificate_key /etc/ssl/app.website.com_private_key.key;

  root /home/website/dist;
  index index.html index.htm index.nginx-debian.html;
  server_name app.website.com;

  # 后端接口代理
  location /backend/ {
    # 若Django路由本身已添加/backend前缀,注释掉下一行重写规则
    rewrite ^/backend/(.*)$ /$1 break;
    include proxy_params;
    proxy_pass http://unix:/run/gunicorn.sock;
  }

  # 后端静态资源代理
  location /backend/static/ {
    alias /home/website/backend/static/;
    expires 30d;
    add_header Cache-Control "public, immutable";
  }

  location = /favicon.ico { 
    access_log off; 
    log_not_found off;
  }

  # 前端路由规则
  location / {
    try_files $uri $uri/ /index.html;
    # 前端禁用缓存规则保持原有逻辑
    add_header Last-Modified $date_gmt;
    add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
    if_modified_since off;
    expires off;
    etag off;
  }
}
后续适配操作
  1. 执行nginx -t检查配置语法,确认返回success后执行systemctl reload nginx重载配置生效。
  2. 将前端代码中所有写死的https://app.website.com:8443接口地址,统一替换为/backend相对路径。
  3. 若Django配置了CSRF_TRUSTED_ORIGINS、CORS_ALLOWED_ORIGINS类跨域规则,由于现在前后端同域名同端口不存在跨域,可按需清理冗余配置。
  4. 若Django存在自动生成绝对URL的场景(如分页、文件下载链接),可在settings.py中添加FORCE_SCRIPT_NAME = '/backend',确保生成的链接携带正确前缀。

内容的提问来源于stack exchange,提问作者Dmitry Kotikov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 01:03:34