文章目录
15.1 需求说明
使用两台linux,一台主linux,一台从linux.主linux主要工作是后台 从linux主要工作是前台
主linux命名为 : master
从linux命名为 : slave1
master 安装 JDK Tomcat MySQL Nginx
slave1 安装 JDK Tomcat
1.2 分技术介绍
1.2.1 JDK
JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。
1.2.2 Tomcat
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为9.0。
1.2.3 MySQL
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。
1.2.4 Nginx
1.2.4.1 序言
Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。
Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。
Nginx的稳定性、功能集、示例配置文件和低系统资源的消耗让他后来居上,在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。
牛逼吹的差不多啦,如果你还不过瘾,你可以百度百科或者一些书上找到这样的夸耀,比比皆是。
1.2.4.2 Nginx常用功能
1、Http代理,反向代理:作为web服务器最常用的功能之一,尤其是反向代理。
这里我给来2张图,对正向代理与反响代理做个诠释,具体细节,大家可以翻阅下资料。
Nginx在做反向代理时,提供性能稳定,并且能够提供配置灵活的转发功能。Nginx可以根据不同的正则匹配,采取不同的转发策略,比如图片文件结尾的走文件服务器,动态页面走web服务器,只要你正则写的没问题,又有相对应的服务器解决方案,你就可以随心所欲的玩。并且Nginx对返回结果进行错误页跳转,异常判断等。如果被分发的服务器存在异常,他可以将请求重新转发给另外一台服务器,然后自动去除异常服务器。
- 负载均衡
Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。扩展策略,就天马行空,只有你想不到的没有他做不到的啦,你可以参照所有的负载均衡算法,给他一一找出来做下实现。
上3个图,理解这三种负载均衡算法的实现
Ip hash算法,对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。
3. web缓存
Nginx可以对不同的文件做不同的缓存处理,配置灵活,并且支持FastCGI_Cache,主要用于对FastCGI的动态程序进行缓存。配合着第三方的ngx_cache_purge,对制定的URL缓存内容可以的进行增删管理。
15.3 linux初始化配置
安装linux,版本Centos7,初始化配置包括静态网卡配置,关闭防火墙,关闭SELinux;
15.3.1 安装linux
15.3.1.1 创建虚拟机
-
新建虚拟机
-
选择虚拟机版本
-
选择centos7的镜像文件
-
修改虚拟机的名称与文件位置
-
调整虚拟CPU的核心数
-
设置虚拟内存
-
选择虚拟网络类型,此处选择NET模式
-
选择虚拟硬盘类型 默认即可
-
设置虚拟硬盘大小,此处选择单一文件
-
完成配置开启虚拟机
15.3.1.2 安装linux
鼠标移入 点击回车
下面页面继续点击回车
检查磁盘,需要稍等一会儿
选择 语言 中文 --> 简体中文
整体配置页面 需要配置 网络 日期和时间 硬盘格式化
网络选择
此处需要记住 主机的IP信息 因为使用的是NET模式,所以谁和谁的都不一样,要注意这个问题
配置完成之后别忘记点击上方的完成回到主页面配置其他信息
回到主页面选择时间和日期,验证网络配置是否正确,此处我们主要通过添加NTP服务器的方式进行验证
是绿色的对号 说明是可以连接阿里云的,那也就是变相的说明我们的服务器现在是可以连接网络的
接下来调整磁盘
所有配置工作结束 开始完成安装
下一个页面设置root的密码是 000000
因为我们的密码过于简单,所以此处第一次点完成会停顿一下 然后再点一次完成就可以了
等待安装成功之后点击重启按钮 等待进入系统即可
到此系统安装成功
15.3.2 配置静态网卡
登录虚拟机,查看本机IP
根据此处返回的ip地址 进行客户端连接的配置,配置过程略
编辑网卡配置文件
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
添加如下内容
BOOTPROTO="static"
IPADDR="192.168.92.10"
NETMASK="255.255.255.0"
GATEWAY="192.168.92.2"
DNS="192.168.92.2"
NM_CONTROLLED="no"
讲解
BOOTPROTO="static" <-- 替换之间的dhcp设置
IPADDR="192.168.92.10" <-- IP地址
NETMASK="255.255.255.0" <-- 子网掩码
GATEWAY="192.168.92.2" <-- 默认网关
DNS="192.168.92.2" <-- DNS
NM_CONTROLLED="no" <-- NetManager设置
修改好之后进行网络服务配置
- 关掉NetManager
[root@localhost ~]# systemctl stop NetworkManager.service <-- 停止服务
[root@localhost ~]# systemctl disable NetworkManager.service <-- 移除自启动
Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
-
重启网卡
[root@localhost ~]# systemctl restart network.service
重启网卡之后需要用新IP再重新连接,并且要验证是否可以上网
1.3.3 关闭防火墙
[root@localhost ~]# systemctl stop firewalld.service <-- 关闭防火墙
[root@localhost ~]# systemctl disable firewalld.service <-- 移除防火墙开机自动启动
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
1.3.4 关闭SELinux
[root@localhost ~]# vi /etc/selinux/config
重启服务器
[root@localhost ~]# reboot
15.4 linux的常用软件安装
配置阿里云的yum源
-
安装wget
[root@localhost ~]# yum -y install wget
-
下载yum源的配置文件
[root@localhost ~]# wget http://mirrors.aliyun.com/repo/Centos-7.repo
-
替换原有的yum源
[root@localhost ~]# mv /etc/yum.repos.d/CentOS-Base.repo ~/ <-- 备份原有的到root的家目录
[root@localhost ~]# mv ~/Centos-7.repo /etc/yum.repos.d/CentOS-Base.repo <-- 将下载的yum配置文件放在系统的指定目录
- 更新现有yum
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache
[root@localhost ~]# yum -y update
- 安装常用软件
[root@localhost ~]# yum -y install openssh-server vim gcc gcc-c++ glibc-headers bzip2-devel lzo-devel curl lrzsz openssh-clients zlib zlib-devel make autoconf automake cmake libtool openssl openssl-devel fuse-devel snappy-devel telnet unzip zip net-tools.x86_64 firewalld systemd ntp
15.5 linux的JDK安装
此处我们选用 jdk1.8_144这个版本作为我们的基础JDK,此处要切记一点的是1.8的不同版本JDK在配置上会有很大的出入,所以请不要随便更换基础的JDK版本,否则你会很尴尬!
使用 rz 上传jdk到root的家目录
[root@localhost ~]# rz
使用rpm命令安装jdk
[root@localhost ~]# rpm -ivh jdk-8u144-linux-x64.rpm
配置jdk的环境变量
[root@localhost ~]# vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_144
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
刷新环境变量
[root@localhost ~]# source /etc/profile
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/java/jdk1.8.0_144/bin
[root@localhost ~]# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
到此 JDK安装完成
15.6 linux的Tomcat安装
使用 rz 命令上传tomcat的压缩包
[root@localhost ~]# rz
注意我们上传的gzip压缩的tomcat压缩包,所以解压的时候需要使用 tar -zxvf 命令操作
[root@localhost ~]# tar -zxvf apache-tomcat-8.0.53.tar.gz -C /usr/local
重新修改tomcat的文件目录名称
[root@localhost ~]# cd /usr/local/
[root@localhost local]# mv apache-tomcat-8.0.53 tomcat
1.7 linux克隆与SSH配置
- 修改计算机名称
[root@localhost ~]# hostnamectl set-hostname master.javaee <-- 修改计算机名称为 master.javaee
[root@localhost ~]# hostname <-- 查看现在的计算机名称
master.javaee
-
配置host
[root@localhost ~]# vi /etc/hosts
添加内容
192.168.92.10 master.javaee
192.168.92.11 slave.javaee
测试
[root@localhost ~]# ping master.javaee
PING master.javaee (192.168.92.10) 56(84) bytes of data.
64 bytes from master.javaee (192.168.92.10): icmp_seq=1 ttl=64 time=0.016 ms
64 bytes from master.javaee (192.168.92.10): icmp_seq=2 ttl=64 time=0.024 ms
-
关机克隆
关机[root@localhost ~]# shutdown -h now
开始克隆
4. 修改从机的计算机名和IP地址
修改计算机名称
[root@master ~]# hostnamectl set-hostname slave.javaee
[root@master ~]# hostname
slave.javaee
修改主机IP
[root@master ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改前 :
修改后 :
5. 重启从机 启动主机 master ping两个主机的主机名看是否有问题
[root@master ~]# ping master.javaee
PING master.javaee (192.168.92.10) 56(84) bytes of data.
64 bytes from master.javaee (192.168.92.10): icmp_seq=1 ttl=64 time=0.016 ms <-- 有响应说明可以正常操作
64 bytes from master.javaee (192.168.92.10): icmp_seq=2 ttl=64 time=0.026 ms
^C
--- master.javaee ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.016/0.021/0.026/0.005 ms
[root@master ~]# ping slave.javaee
PING slave.javaee (192.168.92.11) 56(84) bytes of data.
64 bytes from slave.