#虚拟机安装CentOS7
###软件环境
虚拟机:VMware-workstation-14.0.0
Linux:CentOS-7-x86_64-DVD-1810.iso镜像文件
虚拟机所在电脑系统:win10
##安装步骤
· 安装VMware
无脑下一步(许可证**:CG54H-D8D0H-H8DHY-C6X7X-N2KG6)
·下载Linux系统镜像文件
官方地址:https://www.centos.org/download/
(随便选个地址进行下载)
·VMware中安装linux系统
点击【文件】,选择【新建虚拟机】。
选择自定义(高级),下一步。
使用的VMware版本是14,默认选择,下一步。
选择安装刚下载的镜像文件(稍后安装也可以,在主页可以设置)
进入系统命名界面,
选择系统安装位置(**注意** 安装位置不能存放在VMware的安装路径,会导致安装权限问题)
点击下一步,默认即可
网络选择:使用网络地址转换(安装后设置桥接)
网络的选择:(可以在安装完成后进行设置)
Bridged(桥接模式):独立ip,局域网中的一独立的主机,它可以访问网内任何一台机器。
需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。
如果你想利用VMware在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择桥接模式。
NAT(网络地址转换模式):使用NAT模式可以实现在虚拟系统里访问互联网。
NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,
因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。
如果你想利用VMware安装一个新的虚拟系统,在虚拟系统中不用进行任何手工配置就能直接访问互联网,建议你采用NAT模式。
Host-only(主机模式):
如果你想利用VMware创建一个与网内其他机器相隔离的虚拟系统,进行某些特殊的网络调试工作,可以选择Host-only模式。
点击下一步,等加载完成
进行选择语言,点击继续
不用更改,点进去完成即可,设置root的密码,等待加载。加载完成点击重启。
##至此 系统镜像安装完成
##按照此方式建立四个系统镜像
###配置系统网络环境
点击虚拟机左侧,选中安装的系统,右键,设置,查看网络连接信息,【硬件】页签,
选择【网络适配器】,网络连接选择【NAT...】,点击【确定】按钮
在虚拟机中,选中安装的系统,点击工具条中的【编辑】-选择【虚拟网络编辑器】
选中【VMnet8】,点击【NAT设置】,查看本地IP网段
点击【DHCP设置】,查看IP起始段,方便设置IP地址
IP 主机名
192.168.135.111 nginx01
192.168.135.112 nginx02
192.168.135.113 nginx03
192.168.135.114 nginx04
进入命令窗口,切换到root的根目录,输入命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改并增加如下内容信息,完成之后,保存退出
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=默认即可
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.135.226
GATEWAY=192.168.135.2
NETMASK=255.255.255.0
DNS1=114.114.114.114
输入命令,使配置有效service network restart
–配置完毕后,查询IP信息,并确认是否网络畅通
配置完成ip:192.168.135.226
监测:ping www.baidu.com
#至此安装镜像配置IP完成
#四个全部配好IP,确保ping同外网及局域网.
若之间ping不通,进行关闭防火墙
centos7以前关闭防火墙
service iptables stop
centos从7开始默认用的是firewalld,这个是基于iptables的,
虽然有iptables的核心,但是iptables的服务是没安装的。所以你只要停止firewalld服务即可:
systemctl stop firewalld.service && systemctl disable firewalld.service
查看防火墙状态:
service iptables status
若报错:
Redirecting to /bin/systemctl status iptables.service
Unit iptables.service could not be found.
进行加载:
yum install iptables-services
####在虚拟机安装Linux操作系统常见问题和解决方案
以防万一,先安装好iptables服务(不管你装没装,先执行,免得后面添乱)
[[email protected] ~]# yum install iptables-services
[[email protected] ~]# systemctl mask firewalld.service
[[email protected] ~]# systemctl enable iptables.service
[[email protected] ~]# systemctl enable ip6tables.service
进入iptables配置80端口,因为nginx默认是由80端口访问
[[email protected] ~]# vim /etc/sysconfig/iptables
这是配置信息:
# Generated by iptables-save v1.4.21 on Fri May 12 21:28:29 2017
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [6:696]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT(我给vsftpd配置的端口)
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT(给nginx配置的端口,原样输入就行了)
-A INPUT -p tcp -m state --state NEW -m tcp --dport 30000:30999 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Fri May 12 21:28:29 2017
然后:wq,保存退出就行了
重启iptables,配置才生效
[[email protected] ~]# systemctl restart iptables.service
开启防火墙,不管你开没有,再开一遍:
[[email protected] ~]# systemctl start firewalld
开启http访问
[[email protected] ~]# firewall-cmd --permanent --add-service=http
加入80端口
[[email protected] ~]# firewall-cmd --permanent --zone=trusted --add-port=80/tcp
#####问题1:ifconfig 如果不好使—command not found,进行如下操作
- 打开/etc/profile文件,在其中输入export PATH=$PATH:/sbin
- 确认上部操作 中 ONBOOT=yes
- init 6 重启
- 执行 yum install -y net-tools 安装:net-tools
#####问题2:开启虚拟机的时候提示如下图片问题
-- 百度自己电脑型号,查看如何快捷键进入的BIOS设置界面
-- 重启计算机,重启的过程中,不停的按进入的快捷键
-- 进入到BIOS设置界面后,将虚拟服务开启(默认是关闭状态)
-- 如果不知道如何开启,可自行百度自己电脑型号如何开启虚拟化服务
#####问题3:开启虚拟机黑屏
-- 以管理员身份运行cmd(命令符)
-- 输入命令:netsh winsock reset,回车,提示重置网络服务成功后
-- 重启计算机
#####问题4:XXXXX连接套接字次数过多
-- “我的电脑”,右键,“管理”,找到虚拟机的服务
-- 将虚拟机的服务,都设置为“已启动”
-- 重新启动虚拟机即可
##将4个系统 连接到可视化工具和FTP工具
##Linux下如何搭建Java环境
###软件环境
虚拟机:VMware-workstation-14.0.0
系统:CentOS-7-x86_64
###搭建步骤
首先确认当前系统是否已经存在Java环境
明确下各个文件夹的含义
新建upload文件夹,把jdk安装包通过FTP工具导入
进入到/upload目录下
cd /upload
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local
四个系统全部进行解压安装
tar -zvxf 解压
配置环境变量
vi /etc/profile
在文件最后添加:
export JAVA_HOME=/usr/local/jdk1.8.0_171
export PATH=$PATH:$JAVA_HOME/bin
刷新环境变量
source /etc/profile
查看安装后的JDK版本
java -version
###至此Java环境搭建完成
##四个Java环境及IP完成
##对Tomcat的安装部署
1.解压安装包
2.更改两个tomcat的配置文件
启动 ./startup.sh
如果启动时权限不够,输入命令:chmod u+x *.sh
访问 ip:端口号
3.端口不可访问
输入命令:
firewall-cmd --zone=public --add-port=8080/tcp --permanent
进行8080端口开放配置;(如果mysql远程访问 10060异常,也是端口问题,开放3306)
命令解析:
--zone #作用域
--add-port=8080/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数设置,重启后会失效。
重启防火墙,输入命令:
firewall-cmd --reload
成功访问端口号。
###访问地址:
ip:8080
确保能够tomcat能够正常使用
###tomcat配置完成
##nginx配置
1.上传nginx-1.8.1.tar.gz到Linux上
2.解压nginx
[[email protected] upload]# tar -zxvf nginx-1.8.1.tar.gz -C /usr/local/src
3.编译nginx
[[email protected] upload]# cd /usr/local/src/nginx-1.8.1/
[[email protected] nginx-1.8.1]# ./configure --prefix=/usr/local/nginx-1.8.1
checking for OS
+ Linux 2.6.32-431.el6.x86_64 x86_64
checking for C compiler ... not found
./configure: error: C compiler cc is not found
#缺包报错 ./configure: error: C compiler cc is not found
#使用YUM安装缺少的包
[[email protected] nginx-1.8.1]# yum -y install gcc pcre-devel openssl openssl-devel
再次执行:
[[email protected] nginx-1.8.1]# ./configure --prefix=/usr/local/nginx-1.8.1
4.编译安装nginx
[[email protected] nginx-1.8.1]# make && make install
5.启动nginx
[[email protected] sbin]# cd /usr/local/nginx-1.8.1/sbin
[[email protected] sbin]# ./nginx
6.访问http://192.168.135.111
补充:
nginx -s reload :修改配置后重新加载生效
nginx -s reopen :重新打开日志文件
nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确
关闭nginx:
nginx -s stop 快速停止nginx
或关闭nginx命令:./nginx -s stop
nginx -squit 完整有序的停止nginx
其他的停止nginx 方式:
ps -ef | grep nginx查看nginx进程
kill -QUIT 主进程号 从容停止Nginx
kill -TERM 主进程号 快速停止Nginx
kill -9 nginx 强制停止Nginx
启动nginx:
nginx -c /path/to/nginx.conf
平滑重启nginx:
kill -HUP 主进程号
##开始配置nginx和tomcat的负载均衡 (一台电脑版)
解压两个Tomcat,分别命名指定名称
修改这两个Tomcat的启动端口,如:8081\8082,打开Tomcat的conf目录下的server.xml,需要修改
22/69/71/91行左右的数字,91行两个数字,修改后启动正常访问
(开启访问的端口)
(为了集群的负载均衡明显,可以修改上面两个Tomcat的默认页面,随便改一下即可.
--在webapps\Root\index.jsp文件)
访问如图:
开始配置Nginx来实现负载均衡
配置Nginx的配置文件 -- nginx/conf/nginx.conf 文件
修改nginx.conf文件,如下:
配置文件含义:
worker_processes 1;#工作进程的个数,一般与计算机的cpu核数一致
events {
worker_connections 1024;#单个进程最大连接数(最大连接数=连接数*进程数)
}
http {
include mime.types; #文件扩展名与文件类型映射表
default_type application/octet-stream;#默认文件类型
sendfile on;#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
keepalive_timeout 65; #长连接超时时间,单位是秒
gzip on;#启用Gizp压缩
#服务器的集群
upstream netitcast.com { #服务器集群名字
server 127.0.0.1:18080 weight=1;#服务器配置 weight是权重的意思,权重越大,分配的概率越大。
server 127.0.0.1:28080 weight=2;
}
#当前的Nginx的配置
server {
listen 80;#监听80端口,可以改成其他端口
server_name localhost;############## 当前服务的域名
location / {
proxy_pass http://netitcast.com;
proxy_redirect default;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
启动Nginx
访问如下:
页面不断刷新,显示Tomcat01和Tomcat02的页面如下:
###至此一台电脑使用nginx实现tomcat集群完成.
将nginx和keepalive服务加入开机启动服务
[[email protected] keepalived-1.3.2]# echo “/usr/local/nginx/sbin/nginx” >> /etc/rc.local
[[email protected] keepalived-1.3.2]# echo “/etc/init.d/keepalived start” >> /etc/rc.local
##使用Keepalived实现多台Nginx虚拟IP指向
1.安装包版,待定
2.在线安装keepalived
安装依赖包
yum install -y curl gcc openssl-devel libnl3-devel net-snmp-devel
yum install keepalived
[[email protected] ~]# systemctl start keepalived //启动keepalived
[[email protected] ~]# systemctl enable keepalived //加入开机启动keepalived
[[email protected] ~]# systemctl restart keepalived //重新启动keepalived
[[email protected] ~]# systemctl status keepalived //查看keepalived状态
########启动后查看keepalived状态
运行即可
#####安装成功进行修改配置文件,进行虚拟ip指向
keepalived.conf 配置说明:
! Configuration File for keepalived
## 配置故障发生时的通知对象以及机器标识
global_defs {
notification_email {
## 故障时,给谁发送通知邮件,可添加多个
# [email protected]
}
## 邮件发送方
# notification_email_from [email protected]
## 通知邮件的smtp地址
# smtp_server 192.168.200.1
## 连接smtp服务器的超时时间
# smtp_connect_timeout 30
## 标识本节点的字条串,通常为hostname,但不一定非得是hostname。故障发生时,邮件通知会用到
router_id LVS_DEVEL
}
## 定义 vrrp 实例
vrrp_instance VI_1 {
## MASTER,配置为主服务器;BACKUP 为备用服务器
state MASTER
## 通讯网卡,与系统网卡名称一致
## 查询网卡名称可使用 `ip a` or `ifconfig` or 'ip addr' 等命令
interface enp0s3
## 虚拟路由标识,这个标识是一个数字,并且同一个 vrrp 实例使用唯一的标识
virtual_router_id 51
## 优先级,0--254,权重值 MASTER 一定要高于 BACKUP
priority 101
## 同步时间间隔,实际部署时可以设置小一点,减少延时
advert_int 1
## 验证信息
authentication {
## 验证类型
auth_type PASS
## 验证密码,用于通讯主机间验证,备用服务器必须与主服务器密码相同
auth_pass 1111
}
## 虚拟 IP,主服务器与从服务器设置相同的虚拟 IP,可配置多个
## 注:外部访问时,hosts 指向与本虚拟 IP 一致
virtual_ipaddress {
192.168.4.200 dev enp0s3
# 192.168.200.17
# 192.168.200.18
}
## 虚拟服务定义块
virtual_server 192.168.4.200 80{
## 健康检查时间间隔,单位 秒
delay_loop 6
## 负载均衡转发规则,一般包括 DR、NAT 和 TUN 三种
lb_kind DR
## 会话保持时间,单位 秒
persistence_timeout 50
## 转发协议,一般有 TCP、UDP 两种
protocol TCP
## 实际服务器 IP
real_server 192.168.4.171 80{
## 权重值 数值越大,权重越高
weight 1
## 检测到真实服务 down 后执行的脚本
notify_down '/root/nginx_pid.sh'
## http 或 ssl 检查方式
HTTP_GET|SSL_GET{
url{
path '/index.html'
}
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
## Tcp检查
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
## 脚本检查
MISC_CHECK {
## 外部程序检查
misc_path /usr/local/bin/script.sh!
## 脚本执行超时时间
misc_timeout 10
}
}
}
MASTER的配置如下(直接进行复制)
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
#指定的虚拟ip
192.168.0.250
}
}
virtual_server 192.168.0.250 80 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
#主机:192.168.0.10部署Nginx
real_server 192.168.0.10 80 {
weight 1
TCP_CHECK {
connect_timeout 10
delay_before_retry 3
connect_port 80
}
}
}
BACKUP的配置
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
#指定的虚拟ip
192.168.0.250
}
}
virtual_server 192.168.0.250 80 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
#主机:192.168.0.10部署Nginx
real_server 192.168.0.11 80 {
weight 1
TCP_CHECK {
connect_timeout 10
delay_before_retry 3
connect_port 80
}
}
}
###keepalived的虚拟IP功能配置完成。