废话不多说,由于本人只有三台可用服务器,所以搭建一个简单的nginx+tomcat小集群。很简单,仅供学习参考
准备:
三台云服务器或者三台虚拟机均可(系统为centos7),原理相近。由于在window下集群十分简单,所以演示CentOs7下实现小集群。
选择其中两台安装web环境这个可以自行百度
选择其中一台安装Nginx可以百度也可以参考我的博客https://mp.csdn.net/postedit/80634852
准备成功以后进入正题。
1.Nginx配置:将你的项目分别在装好tomcat环境的机器上部署,可以使用ip访问即可,当然不放项目也行用tomcat默认页面(最好有项目,后续会涉及到数据库主从与读写分离,redis缓存)
在安装好Nginx的服务器上修改nginx.conf配置文件
以下是上图代码段
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
upstream tomcat_server {
ip_hash;
server 47.105.163.133:8080 weight=1;
server 47.105.175.100:8080 weight=1;
}
server {
listen 80;
server_name fz.0791youxi.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcat_server;
proxy_redirect default;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
配置好了以后重启nginx,访问你刚才配置的域名,你就会发现nginx已经可以代理请求了。关掉其中一台tomcat,nginx还能照常访问。
好了这一步算是完成了,很简单。
接下来我们需要安装一个Redis来做缓存
2.安装配置Redis:
工作忙后续更新...
3.配置mysql数据库主从:
3.1首先在两台服务器面安装好mysql数据库
3.2配置master数据库
编辑主master服务器配置文件/etc/my.cnf
在[mysqld]节点下加入两句话:
server-id=1
log-bin=mysql-bin #启用二进制日志;
然后重启服务:systemctl restart mysql.service
登录mysql:mysql –uroot -proot
mysql>flush tables with read lock; #数据库锁表,不让写数据;这步骤可不做
对于当前环境的mysql无需使用lock命令,因为没有人操作,但是生产环境中必须这样做
mysql>show master status; #查看MASTER状态(这两个值File和Position与下面红色字体是对应的)其中的file就是二进制文件,position
记录当前操作sql的步骤数(注意一条sql包含多步,所以不是sql语句的120
3.3配置从服务器
修改/etc/my.cnf增加一行:
server-id=2
3.4通过mysql命令配置同步日志的指向:
change master to master_host='172.16.0.10',master_port=3306,master_user='slave',master_password='Some_Pass1',master_log_file='mysql-bin.000003',master_log_pos=154;
master_host 主服务器的IP地址(内网地址)
master_port 主服务器的PORT端口
master_log_file 和主服务器show master status中的File字段值相同
master_log_pos 和主服务器show master status中的Position字段值相同
mysql>start slave; #stop slave;停止服务,出错时先停止,再重新配置
mysql>show slave status\G; #查看SLAVE状态,\G结果纵向显示。必须大写,这个命令无法再sqlyog中使用
systemctl restart mysql.service #重启服务 service mysqld restart
此时主从复制就配好了,现在来测试一下吧!!自己在主库中新增一个数据库,查看从库中是否有你新建的数据库,如果有那么就成功了。
4.数据库读写分离
工作忙后续更新...