前言:
从开始敲第一行代码到现在也有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的搭建。
那么我们下期间!
网友评论