在传统的信息系统(比如小规模的ERP\MES系统),往往只是进行简单的应用服务器和数据库服务器的分布式部署,以此来提高应用系统的负载能力,而伴随着访问的增大,应用服务器层面除了做硬件和网络的扩容,很难应对【套路式开头】。
当然现在开源技术很多,不就是分布式么,应用服务器分布式、数据库读写分离、缓存服务器、认证服务器。。。的确方法很多。那么不买关子了,今天就应用服务器层面的负载均衡讲讲,可以动手练练的技术:Nginx,当然也包括缓存技术:Redis。
初步的设想是这样的:通过Nginx对局域网内多个相同应用服务器进行进行负载均衡,并且各个相同应用共享一个缓存服务器【表达的就是这么简单】。拉个效果图:
开始搭建【折腾】
1、操作系统准备
Linux一台,当然一般为虚拟机,这里我安装了CentOS7,配置ip地址为:192.168.110.100,机器名就叫:centos。
可以运行asp.net mvc站点windows一台,比如windows10+iis8,配置ip地址为:192.168.110.1,机器名无所谓。
配置两台机器的hosts:
Windows:C:\Windows\system32\drivers\etc\hosts
192.168.110.100 linuxidc.com
CentOS: vim /etc/hosts
192.168.110.100 linuxidc.com
2、安装Nginx
一般首先需要安装编译环境【反正不搞c,参照其他文章手动安装】,centos支持yum安装,一般就是yum install ,当然先su root下用root用户登录。
保证虚拟机联网,执行命令:yum install gcc-c++
本来以为可以直接安装nginx了,没想到还有三个依赖库要下载安装,套路一样:
下载安装包、解压安装包、进入配置目录,分别执行make 和make install。
当然这不是重点,直接说明:
其中本次下载版本:pcre-8.40.tar.gz、zlib-1.2.11.tar.gz、openssl-fips-2.0.10.tar.gz、nginx-1.12.2.tar.gz
> 安装pcre
获取pcre编译安装包,ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz,拷贝到centos
解压缩pcre-xx.tar.gz包。
进入解压缩目录,分别执行 ./configure 、 make 、 make install
> 安装openssl
获取openssl编译安装包,在https://www.openssl.org/source/openssl-fips-2.0.10.tar.gz,拷贝到centos
解压缩openssl-xx.tar.gz包。
进入解压缩目录,分别执行./config、make 、 make install
> 安装zlib
获取zlib编译安装包,在,拷贝到centos
解压缩openssl-xx.tar.gz包。
进入解压缩目录,分别执行 ./configure 、 make 、 make install
> 安装nginx
获取nginx,在,拷贝到centos
解压缩nginx-xx.tar.gz包。
进入解压缩目录,分别执行 ./configure、 make 、 make install
3、配置nginx
按照第2部分,安装好nginx,当然 没有想过其他安装经验的,肯定会出现很多问题,建议百度自己搞定。我们可以在命令行里输入:whereis nginx
如果正常安装会出现nginx的按照目录:
[root@centos bin]# whereis nginx
nginx: /usr/local/nginx
[root@centos bin]# cd /usr/local/nginx
[root@centos nginx]# ls -l
总用量 0
drwx------ 2 nobody root 6 11月 2 14:08 client_body_temp
drwxr-xr-x 2 root root 333 11月 2 20:56 conf
drwx------ 2 nobody root 6 11月 2 14:08 fastcgi_temp
drwxr-xr-x 2 root root 40 11月 2 11:05 html
drwxr-xr-x 2 root root 58 11月 2 20:58 logs
drwx------ 2 nobody root 6 11月 2 14:08 proxy_temp
drwxr-xr-x 2 root root 19 11月 2 11:05 sbin
drwx------ 2 nobody root 6 11月 2 14:08 scgi_temp
drwx------ 2 nobody root 6 11月 2 14:08 uwsgi_temp
一般配置文件在conf文件夹下,名称叫nginx.conf,本次实验关键就是配置该文件,废话不说打开编辑:
[root@centos nginx]# vim ./conf/nginx.conf