2.nginx分布式扩展

11 篇文章 4 订阅

通过单机压测可以看到,吞吐量在200-300之间,对于服务器的数据库也有较大的压力。

nginx反向代理负载均衡

在单机的情况下,容量总归有上限,对于我们看服务器后台进程情况,有这样一个图:

表象上:单机cpu使用率增高,内存占用增加,网络带宽使用增加。

cpu us:用户空间的cpu使用情况(用户层代码)

cpu sy:内核空间的cpu使用情况(系统调用)

load average:1,5,15分钟load平均值,跟着核数系数,0代表通常,1代表打满,1+代表等待阻塞

memory:free空闲内存,used使用内存

既然有上限,那么我们需要进行水平扩展,也就是nginx反向代理,并且可以负载均衡。

对于系统可以分布式部署,对于数据库而言,在不考虑分库分表的情况下,就需要开放远端连接了。

接下来一步一步部署一下。


首先准备四台服务器,一台用来做nginx反向代理,两台做应用服务器,一台做数据库:

因为我们之前已经把程序放在了一台服务器上,所以要做转移:

运行命令:scp -r //var/www root@172.18.75.246:/var/,直接使用阿里云内网拷贝,另一台也是一样
然后安装java,这里不再赘述。

这里需要注意的是,配置文件需要改数据库地址:

当然数据库并不是谁都能访问的,所以我们需要添加数据库的访问权限,否则访问不了,telnet ip port的时候会显示拒绝连接,所以去数据库服务器打开数据库:

使用系统的mysql#user:

这里展示了所有访问权限,在这里为了方便起见,授权所有人只要知道密码都可以访问,使用命令:

grant all privileges on *.* to root@'%' identified by 'root';

这样,就会添加一条,其他服务器就可以访问了。


接下来部署nginx,nginx可以用来做web服务器,也可以作为动静分离服务器以及反向代理服务器。

由于nginx是具有高自由度的软件,具有非常多的模块,因此在配置的时候需要非常全面的考虑,所以我们选用OpenResty工具,它里面集成了大多数nginx的常用模块,并且可以支持lua。

去官网下载openresty后解压, ./configure进行编译,当然前提是安装了pcre-devel、openssl-devel(yum install pcre-devel openssl-devel gcc curl),然后make install安装,安装后在/usr/local/openresty下,注意下/usr/local/openresty/nginx/sbin下会有一个nginx文件,后期如果openresty满足不了需求,可以自己定制nginx生成文件后替换这个文件即可。

安装好以后启动一下,在nginx下sbin/nginx -c conf/nginx.conf,看下端口:

接下来把前端文件上传到nginx下的html中,这样前端就可以访问了,但是我们需要nginx做转发,所以需要实现当访问静态资源文件的时候是直接访问,需要代理的时候做代理,因此还需要改下配置:

改为下面的: 

alias就是做转发定位用的,然后当然吧前端资源都放在resources中,接下来请求的时候需要加上resources:


由于要做到动静分离服务,所以还需要部署反向代理服务器:

部署upstream server,打开配置文件添加下面配置:

代表这个nginx是应用服务器的client,所以http的host字段需要拼接。

代表真正的ip地址是远端的ip地址,否则backend_server拿到的地址是nginx的地址.

代表这个nginx代理服务器转发了对应的请求。

接下来sbin/nginx -s reload重新加载nginx即可。

 

然后开启tomcat access log验证

tomcat的access log显然是记录日志用的,对后期拍错非常有用,springboot默认关闭,所以在配置文件中加:

server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.directory=/var/www/miaosha/tomcat
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D

第三行分别代表:远端请求ip地址,默认是“-”,远端主机user,处理时长,请求url,http返回状态码,请求response大小,处理请求的时长。

重启tomcat后请求,看下日志:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值