阿里云个人服务器搭建项目笔记四:nginx反向代理优化,分布式扩展

首先我们需要思考上一个章节并发上不去的原因。发现在并发环境下mysql数据库的压力始终很大,一台服务器上面不仅仅要跑java的jar包程序,还要承受高并发访问数据库的压力。这样的压力都在同一台服务器上显然存在缺陷。所以我们可以购买多台服务器。

一台专门用来部署项目的数据库。
两台或多台用来部署项目jar包。
一台用来配置部署nginx反向代理。

首先这里购买4台服务器,两台跑java,一台部署数据库,一台部署nginx。

部署前准备:
将原来的 //var/www项目文件夹传输至另两台需要部署jar包的服务器中,原来的服务器就用来部署mysql数据库。

使用scp:
scp -r //var/www root@目标服务器ip地址:/var,然后输入密码即可。
这里如果购买的多台服务器都是阿里云的同一地区的服务器,用私有ip进行传输,因为阿里云同一地区的服务器是内网互通的,互相传输快的飞起。

分别将www内的项目文件传输完成之后。准备在两台服务器上面配置数据库连接并启动。

应用程序服务器(两台)

先在两台应用程序服务器上rpm安装jdk,之前的笔记中有操作流程这里不再赘述。
切换到项目www/seckill目录准备启动项目。在把jar包跑起来之前,先要将接收到的配置文件修改一下,因为,项目中的application.properties文件默认的datasource.url是localhost:3306。如果这样启动起来,是找不到数据库的,因为应用程序服务器并不是用来部署数据库的,所以,我们打开外挂的配置文件修改datasource:
vim application.properties.
添加下面一行配置:
spring.datasource.url=jdbc:mysql://数据库服务器的内网ip:3306/seckillboot?serverTimezone=GMT%2B8
数据库服务器的内网地址即刚刚传输项目的服务器,必须用内网ip保证数据库访问速度

配置好DataSource之后,在启动项目之前,测试能否连接上数据库的服务器:
yum install telnet
telnet 数据库服务器ip 3306
结果发现,远程数据库拒绝了连接。
这时候我们要去数据库服务器配置mysql的远程连接权限(见第二部分)。
配置好之后再次telnet ip:3306测试连接,提示输入数据库密码即可连接,这里就不连了,直接 ./deploy.sh & 启动项目即可。
启动项目之后,访问 项目服务器公有ip/可以访问数据库的路径,我的是ip/item/get?id=9,可以显示出从数据库获取的item数据,表示部署成功(两台服务器操作相同)

数据库服务器

配置其他服务器连接数据库的权限

只要知道数据库的root的密码就可以有全部数据库的全部权限,最后刷新权限,无需重启数据库,可以这样配置。
mysql -uroot -p密码
grant all privileges on

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值