一、反向代理
示例一
效果:打开浏览器,在浏览器地址栏输入地址www.123.com,跳转到linux系统tomcat主页面中
具体实现:
(1) 准备:安装nginx
在linux系统安装tomcat,使用默认端口8080
解压之后进入到tomcat目录下进入bin目录下,执行./startup.sh启动,启动之后进入到logs目录下,执行tail -f catalina.out 可查看启动日志
(2)对外开放访问的端口:firewall-cmd --add-port=8080/tcp --permanent
重新加载防火墙:firewall-cmd --reload
查看开放情况:firewall-cmd --list-all
(3) 测试在window系统访问tomcat
(4) 具体配置
1> 在win系统的host文件进行域名和ip对应关系的配置 C:\Windows\System32
2> 在Servce中修改server_name 为本机ip
在location添加proxy_pass http://127.0.0.1:8080
(5) 启动nginx 进入到nginx sbin目录下执行 ./nginx
(6)浏览器输入www.123.com
示例二
效果:使用nginx反向代理,根据访问的路径跳转到不同的端口服务中,nginx监听的端口为9001
访问http://127.0.0.1:9001/edu/ 直接跳转到127.0.0.1:8080
访问http://127.0.0.1:9001/vod/直接跳转到127.0.0.1:8081
准备:
(1)准备两个tomcat服务器,一个8080端口,一个8081端口
修改端口:进入到tomcat安装目录下的conf目录,修改server.xml对应的端口号
<Connector port="8081" protocol="HTTP/1.1"connectionTimeout="20000" redirectPort="8443" />
<Server port="8015" shutdown="SHUTDOWN">
<Connector protocol="AJP/1.3" address="::1" port="8019" redirectPort="8443" />
(2)创建测试的文件夹和页面
在端口为8080的tomcat的webapps目录下新键edu目录并放置对应的html文件
在端口为8081的tomcat的webapps目录下新键vod目录并放置对应的html文件
具体配置:
(1)找到nginx的配置文件/usr/local/nginx/conf
注: = 用于不含正则表达式的uri前,要求请求字符串与uri严格匹配,如果匹配成功就停止向下搜搜索并立即处理该请求;
~ 用于表示uri包含正则表达式,并且区分大小写
~* 用于表示uri包含正则表达式,并且不区分大小写
^~ 用于不含正则表达式的uri前,要求Nginx服务器找到标识uri和请求字符串匹配度最高的location后,立即使用此location处理请求,而不再使用location块中的正则uri和请求字符串做匹配;
如果uri包含正则表达式,则必须要有~或者~*标识。
进行如下配置
配置之后执行,使配置生效
./nginx -s reload
(2)设置开放端口
firewall-cmd --add-port=9001/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all
测试:在浏览器输入以下地址,查看效果
二、负载均衡
示例一
效果:浏览器地址栏输入地址http://xxx/edu/a.html,负载均衡效果,平均8080和8081端口中。
准备工作:
(1)准备两台tomcat服务器,一台8080,一台8081
(2)在两台tomcat里面webapps目录中,创建名称是edu文件夹,在edu文件夹中创建页面,用于测试。
配置:在nginx的配置文件中进行如下负载均衡配置
测试访问:
Nginx 负载均衡策略
1. 轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2.weight
weight代表权重,默认为1,权重越多被分配的客户端越多;指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
3.ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
4. fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配;谁响应时间短,下一回先谁。