【LSP】一个简单的集群环境搭建

1427417289   ·   发表于 3个月前   ·   编程代码


一、服务器和软件环境:

1、两台服务器,ip分别是192.168.1.250和192.168.1.251,都安装的是centos7操作系统;

2、要求:应用程序做集群,数据库做双主热备,附件存储在文档服务器;看起来大概像这样的结构:

3、说明:刚开始开发的时候,没有这些要求,只要一个单机版的应用程序。因为没有准备附件上传到ftp的代码,为了不改动代码,才选择了磁盘挂载的方案。

二、环境搭建

1、拿到手里的是两台裸机,用之前刻录好的CentOS7.6的系统盘做了系统。因为是core版本的iso镜像,很多工具没有,给后边的环境搭建带来不少麻烦(在服务器不能联网的情况下);

2、开始的时候,服务器不能上外网,用路由器组建一个局域网,把本地的安装包通过FileZilla上传到服务器。jdk版本是1.8(下载地址: https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html ),mysql版本是5.6(下载地址: https://dev.mysql.com/downloads/mysql/5.6.html ),nginx版本是1.18(下载地址: http://nginx.org/en/download.html )。

3、安装JDK。进入 jdk安装包所在路径,通过命令:

tar -zxvf XXX.gz

把压缩包解压,然后通过命令:

vi /etc/profile

把jdk的安装路径添加到PATH环境变量。保存退出后,执行命令:

source /etc/profile

使环境变量生效,命令运行java -version能看到jdk版本信息,则jdk安装就完成了。

4、安装mysql。安装mysql之前,先要把系统自带的数据库卸载,由于我安装的centos是core版,没有自带的mariadb,则略过卸载的步骤。

提前说一下,在连通网络的情况先执行(根据提示,少什么模块就安装什么模块)

yum -y install gcc zlib openssl pcre pcre-devel openssl-devel autoconf

如果上来就执行mysql_install_db命令,会跳出一大堆的错误信息,基本都是缺少依赖的工具包。比如出现如下错误:

FATAL ERROR: please install the following Perl modules before executing /usr/local/mysql/scripts/mysql_install_db:
Data::Dumper
其实缺少的是autoconf模块。具体安装mysql的过程,就不细说了,网上教程非常详细。

5、安装nginx。这里提两点:一是在执行./configure命令的时候,一定要把--with-stream加上,后边要用到;二是centos7.6安装nginx后,没有自动做成系统服务,如果想通过service nginx start这样的命令来启动nginx,需要手动写一些配置文件,具体过程自行查找。

6、应用系统负载配置,nginx在251服务器上。

所有的负载都通过nginx来实现,同时文档服务器也是用nginx做代理。springboot开发的项目,server的端口是8080,将项目jar包分别上传到两台服务器。像这样:

192.168.1.250:8080,192.168.1.251:8080

7.8直接上nginx的负载配置文字限制一楼看
3 Reply   |  Until 2个月前 | 4359 View

admin
发表于 3个月前

直接上nginx的负载配置:

#user nobody;
worker_processes 1;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}

http {
autoindex off;
sendfile on;
keepalive_timeout 65;

upstream lvsTest{
ip_hash;
server 192.168.1.250:8080;
server 192.168.1.251:8080;
}
server {
listen 8088;
server_name 192.168.1.251;
location / {
proxy_pass http://lvsTest;
proxy_set_header Host
负载策略是ip_hash,防止出现session相关问题;上边一个location是用作应用程序负载,下边一个location是用作文档服务器,注意是alias。

评论列表

  • 加载数据中...

编写评论内容

wuhui
发表于 3个月前

7、数据库负载,nginx在250服务器上。配置文件:

#user nobody;
worker_processes 1;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}

stream{
upstream cloudsocket {
hash $remote_addr consistent;
# $binary_remote_addr;
server 192.168.1.250:3306 weight=5 max_fails=3 fail_timeout=300s;
server 192.168.1.251:3306 weight=5 max_fails=3 fail_timeout=300s;
}
server {
listen 13306;
proxy_connect_timeout 10s;
proxy_timeout 3000s;
proxy_pass cloudsocket;
}
}
代理msyql数据库,用的是stream模块,不是http了。前期如果没有安装stream模块的话,这会在stream这一行报错。

评论列表

  • 加载数据中...

编写评论内容

promise
发表于 3个月前

用ip_hash负载均衡是不是效果不太好。

评论列表

  • 加载数据中...

编写评论内容
LoginCan Publish Content