3、netcore跨平台之 Linux配置nginx负载均衡

前面两章讲了netcore在linux上部署以及配置nginx,并让nginx代理webapi。html

这一章主要讲如何配置负载均衡,有些步骤在前两章讲的很详细了,因此这一章我就不会一个个截图了。linux

由于本人只有一个服务器。因此我会在同一台服务器上部署两套差很少的实例。nginx

一样的代码,咱们在Program.cs进行了修改,如图所示:web

这里我把原来的端口6666改为了8888算法

 

 而后你能够改一改你的接口部分的代码,便于让你更好的看到效果。json

这里把value1和value2改为value3和value4,这里是为了看到测试效果,在实际的开发中这里不用改。vim

 

 而后发布和上传到服务器,如何发布和上传,我在第一章有讲到:https://www.cnblogs.com/dengbo/p/11878766.htmlapi

注意的是你一样的地方新建一个新的目录保存你新上传的程序,netcore是我第一章创建的,netcore1是新建的,服务器

你把你新的发布包放在netcore便可。如图:session

上传结束后,在这个目录中运行你的程序,输入下面的命令

dotnet WebApiTest.dll   --server.urls "http://*:8888"

如图所示

 

 而后去看看你的接口是否正常

 

 

好了,这里的准备工做完成了,下面咱们进入到nginx的配置的目录中

输入下面的命令:

cd /usr/local/nginx/conf

而后对文件进行编辑

vim nginx.conf

 

 咱们须要在这里修改一下配置。

在如图的server的平级添加以下的代码

upstream NgWebApi {
                server localhost:6666;
                server localhost:8888;
    }

上面的 NgWebApi是随意写的名称,不要纠结这里。

而后在修改 proxy_pass后面的内容:

proxy_pass http://NgWebApi;

最终的结果以下:

 

 这样你就修改完成,输入:wq退出并保存便可。

最后检查并重启nginx

/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload

最后不要忘记把你的8888端口的webapi启动一下。

这里我务必要提醒你,请进入到你的程序的目录中执行这段代码,

cd /root/netcore1
dotnet WebApiTest.dll   --server.urls "http://*:8888"

启动以下:

 

 

 好了,配置结束了,下面咱们来测试下

 

仍是昨天的那个网站进行测试   https://www.sojson.com/httpRequest/

 

 

 

屡次发送请求会出现下面的响应

 

 

看到上面两个请求,就说明你配置成功了,是否是很简单。

上面这种配置,系统会采用默认的轮询访问不一样的端口,nginx做为强大的反向代理,强大的远远不止这里

下面简单讲讲分发策略。

1)、轮询 ——轮流处理请求(这是系统默认的)

      每一个请求按时间顺序逐一分配到不一样的应用服务器,若是应用服务器down掉,自动剔除它,剩下的继续轮询,若是您的服务器都差很少,建议这个。 

2)、权重 ——谁的设置的大,谁就承担大部分的请求

      经过配置权重,指定轮询概率,权重和访问比率成正比,用于应用服务器性能不均的状况,有时候你买的服务器可能良莠不齐,有的性能强大

    有的通常,你能够经过设置权重,把服务器性能强大权重设置大一点,这样能够合理分配压力。 

3)ip_哈希算法

      每一次的请求按访问iphash结果分配,这样每一个访客固定访问一个应用服务器,能够解决session共享的问题。

 

 

关于权重的策略,以下图示的 你只要加一个  weight=6 便可这里不必定是6,是整数都行。

 

 

 而后保存便可

这里不要忘记重启nginx,以及运行8888端口的程序了,若是你不会,能够看前面的部分

最后咱们看看效果

结果和上面的测试结果差很少,惟一不一样的是出现下面这个结果的次数要大于另一个的。

 

 

到这里就结束了,感谢观看。

相关文章
相关标签/搜索