- 集群的相关知识
如图这是一张单服务的web系统的架构图, web server 的主要职责是给 Tomcat App Server 做代理, 在这个架构图中,Nginx第二次职责是给FTPServer指定的目录再做一层目录转发。单服务体系的优点是当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。缺点是所有用户的请求都会打到一个服务器上面, 当用户量达到一定的数量, 并发的量达到服务器的瓶颈时, 网站会不堪重负。
为了解决单服务并发能力差的问题, 常见的解决的方法就是增加服务器, 此时用户的访问不会集中到一个服务器上, web Server 层会根据一定的策略, 随机的将用户分发的不同的服务器上, 很好的解决的用户量大的问题, 而多台服务器组成的 App server 就称为服务器集群。集群的优点很明显, 提高了服务的性能, 并发能力, 以及高可用性和横向扩展的能力等等。
- Tomcat单机部署多应用
1. 下载tomcat tomcat-8.5.40
下载两个tomcat服务器到本地并解压, 如图
2. 配置环境变量
打开环境变量, 在系统变量上添加
这里注意将值替换为你自己的解压路径
3. 修改tomcat配置
由于tomcat 的默认环境变量名是 CATALINA_BASE, CATALINA_HOME, TOMCAT_HOME 所以我们需要把另外一个不是使用默认名 tomcat的 配置修改一下, 否则启动程序会找不到路径, 在我这里是修改 tomcat8-3 这个服务器, tomcat8-2 的配置保持不变
打开 tomcat8-3 目录 bin 下的 catalina.bat (用记事本或者sublim打开, 不要双击) 和 startup.bat (用记事本或者sublim打开, 不要双击), 替换这两个文本中的 CATALINA_BASE 为 CATALINA_2_BASE, CATALINA_HOME 为 CATALINA_2_HOME , TOMCAT_HOME 为 TOMCAT_2_HOME 。
打开 tomcat8-3 的 conf 目录下 server.xml,
修改 server port 节点的端口号为
<Server port="9005" shutdown="SHUTDOWN">
修改 Connector port 的端口号为
<Connector port="9080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
修改 Connector port="" protocol="AJP/1.3" 的端口号为
<Connector port="9009" protocol="AJP/1.3" redirectPort="8443" />
以上修改的端口号都可以自行修改, 只需要保证与系统或其他的 tomcat 服务器不重复即可。
4. 启动tomcat
通过 cmd 分别进入两个 tomcat 的 bin 目录, 执行 startup.bat 启动 tomcat, 启动成功后如图
此时访问http://localhost:8080, http://localhost:9080, 可以打开 tomcat 的默认首页, 如果还想继续增加tomcat服务器重复以上步骤即可
- nginx负载均衡的配置
1. 替换 tomcat 的默认首页文件
分别进入刚才配好的两个tomcat目录下的 webapps/ROOT/ 目录下删除其他文件, 并添加一个index.jsp
tomcat8-2/webapps/ROOT/ index.jsp
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<h2>tomcat 1!</h2>
</form>
</body>
</html>
tomcat8-3/webapps/ROOT/ index.jsp
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<h2>tomcat 2!</h2>
</form>
</body>
</html>
2. 修改系统的host文件(C:\Windows\System32\drivers\etc\host)
新增一条, 域名可以自行替换
127.0.0.1 niu.test
保存之后, 可以使用 cmd 来 ping 一下你配置的域名是否生效, 如果出现保存不了的情况, 可以右键使用管理员打开。
继续访问 http://niu.test:8080, http://niu.test:9080
如果一切正常, 进行下一步
3.配置nginx
确保你的nginx服务已启动, 编辑nginx根目录/conf/nginx.conf配置文件
在http节点下增加
include vhost/*.conf
在nginx的根目录下的conf目录下新建vhost文件夹
在vhost中新建 niu.test.conf 配置文件(这里的niu.test可以替换为你自己的, 但是要和之前的一致)
upstream niu.test{
server 127.0.0.1:8080 weight=1;
server 127.0.0.1:9080 weight=1;
#server niu.test:8080;
#server niu.test:9080;
}
server {
listen 8080;
autoindex on;
server_name niu.test;
access_log E:/nginx/nginx-1.14.2/logs/access.log combined;
index index.html index.htm index.jsp index.php;
location / {
proxy_pass http://niu.test;
add_header Access-Control-Allow-Origin *;
}
}
注意替换配置文件中的路径为你本机的
3. 重启nginx
通过 cmd 在nginx根目录下执行 nginx -s reload
4. 验证
打开浏览器输入http://niu.test, 多次刷新观察页面, 如果发现是 Tomcat1 与 Tomcat2 交替显示, 则为Tomcat 集群及 Nginx 负载均衡环境搭建成功。