美文网首页
初探Nginx负载均衡及实例

初探Nginx负载均衡及实例

作者: SkylerSkr | 来源:发表于2018-08-25 23:40 被阅读0次

    前言:

        从开始敲第一行代码到现在也有5年多,也有过觉得自己超级厉害,哇,现在想想自己也是真的可怕。

    至于为什么会碰编程,唉,故事要从那年大明湖畔边上的夏雨荷说起了 😭

    老师:sksk,跟我去学编程吧! 

    我:那是什么!

    老师:超级棒的东西!

    然后就在高一的时候开始c#之路,苦了我这么多年啊,女朋友都没谈几个,谈了也很快就分😭😭😭😭😭😭😭😭😭😭😭

    今天是我第一次写博客,第一次写技术文章。

    上一次写跟博客有关的时候,还是刚学完mvc的时候,写了个博客系统,如果有刚学mvc架构的同学,可以问我要源码,QQ1056375224😭😭😭😭😭😭😭😭😭😭😭

    写博客的动机呐,是因为前段时候睡少了脑子一热,搭个分布式系统吧,给自己的大学一个圆满的句号。

    然后联系了一个做Android的朋友,

    当时是这样说的:"我们来做个app,我来搭分布式系统和提供后端服务,你做Android,一起做个开源项目吧"

    朋友"我都打算转c++了,还让我做Android!做也可以,那你**的先把分布式系统搭好"

    好!!!!立刻就做!!!!

    正题:

          我们先来说说什么是分布式系统:分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。

        负载均衡:对请求进行分发,根据一定算法(轮询法,随机法,加权随机法,加权轮询法等)将请求分发给其他的机器,保证每一台机器的负载。PS:但是如果负载均衡器宕机了,就炸了!!!!所以一般负载均衡器会做高可用集群(宕机后由其他机器代替),当然我是做不起群集了,学生党还要啥自行车!

        Nginx:一个高性能的HTTP反向代理服务,搭建起来很简单,高效,轻量级,很容易搭建,需要一些Linux基础,下面会详细写。

        PS:Linux,很重要,我就吃过苦头,同学们一定要好好学。

    操作:

    安装虚拟机

        首先,我们要装虚拟机,我买了两台云服务器,用于后面的关系型数据库和文档数据库(学生就是好,120一年)。但是我还需要redis,rabbitmq,日志服务器等等,如果都买服务器太贵了,我家的网络又不是公网ip,花生壳的内网穿透只有2条线路,不够用。但是呐,这些都不需要暴露在外网。真正需要暴露出去的,只有Nginx和文档数据库。可是Nginx需要和web服务通信,所以我选择装虚拟机。

        所以我在自己的垃圾笔记本上先装了4个服务器用于今天的实例。(用了centos,都用linux了,还要啥图形界面要啥ubantu)

    虚拟机的安装,这里就不讲了,但是为了以后大家方便,提醒一下,一定要把防火墙关了。

    systemctl stop firewalld              //停止防火墙

    systemctl disable firewalld          //关闭防火墙自启动

    service network restart                //重启网络

    安装Nginx

    在CentOS7通过命令行安装Nginx服务器

    sudo yum install epel-release         //安装Nginx

    sudo yum install nginx

    sudo systemctl start nginx            //启动

    sudo systemctl enable nginx #

    echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local        //自启动

    好了 然后就安装完了 Nginx是不是特别简单(滑稽脸)😀😀😀

    配置Nginx

    配置需要使用linux的vim,如果没学过的可以学一下,下面是一些基础操作

    i    Insert模式 可更改

    q  退出insert模式

    shift+:  打开命令行

    打开命令行后,q是退出,wq是保存并退出

    下面是Nginx配置:

    cd /etc/nginx/         //定位到nginx安装目录

    vi  nginx.conf        //编辑配置文件

    主要配置节点:192.168.1.109:80,192.168.1.126:80,192.168.1.239:80,这是3个部署在不同虚拟机中的Asp .Net Mvc Core😀😀😀 的网站(你也可以部署在本机上,只要在同一个网段内就可以)设计软件架构解决方案在分布式系统基础搭建好开始讲。

    .Net Core

    C#是要主要的语言,笔者学过很多语言,c,c++,java,py等,但是最喜欢的还是c#。

    全宇宙最强大的IDE,层出不穷的语法糖,这些都是其他语言没有的,但是不开源不可跨平台的c#真的是拼过java和py。

    还好,有了Core的技术,这是微软的开源项目,还可跨平台。在4月份2.1版本上线后,顶级的服务器性能,配合C#的语法糖,和Vs,天啊撸,我是再也找不到转Java的理由了(天天被人说转java的要哭了)

    这里写一下在linux环境下安装.Net Core和创建Mvc项目

    sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

    sudo yum update

    sudo yum install dotnet-sdk-2.1

    然后就安装完了,接着是创建mvc项目

    dotnet new mvc    //创建mvc项目 是的就这么简单

    vi Program.cs        //配置一下  改一些对所有可见

    dotnet run            //运行

    加上UseUrls("http://*:80")!!!!!!一定要加,不加看不到!

    效果:

    到这里为止呐,我们的Nginx的搭配好了,在core的项目运行后,nginx是设置了core的端口,我们就可以看到这样一个效果。

    大家可以看到,这里只有一个负载均衡器的地址192.168.1.42,但是却显示了不同的页面(3个core的网站)。

    Nginx会均衡多个服务器的负载,并将请求下发给相对空闲的服务器。

    总结:

    到这里今天的主题就讲完了,初探Nginx,第一次写不太好,希望大家多多包涵,多提意见。

    下期可能会深入的讲一下Nginx,也可能会讲Redis或者Rabbitmq的搭建。

    那么我们下期间!

    相关文章

      网友评论

          本文标题:初探Nginx负载均衡及实例

          本文链接:https://www.haomeiwen.com/subject/qongiftx.html