1、购买四台服务器
- nginx反向代理服务器
- 数据库服务器
- jar包服务器1
- jar包服务器2
2、数据库服务器配置
- 使用mysqldump将本地数据库导出,miaosha.sql
scp miaosha.sql root@IP地址:/tmp/
- 数据库服务器首先创建miaosha数据库 再导入miaosha.sql
mysql>source /tmp/miaosha.sql
- 连接到mysql服务器上修改系统相关的配置,将对应的用户授予远程连接及后续的所有权限,即添加两个jar包服务器权限
show databases;
use mysql;
select host,user,password from user;
grant all privileges on *.* to root@'%' identified by "password";
flush privileges;
select host,user,password from user;
3、jar包服务器配置
- 两个jar包服务器java环境安装,使用yum
查看是否有安装 yum list installed |grep java
查看支持的java包 yum -y list java*
安装 yum -y install java-1.8.0-openjdk* 最后进行 java -version 验证
- 重新上传应用程序的jar包
- 修改application.properties的配置,将对应的分布式的数据库连接url加入配置文件中
- 最后启动,访问验证
4、nginx负载均衡反向代理器的云端部署
- 直接上openresty的组合安装包
- 先行条件,需要在linux安装pcre,openssl,gcc,curl等
yum install pcre-devel openssl-devel gcc curl
- 下载openresty 下载页面 http://openresty.org/cn/download.html
- 下载后tar -xvzf openresty**.tar.gz解压后进入
- ./configure
- make
- make install
- 安装完成,nginx默认安装在 //usr/local/openresty/nginx目录下
- 修改本地和阿里云服务器的host路径,以便于统一访问
阿里云服务器ip -> miaoshaserversudo vim /etc/hosts
5、nginx静态资源部署
- 进入nginx根目录下的html下,然后新建resources目录用于存放前端静态资源
- 设置指向resources目录下的location可以访问对应的html下的静态资源文件
location /resources/ {
alias /usr/local/openresty/nginx/html/resources/;
index index.html index.htm;
}
6、nginx动态请求反向代理
反向代理配置,配置一个backend server,可以用于指向后端不同的server集群,配置内容为server集群的局域网ip,以及轮训的权重值,并且配置一个location,当访问规则命中location任何一个规则的时候则可以进入反向代理规则
upstream backend_server{
server 内网id weight=1;
server 内网id weight=1;
}
location / {
proxy_pass http://backend_server;
proxy_set_header Host $http_host:$proxy_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
7、tomcat动态服务的acc日志
验证开关 acc日志开关,在jar包服务器的application.properties文件中追加tomcat设置
#日志开关
server.tomcat.accesslog.enabled=true
#日志格式
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D
server.tomcat.accesslog.directory=输出日志路径
7、nginx服务器和jar包服务器开始长连接
采用1.1的http协议, Connection “”
upstream backend_server{
server 内网id weight=1;
server 内网id weight=1;
keepalive 30;
}
location / {
proxy_pass http://backend_server;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Connection "";
}