请问同一台服务器能同时部署前后端项目并支持https吗?

简介: 一台服务器可同时部署前后端并启用HTTPS:Nginx作为统一入口,处理SSL证书、80→443强制跳转;静态前端走`/`路径,API请求(如`/api/`)反向代理至本地后端(如127.0.0.1:8080),安全高效,无跨域,推荐单域名路径分离方案。

同一台服务器同时部署前后端 + HTTPS

完全可以,一台服务器可以同时跑前端、后端,全部走 HTTPS,常见两种架构:

前端:Vue/React 打包后的静态文件;后端:SpringBoot、Node、Python 等服务

核心思路:用 Nginx(反向代理) 做统一入口,Nginx 处理 SSL/HTTPS 证书,对外只暴露 443 (https)、80 (http) 端口。

  • 80 端口强制跳转 HTTPS
  • 443 接收 HTTPS 请求,根据 URL 路径区分:
    1. /、/index.html → 转发给前端静态资源
    2. /api/* → 反向代理转发给后端程序(后端内部跑本地端口,例如 8080、3000,不对外暴露)

架构简图

用户浏览器 → HTTPS 443 → Nginx
    ├─ 访问 /          → 返回前端静态页面(dist)
    └─ 访问 /api/xxx   → 代理转发到后端服务 127.0.0.1:8080

后端服务监听 127.0.0.1:8080,只允许本机 Nginx 访问,公网访问不到后端端口,更安全。

Nginx 关键配置示例

server {
    listen 80;
    server_name yourdomain.com;
    # http强制跳转https
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name yourdomain.com;

    # SSL证书配置(申请的域名证书crt/key)
    ssl_certificate  /xxx/fullchain.crt;
    ssl_certificate_key /xxx/private.key;

    # 前端静态资源,dist打包目录
    root /data/web/dist;
    index index.html;

    # 前端路由history模式必须配置
    location / {
        try_files $uri $uri/ /index.html;
    }

    # 所有/api开头请求转发后端
    location /api/ {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X‑Real‑IP $remote_addr;
    }
}

两种部署模式对比

模式 1:前后端同域名、不同路径(上面示例,推荐)

  • 访问:https://yourdomain.com 前端页面
  • 接口:https://yourdomain.com/api/user
  • ✅ 无跨域问题,证书只需要 1 份,最简单,一台服务器搞定。

模式 2:不同子域名

  • 前端:https://www.yourdomain.com
  • 后端接口:https://api.yourdomain.com
    Nginx 写两个 server{} 块,共用一份泛域名证书;会有跨域,后端需要配置 CORS。

重要注意点

  1. HTTPS 证书是绑定域名的,服务器本身不需要证书,证书配置在 Nginx;后端服务不需要开启 HTTPS,后端跑 http 即可,Nginx 和后端内网通信。

❌ 不要后端自己也配置 HTTPS,会双层 SSL,没必要。

  1. 防火墙:服务器安全组只开放 80、443,后端端口(8080/3000)不要放行公网。
  2. 前端 history 路由模式,try_files $uri $uri/ /index.html; 必须加,否则刷新页面 404。
  3. 跨域:模式 1 路径区分,浏览器不存在跨域;子域名模式需要后端开启 CORS。
  4. 资源:一台服务器性能足够就可以,前端静态文件消耗资源极低,压力主要来自后端程序。

补充:如果不用 Nginx 行不行?

可以,但不推荐:后端程序(SpringBoot/Node)同时托管静态前端资源 + 内置 SSL 证书。
缺点:

  • 后端程序挂掉,前端页面也打不开;
  • SSL 配置麻烦,性能不如 Nginx;
  • 静态文件由后端程序处理,消耗后端算力。

生产环境标准做法:Nginx 统一承接 HTTPS,分离静态前端、反向代理后端接口。

相关文章
|
1月前
|
安全 Windows
如何取消Windows系统对软件的拦截下载?
本文详解Windows下载安装包被拦截的4种常见情况及安全应对方案:SmartScreen警告、浏览器阻止下载、Defender误删、IE/Edge下载失败等,提供无需关闭防护即可解决的官方推荐方法,兼顾安全与便捷。(238字)
|
存储 Kubernetes Cloud Native
一文搞懂云原生架构
目前,每个 IT 资源或产品都作为服务提供。而且伴随云计算的滚滚浪潮,云原生(CloudNative)的概念应运而生,云原生很火,火得一塌糊涂,都0202年了,如果还不懂云原生,那真的out了。因此,云原生软件开发成为每个企业的关键要求,无论其规模和性质如何。在加入云计算潮流之前,了解什么是云原生架构以及如何为云原生应用程序需求设计正确的架构非常重要。
11259 0
一文搞懂云原生架构
EMQ
|
网络协议 物联网 Linux
2022 年值得尝试的 7 个 MQTT 客户端工具
随着物联网行业的飞速发展,MQTT协议也被越来越多的公司及开发者所使用。鉴于目前MQTT客户端工具种类繁多,本文筛选和整理了截至2022年最新、最实用的7个MQTT客户端工具,希望可以帮助MQTT开发者快速找到合适的客户端工具。
EMQ
4497 1
2022 年值得尝试的 7 个 MQTT 客户端工具
|
存储 数据采集 Oracle
医疗(医院)数据中台建设方案
以广州某三甲医院数据中台建设目标为例
4177 0
|
存储 缓存 负载均衡
Tair分布式缓存
Redis很好用,相比memcached多了很多数据结构,支持持久化。但是在很长一段时间里,原生是不支持分布式的。后来就出现了很多redis集群类产品,Tair是其中胜出的优秀作品之一。 所以Tair的特性都是一些集群的特性,比如:容错、解决单点故障、跨机房管理、多集群管理、支持副本等。总而言之,是redis的高可用版本。
2396 1
Tair分布式缓存
|
1月前
|
人工智能 运维 安全
7x24 AI 生产线:高德如何构建无人值守的研发交付闭环
杨夕凯,高德地图AI智能应用与基建平台负责人,主导构建7×24 AI-Native生产线:实现AI全托管CI/CD、Self-Healing自修复、语义化流水线与多维Benchmark评测,推动超级应用从“人盯AI”迈向规则定义、AI自治交付的研发新范式。
235 0
|
1月前
|
人工智能 缓存 监控
大模型API调用核心拆解:详解流式输出、Token管控、限流处理与模型调度容错方案22.0
本文深入解析大模型API四大核心能力:流式输出原理、Token全生命周期管控、RateLimit限流处理、模型调度与异常自愈,结合实战代码,系统性解决线上稳定性难题,助研发构建高可用大模型调用架构。
394 3
|
1月前
|
存储 弹性计算 运维
什么是阿里云服务器ECS,及其优势、购买、使用方式和部署建议与实操命令教程
在云计算技术普及的时代,传统自建机房模式面临硬件采购成本高、部署周期漫长、硬件维护繁琐、资源弹性不足等诸多现实痛点。企业想要搭建业务系统,需要采购服务器硬件、搭建机房环境、部署供电与网络设施,前期投入巨大,业务流量波动时,硬件资源很难快速扩缩容。而云服务器ECS(Elastic Compute Service)作为IaaS层级的核心云计算服务,把计算资源转变为可按需取用的公共基础设施,如同日常使用水电燃气,用户无需采购实体IT硬件,就可以获取虚拟服务器能力,实现资源分钟级交付、弹性伸缩,广泛适配个人开发者、中小企业、大型企业的各类业务场景。本文将完整讲解ECS产品定义、核心优势、产品架构组件、
545 1
|
1月前
|
人工智能 JSON 自然语言处理
5个零成本AI生成PPT方案实测:哪个最适合你?
实测5个免费AI生成PPT方案,涵盖千问大模型、开源工具、在线设计平台等零成本工具,助你快速生成高质量演示文稿
629 0
|
5月前
|
人工智能 前端开发 Shell
一个文件让 AI Coding 效率翻倍:AGENTS.md 实践指南
文章内容基于作者个人技术实践与独立思考,旨在分享经验,仅代表个人观点。
13882 4
一个文件让 AI Coding 效率翻倍:AGENTS.md 实践指南

热门文章

最新文章