Module Proxy (四)兼容传统

原创
2021/10/10 11:56
阅读数 251

Module Proxy保持了传统HTTP后端的服务能力,这点和Nginx反向代理相似。下面是完整的Module Proxy的完整的配置文件,我们结合配置文件说明:


name = "module proxy"
version = "0.1"

[server]
port = 80                               # http侦听端口
root_path = "D:/TMP/root_path/"         # 网站根路径
chunked_size = 10240000                 # chunked方式最小字节

[log]
level = "debug"             # 日志级别,分为 error warn info debug 四种

[module]

module_html = [             # 本地html模块
    {module = "vue", path = "D:/TMP/html/vue_html"},
]

module_http = [             # http反向代理模块
    {module = "docs",       proxy_pass = "http://127.0.0.1:8080"    },
    {module = "examples",   proxy_pass = "http://127.0.0.1:8080"    },
]

module_socket = [         # socket代理模块
    {module = "socket",     ip = "127.0.0.1", port = 21230  },
    {module = "socket1",    ip = "127.0.0.1", port = 21231  },
]

在配置文件 [module] 部分,定义了三种模块:本地html模块(静态代理)、http反向代理模块、和socket代理模块。

静态代理

静态代理在Module Proxy内部分为两种配置:

-- 有模块  例如访问 http://<module_proxy_ip>:80/vue/index.html 时,Module Proxy会根据配置文件,去读取D:/TMP/html/vue_html/index.html 。

-- 无模块  例如访问 http://<module_proxy_ip>:80/index.html 时,无模块配置,Module Proxy会访问“根”目录中的 D:/TMP/root_path/index.html 。

这两种配置,在Module Proxy中的实现机制是一样的。有模块的静态代理可以配置多个,无模块代表“根”只能有一个。

[server] 中的chunked_size配置的字节数,只对静态代理起作用。小于chunked_size的文件,Module Proxy会一次性的读取所有文件内容,再发送给浏览器;超过chunked_size的文件,Module Proxy会读取一段发送一段。chunked是HTTP1.1协议中的一种传输形式,超大文件应该使用chunked方式,这样能避免在服务端占用过多内存。用户对chunked的使用感知常常发生在文件下载中,如果下载文件时不知其大小,很可能就是chunked方式。

http反向代理

在研发人员的世界中,反向代理比正向代理更加常见,Module Proxy的反向代理是符合研发世界观的,因此这里无需多讲,演示而已:

1)在部署 Module Proxy的同一天机器上,下载并启动默认配置的Tomcat服务。

2)浏览器访问  http://<module_proxy_ip>:80/examples/index.html ,根据模块配置请求被转发到 http://127.0.0.1:8080/examples/index.html

3)浏览器访问  http://<module_proxy_ip>:80/docs/index.html ,根据模块配置请求被转发到 http://127.0.0.1:8080/docs/index.html

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部