概述
服务器关系
192.168.1.2 部署haproxy ,tomcat,apache,nfs,jdk
192.168.1.3 部署tomcat,nfs,mysql主,jdk
192.168.1.4 部署 nfs,mysql从
首先安装jdk,tomcat,不在写怎么安装了,请自行百度。
------------------------------------------mysql主从搭建开始------------------------
接着在 192.168.1.3及192.168.1.4安装mysql 同样的版本。本次采用mysql-8.0.20
将下载好的mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz 安装包上传到192.168.1.3及192.168.1.4下的/usr/local/下
解压执行: tar Jxvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
重命名:mv mysql-8.0.20-linux-glibc2.12-x86_64 /usr/local/mysql
添加用户组设置权限
进入目录 cd /usr/local/mysql 创建文件夹 mkdir tmp # 设置权限 chmod -R 777 tmp # 增加组和用户 groupadd mysql useradd -r -g mysql mysql # 设置权限 chown -R mysql:mysql /usr/local/mysql chown -R root:root /usr/local/mysql 初始化, 得到初始密码,编译好了后最后有一行密码,先记录下来记录密码 ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
编辑配置文件
vi /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
#default-character-set=utf8
character-set-server=utf8
socket=/usr/local/mysql/tmp/mysql.sock
log-bin=binlog ###开启binlog 从库请注释本行
#binlog-do-db=xxxx ###设置同步的数据库 从库请注释本行,主库打开
#replicate-do-db=XXX###设置同步的数据库 从库请打开行,主库请注释本行
server-id=1 ##serverid唯一 从库设置为2
[client]
port=3306
default-character-set=utf8
socket=/usr/local/mysql/tmp/mysql.sock
修改mysql密码
cd /usr/local/mysql/bin
./mysql -u root -p 回车后输入刚才安装的时候生成的密码
登录后执行:use msyql;
执行:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root'; 修改密码 FLUSH PRIVILEGES; 刷新权限
在主库上新建一个用户让从库使用该用户进行复制数据
create user 'app2'@'192.168.1.4.%' identified by 'root';
grant replication slave on *.* to 'app2'@'192.168.1.4.%';
grant all privileges on *.* to 'app2'@'192.168.1.4' ;
重启mysql(service mysql stop,service mysql start)主后执行show master status:
记住这两个值,在启动从数据库的时候需要使用
从数据库启动 cd /usr/local/mysql/
./bin/mysqld_safe --defaults-file=/etc/my.cnf --skip-slave-start
然后访问从mysql
执行(注意先在主服务器上执行获取 show master status 获取MASTER_LOG_FILE,MASTER_LOG_POS)
CHANGE MASTER TO MASTER_HOST='192.168.1.3',MASTER_PORT=3306,MASTER_USER='app2',MASTER_PASSWORD='root' ,MASTER_LOG_FILE='修改为图中的binlog.000009',MASTER_LOG_POS=Position;
在执行start slave;
参考地址:centos8下使用mysql安装包安装mysql8.02 - 王牌男人 - 博客园
MySQL主从搭建 - honeylemon - 博客园
------------------------------------------mysql主从搭建完成------------------------
------------------------------------------haproxy 搭建开始------------------------
haproxy 搭建(默认tomcat已经完成)
下载地址https://src.fedoraproject.org/repo/pkgs/haproxy/haproxy-2.4.8.tar.gz/
将下载的文件解压到/usr/local/haproxy/
make TARGET=linux418 PREFIX=/usr/local/haproxy ##TARGET参数使用uname -r make install PREFIX=/usr/local/haproxy
在/usr/local/haproxy下尽力logs,conf 如图下目录
编辑haproxy配置文件,该配置文件根据url负载到3个后端服务,路径中带有 ip/apache的则交给s3(apache服务处理)服务处理,其他的路径交给 s1,s2的tomcat处理
[root@ecs-278566 haproxy]# more conf/haproxy.cfg
global
log 127.0.0.1 local0
maxconn 40960
chroot /usr/local/haproxy
uid 99
gid 99
daemon
nbproc 1
pidfile /usr/local/haproxy/logs/haproxy.pid ###pid文件位置
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
maxconn 20480
timeout connect 5s
timeout client 120s
timeout server 120s
listen web
bind 0.0.0.0:8099
mode http
balance roundrobin
stats uri /haproxy-stats
stats refresh 10s
stats realm Haproxy statistics
stats auth admin1:admin1234
option httpchk HEAD /index.html
frontend http #前端配置,接收请求的端口组,http名称可自定义
mode http
bind 0.0.0.0:80 #监听端口,发起http请求到80端口,会被转发到设置的后端ip及端口
acl apache_port path_beg -i /项目名称/apache # 定义一个ACL,名apache_port,模糊匹配路径/apache 访问图
片
use_backend apache_port_http_nodes if apache_port
default_backend http_back #其他路径转发到后端tomcat,后端名http_back可以自定义
backend apache_port_http_nodes
server s3 127.0.0.1:8088 weight 1 maxconn 2000 check inter 3s rise 3 fall 3
backend http_back #后端tomcat配置,后端名需要与前端配置的保持一致
mode http
balance source
server s1 127.0.0.1:8080 weight 1 maxconn 1000 check inter 3s rise 3 fall 3
server s2 192.168.1.3:8080 weight 4 maxconn 1000 check inter 3s rise 3 fall 3
访问192.168.1.2:8099/haproxy-stats 用户名:admin1 密码:admin1234可以看到s1与s2已经可以看到了
参考资料:haproxy+tomcat集群搭建 - lichmama - 博客园
------------------------------------------haproxy 搭建完成------------------------
------------------------------------------nfs 搭建开始------------------------
192.168.1.4是服务端
192.168.1.3与192.168.1.2是客户端
nfs系统
参考地址:https://blog.csdn.net/guopengNo1/article/details/102741830
客户端和服务端都需要安装nfs-utils 和 rpcbind,
客户端的nfs-utils不需要启动
配置需要共享的目录
服务端:vim /etc/exports
# 添加如下内容到exports中:(修改后执行exportfs -arv)
/opt/public 192.168.1.2(rw,sync,no_root_squash)
/opt/public 192.168.1.3(rw,sync,no_root_squash)
客户端1
mount -t nfs 192.168.0.4:/opt/public /opt/public
客户端2
mount -t nfs 192.168.0.4:/opt/public /opt/public
若客户端运行该命令无反应卡死请检查这两台机器是否可以通信
# 启动
systemctl start rpcbind.service(服务端与客户端)
systemctl start nfs-server.service(服务端)
# 停止
systemctl stop rpcbind.service (服务端与客户端)
systemctl stop nfs-server.service(服务端)
# 查看状态
[root@localhost nfs]# service rpcbind status (服务端与客户端)
[root@localhost nfs]# service nfs-server status(服务端)
挂载的服务突然停了,导致客户端的挂载的文件夹不能访问,在客户端运行sudo umount -l 挂载点
umount /opt/public 卸载挂载点
参考地址:Linux CentOS NFS 服务端及客户端安装配置挂载_guopengNo1的专栏-CSDN博客
Linux将目录设置为所有人都能读写_rocklee的专栏-CSDN博客_linux所有人读权限
------------------------------------------nfs 搭建完成------------------------
apache的安装不在赘述请自行百度
参考地址Linux Apache 图片服务器_weixin_33845881的博客-CSDN博客
最后
以上就是平淡橘子为你收集整理的linux 下搭建haproxy负载均衡+tomcat +mysql(主从复制)+apache文件服务器+nfs共享目录服务的全部内容,希望文章能够帮你解决linux 下搭建haproxy负载均衡+tomcat +mysql(主从复制)+apache文件服务器+nfs共享目录服务所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复