虚拟机安装多个centos7进行集群
1 虚拟机镜像的选择
做项目时需要考虑高并发场景,最先想到的就是搭建一个集群进行负载均衡,本来想直接在服务器上进行试验,后来发现要多台服务器而且集群貌似需要在内网段进行,所以选择了虚拟机进行集群。因为电脑内存有限,所以选择了centos7最小镜像进行搭建,minimal版本的ios镜像,这是我选择的镜像下载地址Centos7下载
我这里使用了virtualBox作为我的虚拟机软件,因为它相比VM消耗的资源更少,安装过程就不详细展述了,这里要注意的是网络的选择,需要选择两个网卡:
NAT—用来连接外网,下载软件(该镜像是没有任何东西的)
Host-Only—用来和主机进行通信
2 虚拟机的配置
centos minimal系统安装好后默认是不启动网络的,无法访问外网,并且centos7 默认不支持ipconfig命令,通过 “ip addr”进行网盘信息查询,可以看到两个网卡分别变成了enp0s3和enp0s8。
在这里注意一下,登录的用户名是root。
-
开启网络访问
配置方式为将/etc/sysconfig/network-scripts/ifcfg-enp0s3文件以及ifcfg-enp0s8的ONBOOT=no 改为 ONBOOT=yes。
输入以下命令之后就可以上网了,而且可以直接用SSH连接(先查看本地地址,然后使用finalshell进行连接)
1
service network restart
-
安装ifconfig功能:
1
yum install net-tools
-
安装其余常用工具
1
yum install gcc gcc-c++ vim make gdb wget
-
重命名enp0s3为eth0
对/etc/default/grub文件进行编辑,并在GRUB_CMDLINE_LINUX的最后,加上 net.ifnames=0 biosdevname=0 的参数,然后依次执行如下命令
1
grub2-mkconfig -o /boot/grub2/grub.cfg
1
mv /etc/sysconfig/network-scripts/ifcfg-enp0s3 /etc/sysconfig/network-scripts/ifcfg-eth0
最后reboot进行重启
3 设置tomcat开机自启
怎么安装tomcat以及jdk在这里就不展述了,网上有很多教程,在这里我罗列一种开机自启tomcat的方法,我的
tomcat目录为/root/down/apache-tomcat-8.5.45
JDK目录为/root/down/jdk1.8.0_221/
1、为Tomcat添加启动参数
catalina.sh在执行的时候会调用同级路径下的setenv.sh来设置额外的环境变量,因此在/root/down/apache-tomcat-8.5.45/bin
路径下创建setenv.sh文件,内容如下:
1 | #JAVA_HOME |
2、在/usr/lib/systemd/system路径下添加tomcat.service文件,内容如下:
1 | [Unit] |
3、把tomcat加入开机自启动
systemctl enable tomcat.service
4、重启服务器
reboot
5、再次连接后,查看服务状态
systemctl status tomcat.service
在这里有个坑,就是浏览器访问时会一直转圈,我估计是机器性能的缘故
安装上文的参考文章进行多个虚拟机的搭建,然后配置好jdk和tomcat,在这里要注意的是防火墙的使用,虚拟机的话可以直接关闭防火墙
1、firewalld的基本使用
启动: systemctl start firewalld
查看状态: systemctl status firewalld / firewall-cmd --state 这个命令也可以,只是信息会简单点
停止: systemctl disable firewalld
禁用: systemctl stop firewalld
怎么开启一个端口
添加
1 | firewall-cmd --zone=public --add-port=8080/tcp --permanent (--permanent永久生效,没有此参数重启后失效) |
添加端口外部访问权限(这样外部才能访问)
1 | firewall-cmd --add-port=8080/tcp |
重新载入,添加端口后重新载入才能起作用
1 | firewall-cmd --reload |
这些之后,端口是开启成功的,如果没有成功,重启系统试试。
查看端口
1 | firewall-cmd --zone=public --query-port=80/tcp |
删除端口
1 | firewall-cmd --zone=public --remove-port=80/tcp --permanent |
查看firewall是否运行,下面两个命令都可以
1 | systemctl status firewalld |
查看当前开了哪些端口
其实一个服务对应一个端口,每个服务对应/usr/lib/firewalld/services下面一个xml文件。
查看开启了哪些服务
1 | firewall-cmd --list-services |
查看开启了哪些端口
1 | firewall-cmd --list-ports |
查看还有哪些服务可以打开
1 | firewall-cmd --get-services |
查看所有打开的端口:
1 | firewall-cmd --zone=public --list-ports |
更新防火墙规则:
1 | firewall-cmd --reload |