00_Nginx的介绍和搭建
Nginx介绍
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器
-
特点:
-
反向代理
-
负载均衡
-
动静分离
-
等等...
-
反向代理 :
-
先来了解正向代理:需要我们用户,手动的设置代理服务器的ip和端口号
-
反向代理:代理服务器的,用户不需要设置.
-
负载均衡:
原理就是数据流量分摊到多个服务器上执行,减轻每台服务器的压力,
多台服务器共同完成工作任务,从而提高了数据的吞吐量。 -
动静分离:
将静态的资源放到反向服务器,节省用户的访问时间.
用nginx在window上搭建一个集群
-
准备好两个tomcat
两个tomcat -
新建一个空项目
test
,该项目下有一个主页index.jsp
,可以标识是哪个服务器
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
tomcat1<hr>
<%=session.getId() %>
</body>
</html>
-
导出
war
包部署到tomcat1
-
将
index.jsp
中的tomcat1<hr>
改为tomcat2<hr>
,导出war包部署到tomcat2
-
由于端口不能相同,修改tomcat2,将所有端口加10
修改端口 -
启动两个tomcat
-
启动
启动`Nginx`Nginx
,双击nginx.exe
双击nginx.exe
之后没有任何反应,但是可以查看任务管理器查看已经启动的后台的Nginx任务
-
Nginx默认端口80,所以在浏览器直接:http://localhost/ ,进入Nginx默认主页
Nginx默认主页
-
代理一台主机的两种配置
方式一: -
编辑
第一种方式nginx-1.6.3\conf\nginx.conf
-
重启Nginx(结束Nginx后台任务,再双击
代理到8080端口的tomcatnginx.exe
),刷新浏览器
方式二: -
编辑
第二种方式nginx-1.6.3\conf\nginx.conf
-
重启Nginx,刷新浏览器,还是tomcat主页
-
配置代理两台主机
两台代理主机
为了测试,配置两台主机的权重
配置权重 -
用多个浏览器访问多次,就可以看到
tomcat1tomcat1
和tomcat2
了
tomcat2 -
但是可以看到两个sessionId不一样,在实际开发中可能会有问题
session共享问题
解决方案一:只能在window下好使
- web服务器解决(广播机制)
注意:tomcat下性能低
修改两个地方:
① 修改tomcat的server.xml 支持共享
将引擎标签下的<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
的注释去掉
两个tomcat都要配置
② 修改项目的配置文件web.xml
中添加一个节点
在web-app
标签中添加<distributable/>
标签
按照上面两步配置之后,重启两个tomcat和nginx
解决方案二:
- redis解决
可以将session的id放入redis中
解决方案三:
- 保证一个ip地址永远的访问一台web服务器,就不存在session共享问题了,在linux下用这种方式
在nginx的配置文件中
upstream
中添加ip_hash;
用nginx在linux搭建集群
- linux安装参考:02_FastDFS在Linux上的搭建
- 配置集群和在windows上一致,参考上面步骤