前言
我们之前聊过 10分钟搭建服务器集群——Windows7系统中nginx与IIS服务器搭建集群实现负载均衡:https://www.cnblogs.com/xiongze520/p/10308720.html
不怎么理解的可以移步去简单看一下。
nginx概述
nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;
同时也是一个IMAP、POP3、SMTP代理服务器;
nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。
nginx反向代理实现负载均衡
两张图理解其中的业务流程
首先上网查资料nginx相关原理,文字性描述感觉很无聊,于是自己总结两张对比图,如下:
1、一般情况下(未使用nginx服务器集群流程):
图1:未使用服务器集群
2、使用nginx服务器集群后流程【注:本图以一级nginx服务器为例】:
图2:未使用服务器集群
根据这两张图对比,不难得出以下结论:
利用nginx管理起IIS服务器后:
- 可靠性大大增强:一台或多台IIS服务器宕机,服务不中断!细心的读者发现如果nginx服务器宕机那?当然可以通过配置多个及多级nginx服务器来解决。
- 处理大访问量时大大减小IIS服务器压力,提高访问速度。
- 消耗硬件资源多:多增加一台服务器(在数据量不大的时候nginx也可与IIS共用一台服务器)与N台IIS服务器!不过在硬件成本不断降低以及高可靠性的今天,对于大访问量网站,这个影响几乎可以忽略不计。要不然也不会有这么多的用户比如国内的用户:百度,新浪,网易,腾讯等。
创建发布IIS
我们创建3个文件夹nginx、nginx1、nginx2,每个文件夹里面创建一个index.html文件,内容如下,然后发布到iis访问。
nginx文件夹index.html内容
<h1> 我是nginx—— 集群服务器8020 </h1>
nginx1文件夹index.html内容
<h1> 我是nginx—— 集群服务器8071 </h1>
nginx2文件夹index.html内容
<h1> 我是nginx—— 集群服务器8072 </h1>
发布后访问其中一个显示如下内容
下载nginx
我们去官网下载windows版本的nginx, 下载地址:http://nginx.org/en/download.html
这里下载的是稳定版1.20.1,其他版本操作基本相同。
配置nginx
把刚刚下载的文件解压,整体拷贝到你自己指定的路径去。
下载后解压出来后目录结构如下
更改配置文件
进入conf文件,找到nginx.conf文件,更改配置,里面的weight代表当前服务器的权重,值越高使用率越高,如下
启动nginx
1、启动命令
start nginx
2、重新载入Nginx
nginx.exe -s reload
进入nginx里面的cong文件夹位置,输入cmd回车
启动后,如果修改了配置文件的话需要运行 nginx.exe -s reload重新载入,
运行监听服务器
打开浏览器,在地址栏中输入刚才在Nginx中设置的代理(这里是192.168.0.5:8046,这是你自己配置的监听服务器)。
按F5刷新(大家如果有兴趣可以更改配置文件中Weight中的比例来看效果,我这里设置了1权重,也就是说平均分配)
nginx代理转发(反向代理)
正向代理
正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,
客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
客户端才能使用正向代理。
如:在如今的网络环境下,我们如果由于技术需要要去访问国外的某些网站,此时你会发现位于国外的某网站我们通过浏览器是没有办法访问的,
此时大家可能都会用一个操作FQ进行访问,FQ的方式主要是找到一个可以访问国外网站的代理服务器,我们将请求发送给代理服务器,代理服务器去访问国外的网站,然后将访问到的数据传递给我们!
图:正向代理
反向代理
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。
同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。
反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
图:反向代理
示例
访问本地的指定路径反向代理转发到博客园地址
配置如下:
重新加载nginx,运行本地地址+配置的监听端口,如下: