nginx操作详细解析和演示(图文并茂)——反向代理,负载均衡

1.工具软件

链接:https://pan.baidu.com/s/1y94VbQV4IQgpxgNoq2vi4A?pwd=7kj0 
提取码:7kj0

用的windows版本演示

解压下来只至少要有这几个文件

2.配置文件解读 

进入到conf文件下

打开nginx.conf文件

worker_processes
worker_processes 1 ; 默认为 1 ,表示开启一个业务进程
worker_connections
worker_connections 1024 ; 单个业务进程可接受连接数
include mime.types;
include mime.types ; 引入 http mime 类型
default_type application/octet-stream;
default_type application/octet - stream ; 如果 mime 类型没匹配上,默认使用二进制流的方式传输。
sendfifile on;
sendfile on ; 使用 linux sendfile(socket, file, len) 高效网络传输,也就是数据 0 拷贝。
未开启 sendfifile
  • 虚拟主机配置

root html; 文件根目录
index index.html index.htm; 默认页名称
我们到我们程序的文件目录

 

点击进去 

修改index的内容然后启动nginx.exe程序

放我我们的主机会默认跳转到这个静态资源 

因为我们在配置文件中设置了 端口和主机 名让访问这个主机的这个端口默认进行跳转到某个资源上。

如果我们用ip地址去访问结果也是一样的;

2.1 演示

新建www文件夹在www文件下面新建2个文件 

按照相同的方式新建index.htm文件

我们规定img的是在8889端口访问

vedio是在8888端口访问

我们在nginx.conf文件下进行配置

这里我们进行配置 但是我们的主机名 用的是自己注册的域名,和用localhost效果一样 。

 

 2.2 主机名匹配规则

3.反向代理

         对于现在开发来说,当业务逻辑变得庞大之后,一个服务端口或者一个服务器只处理一个模块的功能,比如说服务器A处理项目的用户模块 服务器B处理模块这样就会提高后台服务器的运行效率。

        如果不用nginx进行代理和反向代理,有用户之间访问服务器资就显得很繁杂或者地址非常多变。

        如果实现了nginx进行代理和反向代理,用户请求ngin服务器在进行转发到项目的资源服务器

资源服务器先发给nginx资源再发给用户,如图下

这样我们放我我们自己的主机名字可以转发到百度的服务器。 

4.负载均衡

        在上面提出来的一样,为了提高服务器的高可用,一样的服务器都是有好几台服务器去支持一个项目或者平台的运行。所谓的负载均衡就是好比排队一样,如果在高峰期一个入口是不够人流通过的,这样有3个入口人流的通过率就会高很多。而且为了避免人流只通过一个入口要实现分流,等同于我们的负载均衡。

        设置了负载均衡之后我们的服务器不会因为一下的高峰访问崩溃,在过大的流量访问服务器的时候nginx帮我们进行负载均衡分发给不同服务器处理用户的请求。 

我们模拟一下负载均衡的场景

首先我们要在linux下创建3个nginx服务器。怎么安装liunx服务器看我之前的文章。

4.1 linux安装nginx

我们在113/114/115后缀的主机下配置3个服务,演示一个服务及一反三

下载文件

Nginx 开源版
http://nginx.org/
用ssh工具讲安装包放到linux下

进入放置压缩包的文件夹

tar zxvf (文件名)解压文件

安装3个依赖文件

yum install - y gcc
yum install - y pcre pcre - devel
yum install - y zlib zlib - devel
编译安装
./configure -- prefix=/usr/local/nginx
执行
make install
进入
/usr/local/nginx/sbin

sbin 是启动程序 其他和windows一样我们进去html文件更改一下

让这个静态文件显示 

this is xxx service

进入sbin

./nginx 启动程序

然后我们在浏览器上输入虚拟机的地址就可以访问我们的静态资源

重复创建114 115主机。 

4.2 实现负载均衡

我们在windows下的nginx服务器进行负载均衡的转发(基于反向代理)

进入配置文件配置如下

然后我们访问 localhost 快速上刷新就可交替访问到113 114 115的主机资源 

访问localhost转发到 114主机并且多次刷新会转发到其他主机 

4.3 负载均衡策略

 我们将113主机后面加上权重10 我们不停的刷新浏览器就较多次访问113主机

5.动静分离

        对于简单的项目来说,项目会存在静态资源例图,logo图片 css样式等等就是不需要服务器访问数据库的动态操作。为了提高服务器的速度我们可以用nginx将项目进行拆分。

        我们可以吧项目的静态资源加载的过程放在nginx服务器,然后项目服务器专心完成动态的访问请求大大的降低了服务器的压力。

5.1 案例讲解

假设我们有一个tomcat项目 需要加载img和css静态资源

我们可以吧 tomcat项目的静态资源迁移到nginx服务器上配置让 用户访问nginx访问->服务器过程的时候在访问进入到nginx就先加载静态资源

配置过程很简单,只需要在你conf文件的虚拟主机下的servic添加以下配置

 注意这个要基于反向代理的前提下,最后一定要通过反向代理发送到你项目本机的服务器

除了写死之外我们还可以用正则表达式进行匹配

 6.UrlRewrite

        我们访问项目的路径格式如下

域名(ip地址):端口/xxx/xxx

我们为了提高安全性我们可以隐藏/xx/xx真实的服务器访问地址可以在nginx进行设置让 设置的匹配规则通过nginx帮用户的访问进行转发

我们项目的实际地址是 inde.jsp?pagenum=2我可以通过 替换成 2.html   

7.实现nginx高可用

        

我们会通过配置一个nginx主机进行转发 他的子机器来做负载均衡的处理,但是如果遇到突发情况或者说分发主机挂机了要怎么实现高可用呢。

        这个时候我们会用到一个第三方的keepalived插件来进行处理        

        因为我们知道每一个nginx服务器对应一个IP地址 

        keepalived是按照在每一个nginx下和nginx协同工作的

        keepalived会配置一个虚拟地址加入这个机器下机了会转发到另一个在线的主机地址。

配置了keepalived就会有一个虚拟ip这个ip在主机和备用机互相跳转有一个主机下线另一个主机就会顶替他继续工作 

7.1配置详解

我们按照配置把113配置为主机

114配置为备用机

  • 113机器

 

这个是实例名称可以自取

虚拟机的网卡  ip addr 查询

  •  114机器

 配置完成后 启动服务

systemctl start keepalived
主服务器查询

 如果我们去备用服务器查询是不会出现备用ip地址只有 主机挂机后查询备用机才有

这样就可以验证我们的 第三方插件服务启动生效了。我们在windows下ping2个主机都可以通 

开启nginx服务器后 访问虚拟ip也可以访问到113机器的nginx服务

如果我们关闭113主机继续刷新访问 虚拟ip 我们可以访问到114的ngin服务

这样我们就实现了nginx的高可用

如果我们再次上线113主机的keep。。和nginx服务那么通过虚拟机访问会重新访问到113主机。 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值