1.4.5 注册网关

模块的 app.m 文件实现了网关注册,app.m 文件内容如下,在网关上注册对于request_path的请求,转调到upstream_url上。

<service>
    <name>main</name>
    <request_path>/main</request_path>
    <preserve_host>true</preserve_host>
    <strip_request_path>true</strip_request_path>
    <upstream_url>http://{{.Env.MAIN_SERVICEADDRESS}}:{{.Env.MAIN_PORT}}/main
    </upstream_url>
</service>
节点 说明
name 模块名
request_path 请求路径
preserve_host 是否保留域名,在网关转调时,使用发送方的域名,这里设置为true,不使用发送方的域名,这里设置为false
strip_request_path 是否去掉请求路径,为true,则去掉,为false,则会在请求url后加上request_path,注意request_path后面的内容会加到请求url后面,这里只是控制request_path的第一级是否加到请求url后面

通过网关实现转调的案例

某些第三方请求不支持跨域访问,导致前端直接调用会出现跨域安全报错,此时可以通过网关转调的方式解决前端不能调用的问题。

下面以调用 http://www.baidu.com 为例说明如下。

  • 在main模块下,建一个目录(例如:baidu)
  • 在该目录下,建一个文件app.m
    • name节点输入目录名baidu
    • request_path节点输入/目录名
    • preserve_host节点输入false
    • strip_request_path节点输入true
    • upstream_url节点输入要调用的请求地址

通过配置app.m,实现了在前端请求 http://域名/baidu,就会转调到 http://www.baidu.com 地址,运行效果如下图所示。

results matching ""

    No results matching ""

    results matching ""

      No results matching ""