Ocelot只能用於.NET Core,目前是爲netcoreapp2.0構建的,這個文檔可能會幫你瞭解Ocelot是否適合你。html
安裝NuGet包nginx
使用nuget安裝Ocelot和它的依賴。你須要建立一個netcoreapp2.0的項目並安裝Ocelot包。而後按照下面的配置部分啓動並運行。json
Install-Package Ocelot
api
全部版本能夠在這裏找到。app
配置ui
下面是個很簡單的ocelot.json。它不作任何事情,可是能夠上Ocelot啓動了。url
{ "ReRoutes": [], "GlobalConfiguration": { "BaseUrl": "https://api.mybusiness.com" } }
這裏最重要的就是BaseUrl了。Ocelot須要知道它正在運行的URL,以便頭部查找和替換以及一些管理配置。設置此URL時,它應該是客戶端將看到的Ocelot運行的外部URL。例如,假如你在容器中運行Ocelot的url是http://123.12.1.1:6543,可是在它前面有像nginx同樣的代理在響應https://api.mybusiness.com。在這種狀況下Ocelot的BaseUrl應該是https://api.mybusiness.com。命令行
若是因爲某種緣由你使用的是容器,而且但願Ocelot在http://123.12.1.1:6543上響應客戶端,那麼你能夠這樣作,但若是你正在部署多個Ocelot,你可能會但願經過某種腳本在命令行上傳遞它。 但願您使用的任何調度程序均可以傳遞這個IP。代理
程序code
而後在你的Program.cs中,你會想要如下內容。主要就是AddOcelot()(添加ocelot服務),UseOcelot().Wait()(設置全部的Ocelot中間件)。
public class Program { public static void Main(string[] args) { new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .ConfigureAppConfiguration((hostingContext, config) => { config .SetBasePath(hostingContext.HostingEnvironment.ContentRootPath) .AddJsonFile("appsettings.json", true, true) .AddJsonFile($"appsettings.{hostingContext.HostingEnvironment.EnvironmentName}.json", true, true) .AddJsonFile("ocelot.json") .AddEnvironmentVariables(); }) .ConfigureServices(s => { s.AddOcelot(); }) .ConfigureLogging((hostingContext, logging) => { //add your logging }) .UseIISIntegration() .Configure(app => { app.UseOcelot().Wait(); }) .Build() .Run(); } }