Nginx+Tomcat搭建集群
nginx是一款*的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。Nginx百度百科
正向代理
当我们需要访问一下外国网站时由于一定的原因,无法正常访问,此时找到一个可以访问国外网站的代理服务器,我们将请求发送给代理服务器,代理服务器去访问国外的网站,然后将访问到的数据传递给我们!
上述这样的代理模式称为正向代理,正向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息。
客户端必须要进行一些特别的设置才能使用正向代理。
反向代理
反向代理的处理方式,例如某宝网站,每天同时连接到网站的访问人数已经爆表,单单个服务器不能满足用户访问量的要求,就出现分布式部署;也就就是用户访问URL时,nginx通过一定的规则把用户的请求分发到不同的服务器上,实现负载均衡。
实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
示意图:
项目场景
通常情况下,我们在实际项目操作时,正向代理和反向代理很有可能会存在在一个应用场景中,正向代理代理客户端的请求去访问目标服务器,目标服务器是一个反向单利服务器,反向代理了多台真实的业务处理服务器
nginx安装部署
通过https://nginx.org/en/download.html 下载
放在本地解压缩
在命令行中启动nginx服务
强制停止nginx服务器,如果有未处理的数据,丢弃
nginx -s stop
如果有未处理的数据,等待处理完成之后停止
nginx -s quit
在conf文件夹中找到nginx.conf配置文件
main # 全局配置
events { # nginx工作模式配置
}
http { # http设置
....
server { # 服务器主机配置
....
location { # 路由配置
....
}
location path {
....
}
location otherpath {
....
}
}
server {
....
location {
....
}
}
upstream name { # 负载均衡配置
....
}
include vhost/*.conf; #引入目录下的配置文件,方便维护管理
}
主要由6个部分组成:
main:用于进行nginx全局信息的配置
events:用于nginx工作模式的配置
http:用于进行http协议信息的一些配置
server:用于进行服务器访问信息的配置
location:用于进行访问路由的配置
upstream:用于进行负载均衡的配置
Nginx 常用命令
测试配置文件 安装路径下/nginx/sbin/nginx -t
启动命令 /nginx/sbin/nginx
停止命令 /nginx/sbin/nginx -s stop 或者 nginx -s quit
重启命令 /nginx/sbin.nginx -s reload
查看进程ps -ef|grep nginx
平滑重启 kill -HUP 【Nginx 主进程号】
nginx支持的负载均衡调度算法方式
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
upstream backserver {
server 192.168.0.14;
server 192.168.0.15;
}
2、指定权重
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream backserver {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}
3、IP绑定 ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决集群部署环境下session共享的问题。
upstream backserver {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backserver {
server server1;
server server2;
fair;
}
5、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
upstream backserver {
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}
实现权重的负载均衡
配置系统的host文件
添加一条 127.0.0.1 www.imooc1.com
单机配置多应用
配置两个tomcat服务器
- 在环境变量配置中新增 CATALINA_BASE ,CATALINA_HOME,TOMCAT_HOME ,配置对应tomcat对应的路径
- 在tomcat 的conf的文件夹中server.xml 修改。
修改tomcat的端口不能一样,并将tomcat1配置文件中的 CATALINA_BASE ,CATALINA_HOME,TOMCAT_HOME 全部修改为CATALINA_BASE2 ,CATALINA_HOME2,TOMCAT_HOME2
分别启动两个tomcat
upstream www.imooc1.com{
server www.imooc1.com:7088; #默认为权重,访问7088和9080 端口的比例为1:1
server www.imooc1.com:9080;
# server 127.0.0.1:7088;
# server 127.0.0.1:9080;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
autoindex on;
server_name www.imooc1.com;
access_log off ;
index index.html index.htm index.jsp index.php;
#error_page 404 /404.html;
if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}
location / {
proxy_pass http://www.imooc1.com;
add_header Access-Control-Allow-Origin *;
}
}
用户通过访问www.imooc1.com,nginx通过去权重规则,调用7088或9080端口,
实现负载均衡
上一篇: windows下使用nginx配置tomcat集群
下一篇: 阿里云上Kubernetes集群联邦
推荐阅读
-
ubuntu 18.04搭建python环境(pycharm+anaconda)
-
NodeJS搭建HTTP服务器的实现步骤
-
Vuejs开发环境搭建及热更新【推荐】
-
怎样搭建PHP开发环境
-
PyCharm使用教程之搭建Python开发环境
-
如何获取公网ip,自己搭建公网ip服务器的方法
-
利用ASP.NET MVC和Bootstrap快速搭建响应式个人博客站(一)
-
从0到1搭建element后台框架优化篇(打包优化)
-
利用ASP.NET MVC+Bootstrap搭建个人博客之修复UEditor编辑时Bug(四)
-
利用ASP.NET MVC+Bootstrap搭建个人博客之打造清新分页Helper(三)