zoukankan      html  css  js  c++  java
  • nginx+wcf负载均衡实验

    准备资料

    1、三台服务器,其中两台服务器(192.168.0.27、192.168.0.28)在IIS部署WCF服务,一台服务器(192.168.0.30)安装nginx;

    2、http://nginx.org/en/download.html下载nginx;

    3、所有的客户端Client的Hosts文件中增加映射:192.168.0.30 cluster.com.

    安装配置nginx

    把下载的nginx压缩包放在30服务器,然后解压,双击nginx.exe即可安装,安装完成后,打开conf文件夹里面的nginx配置文件,加入内容,如图:

    192.168.0.28:9100和192.168.0.27是WCF的部署地址,要带上端口号,默认80则不用。

    至此nginx安装配置完成。

    项目开发

    做一个简单的实验,只要两个项目就好了,一个WCF服务,一个Console客户端,项目图如下:

    其中NginxWcfService就只有一个服务Service1,我们改造一下默认的GetData方法:

    public string GetData(int value)
            {
                string ip = "";
    
                System.Net.IPAddress[] address = System.Net.Dns.GetHostAddresses(System.Net.Dns.GetHostName());
                if (address != null)
                {
                    foreach (var item in address)
                    {
                        if (item.AddressFamily.Equals(AddressFamily.InterNetwork))
                        {
                            ip = item.ToString();
                            break;
                        }
                    }
                }
    
                return string.Format("You entered: {0},当前 request 由 server={1} 返回.", value, ip);
            }

    就是返回当前服务器的IP地址。

    然后编译发布到27、28两台服务器,地址分别是http://192.168.0.27/NginxWcfService/Service1.svc和http://192.168.0.28:9100/NginxWcfService/Service1.svc。

    客户端项目NginxConsole,添加服务引用http://cluster.com/NginxWcfService/Service1.svc,然后多次调用服务,即可看到效果,代码如下:

    static void Main(string[] args)
            {
                for (int i = 0; i < 100; i++)
                {
                    ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
                    var data = client.GetData(i);
                    Console.WriteLine(data);
    
                    System.Threading.Thread.Sleep(1000);
                }
                Console.Read();
            }

    效果如图:

    这就是最简单的负载均衡,一个nginx就可以搞定了。

  • 相关阅读:
    面试后的一些思考
    NEW关键字的三种用法
    关于反射的初步介绍
    REF和OUT关键字的介绍
    关于WPF中TextBox行的选择与显示的问题
    资源字典——程序集之间的资源共享
    rsync 实现断点续传
    CentOS 7 安装 Git
    使用 docker 拉取镜像和创建容器-nginx
    docker安装 之 ---CentOS 7 系统脚本自动安装
  • 原文地址:https://www.cnblogs.com/tingqianzhu/p/8670440.html
Copyright © 2011-2022 走看看