Ocelot网关的作用:
接收请求,转发请求Consul,找到服务获取数据后将数据传递回去。这样的好处在于避免服务地址直接暴露,更加安全
网关是一个独立进程,所以需要单独创立一个Api程序。
首先是安装nuget包:Ocelot
修改startup.cs
将Configure()里面的内容注释掉,加上
app.UseOcelot();
再将ConfigureServices内容注释掉,加上
services.AddOcelot();
然后,添加配置文件configuration.json,按需求配置,简单实例:(注意:新版本已经将根节点ReRoutes改成了Routes,可能会报错)
//**************************************单地址******************************** { "ReRoutes": [ { "DownstreamPathTemplate": "/api/{url}", //服务地址 "DownstreamScheme": "http", "DownstreamHostAndPorts": [ { "Host": "localhost", "Port": 5726 //服务端口 } ], "UpstreamPathTemplate": "/T5726/{url}", //网关地址 "UpStreamHttpMethod": ["Get","Post"] } ] }
然后将默认的配置文件指定为configuration.json
将Program.cs里的CreateHostBuilder添加
.ConfigureAppConfiguration(conf => { conf.AddJsonFile("configuration.json", optional: false, reloadOnChange: true); //改配置 })
记得将configuration.json的属性改为 始终复制到输出路径
直接运行,调用localhost:{yourport}/T5726/{yourservice},就可以跳转到localhost:5726/api/{yourservice}