集成 Ngrok 反向代理

集成 Ngrok 反向代理

Laravel 3年前 2231 0

2025 年 2 月 17 日更新

今年我更换了 Docker 版本,因此更新一下

创建 docker-compsoe.yaml

services:
  ngrok:
    image: ngrok/ngrok:latest
    volumes:
      - ./ngrok.yml:/etc/ngrok.yml
    environment:
      NGROK_AUTHTOKEN: 你的authkey
      NGROK_CONFIG: /etc/ngrok.yml

ngrok 配置

version: 3
agent:
  web_addr: 0.0.0.0:4040
tunnels:
  example:   #你自定义的管道名称
    proto: http
    addr: https://demo.lcoal/  # 你自定义的域名

Bug: 这里我遇到一个 无论我 addr 怎么写,始终给我代理的是 nginx 中文件第一个域名,这里我排查了一下设置了 nginx 配置 default_server 就可以了。

检查好你 nginx 下边的所有配置 listen 是否有 default_server,把他全部删除,直到剩下你需要配置的 nginx 配置 例如:

└── conf.d
    ├── domain1.conf
    ├── domain2.conf
    ├── domain3.conf
    └── domain*.conf

由于开发环境没有外网 IP,支付宝和微信支付的回调无法直接访问到开发环境的接口,了解一下内网穿透神器 Ngrok,来解决此问题。

Ngrok 是一个反向代理软件,启动后会在公共服务器和本地客户端之间建立一个通道,并由公共服务器分配一个唯一的域名给这个通道。在 Homestead 中运行 Ngrok 之后,通过公共服务器分配的域名就可以在公网访问到 Homestead 中的站点,从而让支付宝和微信支付的服务器直接将回调数据发送到对应的回调接口。

1. 注册 Ngrok 账号

Ngrok 官网提供了免费的公共服务器,但需要注册才能使用,访问注册:Ngrok 官网 ngork

注册后可以看到以下内容: ngork

2.配置

首先你得去下载 ngrok 集成命令包,下载后解压,来到根目录配置 token。

./ngrok authtoken 你的token

3. 启动 Ngrok 客户端

2025 年 1 月 4 日更新

./ngrok http 你的本地域名
即可启动

http 代表映射协议

执行成功后访问 http://localhost:4040 就有 ngrok 管理面板了。

Homestead 环境配置

ngrok authtoken 你的token

ngrok http 本地域名

ngrok 配置

注意看 Web Interface,地址已经变成 http://192.168.10.10:4040

ngrok 配置

原文: http://yiqiao.me/articles/31/integrated-ngrok-reverse-proxy

版权声明: 自由转载-非商用-非衍生-保持署名 (创意共享3.0许可证)