1:实现效果
(1)打开浏览器,在浏览器地址栏中输入www.123.com 跳转到linux系统tomcat主页面中
2:在linux中,安装tomcat,使用默认的端口号:8080
(1)下载tomcat,然后通过Xftp将tomcat传输到上面
(2)进行解压:
tar -xvf apache-tamcat-7.0.70.tar.gz
(3)进行tomcat的bin进行启动
在bin中,找到startup.sh 进行启动
启动完毕之后,进行日志查看启动情况
(4)通过端口进行访问
1)对外开放访问的端口
firewall-cmd --add-port=8080/tcp --permanent
2)重启防火墙
firewall-cmd --reload
3)查看开放的端口号
firewall-cmd --list-all
验证:根据ip+刚刚开放的端口,进行访问tomcat
(5)在nginx.conf进行反向代理配置
1).在host中,配置(ip地址 域名)
访问端口进行测试
2)在nginx中 做反向代理的配置
找到ngxin.conf配置文件,修改配置端口,实现方向代理
3)启动nginx
开启两台tomcat
第一:把之前开启的tomcat停止
1:ps -ef grep tomcat(查找tomcat进程)
2:杀死进行 kill -9 端口号
3:tar -vxf tomcat名称 进行解压
4:进入tomcat的bin中进行命令.startup.sh启动
开启第二台:
一样的解压,进入配置文件server.xml
shutdown改成8015
改成8081
改成8019
查看是否修改成功,然后启动
以上,完成了两台tomcat的准备工作,可以简单访问测试
第二步,进行简单的测试,新建两页页面,分别代表edu和vod(注意路径)
访问测试
一样的道理得到8081页面
第三步:进行反向代理的配置
1:进入nginx.conf文件,进行配置
2:添加一个server配置
其中“~”是一个正则表达式,表明有edu或者vod的,都转发到以下对应的路径
2:做完以上,开放对应的端口号( firewalld的操作命令)
进行nginx的重新启动 ,根据配置访问端口
语法:location [=|||^~|@] /uri/ { … }
这个参数根据URI的不同需求来进行配置,可以使用字符串与正则表达式匹配,如果要使用正则表达式,你必须指定下列前缀:
1、~ 不区分大小写。
2、~ 区分大小写。
要确定该指令匹配特定的查询,程序将首先对字符串进行匹配,字符串匹配将作为查询的开始,最确切的匹配将被使用。然后,正则表达式的匹配查询开始,匹配查询的第一个正则表达式找到后会停止搜索,如果没有找到正则表达式,将使用字符串的搜索结果。
在一些操作系统,如Mac OS X和Cygwin,字符串将通过不区分大小写的方式完成匹配(0.7.7),但是,比较仅限于单字节的语言环境。
正则表达式可以包含捕获(0.7.40),并用于其它指令中。
可以使用“^~”标记禁止在字符串匹配后检查正则表达式,如果最确切的匹配location有这个标记,那么正则表达式不会被检查。
使用“=”标记可以在URI和location之间定义精确的匹配,在精确匹配完成后并不进行额外的搜索,例如有请求“/”发生,则可以使用“location = /”来加速这个处理。
即使没有“=”和“^~”标记,精确的匹配location在找到后同样会停止查询。
下面是各种查询方式的总结:
1、前缀“=”表示精确匹配查询,如果找到,立即停止查询。
2、指令仍然使用标准字符串,如果匹配使用“^~”前缀,停止查询。
3、正则表达式按照他们在配置文件中定义的顺序。
4、如果第三条产生一个匹配,这个匹配将被使用,否则将使用第二条的匹配。
location = / {
# 只匹配 / 的查询.
[ configuration A ]
}
location / {
# 匹配任何以 / 开始的查询,但是正则表达式与一些较长的字符串将被首先匹配。
[ configuration B ]
}
location ^~ /images/ {
# 匹配任何以 /images/ 开始的查询并且停止搜索,不检查正则表达式。
[ configuration C ]
}
location ~* \.(gif|jpg|jpeg)$ {
# 匹配任何以gif, jpg, or jpeg结尾的文件,但是所有 /images/ 目录的请求将在Configuration C中处理。
[ configuration D ]
}
各请求的处理如下例:
·/ -> configuration A
·/documents/document.html -> configuration B
·/images/1.gif -> configuration C
·/documents/1.jpg -> configuration D
注意你可以以任何顺序定义这4个配置并且匹配结果是相同的,但当使用嵌套的location结构时可能会将配置文件变的复杂并且产生一些比较意外的结果。
标记“@”指定一个命名的location,这种location并不会在正常请求中执行,它们仅使用在内部重定向请求中
1:概念
2:实现效果
(1)浏览器中输入地址192.168.17.129/edu/a.html,负载均衡的效果,平均分到8080和8081端口中
(2)准备工作
准备两台tomcat,一台8080,一台8081
在两台tamcat的webapps目录中,创建名称是edu文件夹,在edu中,创建页面a.html,用于测试
(3)启动进行测试
(4)在nginx的配置文件中,进行负载均衡的配置
负载均衡的策略:
1.轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2、指定权重
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
3、IP绑定 ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
5、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
更加准确的意义是,动态请求与静态请求分离,动态请求通过反向代理,请求到linux下的tomcat,通过tomcat去访问数据库,获取到数据
静态求情通过ngxin直接转发到对应的请求页面
在nginx中配置静态资源访问路径,如下图,在root(目录)(data)下的www文件中,查看静态资源,
autoindex是列出data文件中,所有文件
输入访问地址测试
基于nginx可能宕机,因此配置成高可用结果
通过keepalived的脚本方式,检测是否还活着,活着继续访问,宕机就切换到备份服务器(通过虚拟ip)
1:两台nginx服务器
2:keepalived
3:虚拟的ip
1:两台虚拟机192.168.17.129 第二台 192.168.17.131
2:在两台服务器上都安装上nginx软件
3:在两台服务器中,安装keepalived
方法一:yum 方式
yum 安装
yum install -y curl gcc openssl-devel libnl3-devel net-snmp-devel
yum install keepalived -y
systemctl start keepalived.service //启动 keepalived
systemctl enable keepalived //加入开机启动 keepalived
systemctl restart keepalived //重新启动 keepalived
systemctl status keepalived //查看 keepalived 状态
找到 etc中的 keepalived文件,打开keepalived.conf文件进行配置
1:修改etc/keepalived/keepalived.conf中的文件
2:在usr/local/src添加检测脚本
3:把两台服务器上的nginx和keepalived启动起来
先进行nginx的启动