2、分布式扩展

本文介绍了如何使用Nginx解决单机容量问题,通过反向代理和负载均衡实现水平扩展。详细讲解了配置Nginx、部署OpenResty以及启用反向代理的过程,并探讨了Nginx的高性能原因,包括epoll多路复用和master-worker进程模型。同时,文章还介绍了分布式会话管理,讲解了基于cookie和token的会话实现方式,以及如何将session迁移到redis以适应分布式环境。
摘要由CSDN通过智能技术生成

本章目标

nginx反向代理均衡
分布式会话管理
使用redis实现分布式会话存储

1.单机容量问题,水平扩展方案引入

引入nginx反向代理负载均衡

上一章我们看到当单机系统时候,容量有限,响应时间变长TPS上不去的问题。nginx反向代理的功能就是代理后端Tomcat服务器集群,以统一域名方式来访问

单机容量问题,水平扩展
nginx反向代理
负载均衡配置

2.数据库远程开放端口连接

这次的水平扩展指的是对应用系统程序扩展,而mysql数据库只有一个,用来开放远端连接(mysql读写分离、分库分表等方法可实现mysql水平扩展,这里没讨论),服务端实现水平对称部署,最后验证访问

Nginx系统框图如下:
前端页面会访问miaoshaserver.com,之后nginx将这个域名反向解析并且负载均衡给部署了miaosha.jar的服务器上。
在这里插入图片描述

3.修改前端资源用于部署nginx

nginx有三种用途:

使用nginx作为web服务器(静态资源访问)
使用nginx作为动静分离服务器
使用nginx作为反向代理服务器(动态资源请求)

将上面的nginx的系统进行改良,
(1)前端页面请求静态资源的时候访问的是miaoshaserver/resources动态资源走的是原来的miaoshaserver。
(2)静态资源是nginx从本地磁盘(企业中是使用NAS)直接存取,动态资源是通过后端访问mql

在这里插入图片描述
那先部署静态资源请求:

在html文件静态资源目录下新建gethost.js,用来方便配置修改远端连接地址,然后在每个页面上对应修改,然后将静态资源上传到服务器上

4.部署Nginx OpenResty

使用Nginx的框架OpenResty来开发配置Nginx,OpenResty是基于NGINX和LuaJIT的动态Web平台。优点是可以支持lua的一些开发。
安装OpenResty

安装openresty之前的应用要安装好,如下:

yum install pcre-devel openssl-devel gcc curl

安装前置应用以后,下载OpenResty,解压压缩包,进入解压后的文件夹,然后执行configure文件

./configure

然后make进行编译

make

这里会报一个错误

src/os/unix/ngx_user.c: 在函数‘ngx_libc_crypt’中:
src/os/unix/ngx_user.c:26:7: 错误:‘struct crypt_data’没有名为‘current_salt’的成员
     cd.current_salt[0] = ~salt[0];

这个时候进入源代码注释掉这一行就可以了

./bundle/nginx-1.13.6/src/os/unix/ngx_user.c

之后用make install进行安装

make install

应用就会安装在/usr/local/openresty 文件下面

将nginx指定成web服务器

location节点path :指定url映射key
location节点内容:root指定location path后对应的根路径,index指定默认的访问页
sbin/nginx -c conf/nginx.conf启动
修改配置后直接sbin/nginx -s reload无缝重启

若何指定nginx为web服务器:进入/usr/local/openresty/nginx 后执行下面的命令

sbin/nginx -c conf/nginx.conf

5.前端资源部署

1.之前的秒杀项目的html文件夹中的文件上传到//usr/local/openresty/nginx/html目录下,增加一个gethost.js,里面加入了nginx服务器域名,之后的域名转换都是在本地(用户)服务器上指定

2.修改本地hosts文件指定nginx的IP地址域名为miaoshaserver

3.修改nginx目录下conf文件,进入/usr/local/openresty/nginx/conf文件下,修改nginx.conf

在这里插入图片描述

上图的红框中的内容是:alias的作用是当访问resources的时候,直接访问/usr/local/openresty/nginx/html/resources/地址

当我们浏览器访问miaoshaserver/resources/…时,访问的是/usr/local/openresty/nginx/html/resources/目录下的静态资源文件,做到H5请求静态资源到nginx服务器

4.将当前目录切换到/usr/local/openresty/nginx/下,使用下面的命令无缝重启

sbin/nginx -s reload

无缝重启指的是修改nginx配置文件后不需要重启nginx服务器,连接不会断,只变化了进程号(worker进程)

在这里插入图片描述
如图所示,nginx服务器的修改不会影响到前端用户的使用

7.配置nginx反向代理

location 节点path特定resources : 静态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值