通过NGINX实现将小程序HTTPS请求转为内部HTTP请求

最近在搞小程序部署,小程序强制https请求,域名和备案,内部项目不能大改,且不支持https请求,所以用nginx作为反向代理,将https请求(配置SSL证书在nginx里,开放单独的端口,然后通过nginx反向代理给内部的网关请求。

nginx.cnof

java 复制代码
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    # ✅ 可选:80端口跳转8443,浏览器输入域名自动跳HTTPS,方便调试
    server {
        listen       80;
        server_name  localhost www.domain.com.cn;
        return 301 https://$host:8443$request_uri;
    }

    # ✅✅✅ 核心:8443端口 开启HTTPS,接收所有外部HTTPS请求
    server {
        listen       8084 ssl;
        server_name  www.domain.com.cn localhost;

        # ✅ 你的SSL证书绝对路径,完全正确,不用改!
        ssl_certificate      C:/Users/TT603064/Desktop/nginx-1.26.3/conf/ssl/www.domain.com.cn.pem;
        ssl_certificate_key  C:/Users/TT603064/Desktop/nginx-1.26.3/conf/ssl/www.domain.com.cn.key;

        # ✅ HTTPS基础配置,安全合规,不用改
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m;

        # ✅ 跨域全放行!小程序必加,解决OPTIONS预检请求,无任何跨域报错
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS, PUT, DELETE';
        add_header Access-Control-Allow-Headers 'Content-Type, Authorization, token, X-Requested-With, Origin, Accept';
        if ($request_method = 'OPTIONS') { return 204; }

        # ✅✅✅ 接口反向代理:/test/开头 → 转发到【纯HTTP的8088网关】
        # 你的规则:https://域名:8443/test/xxx → http://127.0.0.1:8088/xxx
        location /test/ {
            proxy_pass http://127.0.0.1:8088/;
            # ✅ 必备请求头,让网关识别真实请求信息
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto https; # 告诉网关:原始请求是HTTPS
            # ✅ Windows+Java网关 终极优化参数,彻底解决所有连接/超时/断开问题
            proxy_http_version 1.1;
            proxy_set_header Connection "";
            proxy_buffer_size 128k;
            proxy_buffers 8 128k;
            proxy_connect_timeout 300s;
            proxy_read_timeout 300s;
            proxy_send_timeout 300s;
            proxy_redirect off;
        }

        # ✅✅✅ 前端反向代理:所有其他请求 → 转发到【纯HTTP的81前端】
        location / {
            proxy_pass http://127.0.0.1:81;
            # ✅ 解决Vue/React前端路由刷新404问题
            try_files $uri $uri/ /index.html;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
}

这样配置以后,在小程序里配置
https://www.domain.com.cn:8084/test/workaffairs/purchase/orders/list

会自动转换为
https://127.0.0.1:8088/workaffairs/purchase/orders/list

实现将https请求转为内部的http请求网关,由网关处理

相关推荐
SL_staff7 分钟前
JVS-APS的7个刚性约束设计:从无限产能幻觉到可执行排产的工程实践
java·spring cloud·全栈
代码山河2 小时前
基本类型转换:自动类型转换与强制类型转换
java·学习·架构·教程·面向对象·项目
Escalating_xu3 小时前
【Linux 网络编程】五种 I/O 模型与非阻塞 I/O:从“等数据”到正确处理 EAGAIN
java·linux·网络
程序猿乐锅3 小时前
万字详解Single-flight(单飞模式)
java·开发语言·分布式·后端·学习·single-flight
Java后端的Ai之路3 小时前
【AIAgent开发】-Agent工具封装成CLI(纯干货!!!)
java·javascript·人工智能·agent·cli
Flynn Liang4 小时前
Spring AI 上生产:限流熔断、密钥与成本治理、私有化/混合部署、降级与 Prompt 灰度架构全解
人工智能·spring·架构·高可用·springai·成本治理·生产架构
AntsData4 小时前
用 12K+ 条亚马逊评论信号,定位机械键盘下一版该改什么
java·大数据·计算机外设
code2cat4 小时前
【随笔】连续批处理:长短请求怎样在迭代之间补位
java·人工智能·后端·大语言模型·vllm
最强小杰4 小时前
DeepSeek V4 Flash + Codex CLI 接入教程:原生 Responses API 适配,从配置到跑通收藏这篇就够了(2026)
java·前端·python·ai
Flynn Liang4 小时前
Spring AI 2.0 深度解析:ChatClient、Advisor 链与 MCP——Java 工程师的 AI 落地最优解
java·人工智能·spring·大模型·架构设计·spring ai