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

如何在同一环境组的不同Jelastic环境间实现HTTPS请求?

同一Jelastic环境组内跨环境HTTPS请求失败的解决方案

问题复盘

  • 同组内两个Jelastic环境:服务端(Node.js REST API)、客户端(Next.js应用),均能通过默认HTTPS URL正常公网访问
  • 客户端向服务端默认HTTPS URL发起请求时报错:Failed connect to env_name.hoster_domain_name:443; Connection refused,但HTTP请求可正常执行
  • 使用服务端LAN IP发起HTTP请求时,浏览器触发混合内容拦截:Mixed Content: The page at 'https://env_name.hoster_domain_name/resource_path' was loaded over HTTPS, but requested an insecure resource

解决思路

1. 排查服务端HTTPS转发配置

Jelastic默认环境URL的HTTPS由平台反向代理处理,需确认:

  • 进入服务端环境控制面板,检查负载均衡(若存在)的HTTPS开关是否启用,平台提供的默认SSL证书是否有效
  • 确认服务端Node.js应用是否仅监听80端口,Jelastic反向代理是否正确将443端口的HTTPS请求转发至应用的80端口(多数场景下平台默认配置,但可能存在异常)
  • 在服务端环境内执行netstat -tulpn,验证是否有进程监听443端口(若应用未配置HTTPS,该端口应由平台代理占用)

2. 使用Jelastic内部LAN域名的HTTPS访问

同一环境组内的环境可通过内部域名访问(格式通常为{服务端环境名}.jelastic,具体以服务商配置为准):

  • 在客户端环境内执行curl https://{服务端环境名}.jelastic测试连通性,该地址走内部LAN网络,由平台处理HTTPS加密,不会触发混合内容问题
  • 客户端Next.js应用直接调用该内部HTTPS域名即可,无需依赖公网地址

3. 配置Next.js反向代理规避混合内容

通过Next.js的反向代理,将前端HTTPS请求转发至服务端内部HTTP地址:

  • 在项目根目录的next.config.js中添加重写规则:
    module.exports = {
      async rewrites() {
        return [
          {
            source: '/api/:path*',
            destination: 'http://{服务端LAN_IP}:{服务端端口}/api/:path*'
          }
        ]
      }
    }
    
  • 前端代码中只需请求同域名的/api/xxx路径,Next.js服务器内部以HTTP访问服务端LAN地址,浏览器端始终保持HTTPS通信,避免混合内容拦截

4. 检查环境组网络访问策略

确认环境组的安全规则允许客户端访问服务端的443端口:

  • 进入Jelastic环境组管理页面,查看网络访问控制列表,确保客户端环境的IP段被允许访问服务端的443端口(若之前仅开放80端口,需添加443的放行规则)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 13:12:43