如何通过在章鱼上使用Powershell创建Nginx IIS LoadBalancer?

时间:2019-05-28 14:12:08

标签: powershell nginx devops octopus-deploy octopus

如何使用IIS创建Nginx负载均衡器?这个问题对我来说不容易描述。所以我将问题分为两个阶段。

1)IIS网站(app1.xyz.com,app2.xyz.com,app3.xyz.com)的前面有1个Nginx服务器(app.xyz.com),所有请求都发送到app.xyz.com因为它是负载平衡器。这样容易吗?如何通过将章鱼与powershell一起使用来实现此目的。

2)我必须通过同时部署app2.xyz.com和app3.xyz.co来停止app1.xyz.com。工作。

何时

public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
    var applicationUserManager = context.OwinContext.GetUserManager<ApplicationUserManager>();
    //while executing this line, the identity tables are created
    var applicationUser = await applicationUserManager.FindAsync(context.UserName, context.Password);
    if (applicationUser == null)
    {
        context.SetError("invalid_grant", "The user name or password is incorrect.");
        return;
    }

    var claimsIdentityOAuth =
            await applicationUser.GenerateUserIdentityAsync(applicationUserManager,
                OAuthDefaults.AuthenticationType);
    var claimsIdentityCookie = await applicationUser.GenerateUserIdentityAsync(applicationUserManager,
    CookieAuthenticationDefaults.AuthenticationType);
    var properties = CreateProperties(applicationUser.UserName);
    var authenticationTicket = new AuthenticationTicket(claimsIdentityOAuth, properties);
    context.Validated(authenticationTicket);
    context.Request.Context.Authentication.SignIn(claimsIdentityCookie);
}

逐步部署而不停止所有Web应用程序。请看下面的图片我画的是什么:

enter image description here

enter image description here

nginx.conf:

 app1.xyz.com (DOWN)    app1.xyz.com (UP)     app1.xyz.com (UP)
 app1.xyz.com (UP)      app1.xyz.com (DOWN)   app1.xyz.com (UP)
 app1.xyz.com (UP)      app1.xyz.com (UP)     app1.xyz.com (DOWN)

1 个答案:

答案 0 :(得分:1)

如果使用nginx作为负载均衡器还没有完全卖完,我已经做了与使用IIS作为代理/负载均衡器(路由到它后面的应用程序IIS服务器)所做的相同的描述。然后,如果需要,您也可以使用Windows网络负载平衡器为代理(假设您的收入大于1)创建代理/负载平衡器,以实现高可用性。如果您对此感兴趣,可以为您提供帮助,但使用nginx并不是负载平衡器的最佳选择。我会发表评论,但我是堆栈溢出的新手...对不起...