Ocelot(七)- 入門

入門

Ocelot僅適用於.NET Core,目前是爲netstandard2.0構建的。若是Ocelot適合您,那麼此文檔可能會有用。html

.NET 

安裝NuGet包nginx

使用nuget安裝Ocelot及其依賴項。您須要建立一個netstandard2.0項目並將其打包到其中。而後按照下面的「啓動」和「 配置部分啓動並運行。json

Install-Package Ocelot

全部版本均可以在這裏找到api

配置app

如下是一個很是基本的ocelot.json。它不會作任何事情,但應該讓Ocelot開始。ui

{
    "ReRoutes": [], "GlobalConfiguration": { "BaseUrl": "https://api.mybusiness.com" } } 

這裏要注意的最重要的是BaseUrl。Ocelot須要知道它正在運行的URL,以便進行Header查找和替換以及某些管理配置。設置此URL時,它應該是客戶端將看到運行Ocelot的外部URL,例如,若是您正在運行容器,則Ocelot可能會在URL上運行http://123.12.1.1:6543但在其前面有相似nginx的響應在https上響應://api.mybusiness.com在這種狀況下,Ocelot基本網址應爲https://api.mybusiness.comspa

若是您正在使用容器並要求Ocelot在http://123.12.1.1:6543響應客戶端, 那麼您能夠執行此操做,可是若是您要部署多個Ocelot,您可能但願在某種類型的命令行上傳遞它腳本。但願您使用的任何調度程序均可以經過IP。命令行

程序code

而後在您的Program.cs中,您將須要如下內容。須要注意的主要事項是AddOcelot()(添加ocelot服務),UseOcelot()。Wait()(設置全部Ocelot中間件)。htm

   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();
       }
   }

**Note:** When using ASP.NET Core 2.2 and you want to use In-Process hosting, replace **.UseIISIntegration()** with **.UseIIS()**, otherwise you'll get startup errors.

.NET 

安裝NuGet包

使用nuget安裝Ocelot及其依賴項。您須要建立一個netcoreapp1.0 + projct並將包帶入其中。而後按照下面的「啓動」和「 配置」部分啓動並運行。請注意,您須要從NuGet Feed中選擇一個Ocelot包。

全部版本均可以在這裏找到

配置

如下是一個很是基本的ocelot.json。它不會作任何事情,但應該讓Ocelot開始。

{
    "ReRoutes": [], "GlobalConfiguration": {} } 

程序

而後在您的Program.cs中,您將須要如下內容。

public class Program { public static void Main(string[] args) { IWebHostBuilder builder = new WebHostBuilder(); builder.ConfigureServices(s => { }); builder.UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseStartup<Startup>(); var host = builder.Build(); host.Run(); } } 

啓動

使用json文件進行配置的示例啓動以下所示。

public class Startup
{
    public Startup(IHostingEnvironment env)
    {
        var builder = new ConfigurationBuilder()
            .SetBasePath(env.ContentRootPath)
            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
            .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
            .AddJsonFile("ocelot.json")
            .AddEnvironmentVariables();

        Configuration = builder.Build();
    }

    public IConfigurationRoot Configuration { get; }

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddOcelot(Configuration);
    }

    public void Configure(IApplicationBuilder app)
    {
        app.UseOcelot().Wait();
    }
}

這幾乎是你入門須要的所有。

相關文章
相關標籤/搜索