nginx分别在window和linux搭建集群以及session共享问题
2017-05-09 13:15
621 查看
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器
特点:反向代理 负载均衡 动静分离
反向代理 :
先来了解正向代理:需要我们用户,手动的设置代理服务器的ip和端口号
反向代理:代理服务器的,用户不需要设置.
负载均衡:(注意:Nginx后端节点健康检查配置使用详情)
原理就是数据流量分摊到多个服务器上执行,减轻每台服务器的压力,
多台服务器共同完成工作任务,从而提高了数据的吞吐量。
动静分离:
将静态的资源放到反向服务器,节省用户的访问时间.
-----------------------------------------------------------------------------------
用nginx在window上搭建一个集群
1.在g盘新建两个目录 tomcat1 tomcat2
2.分别修改俩个tomcat的端口
3.解压nginx
修改nginx/conf下的nginx.conf文件
在locatioin / 下添加了反向代理,这样配置只是代理了一台服务器
4.那如何代理代理集群呢?
需要在http节点上添加一个
proxy_pass http://servlet_chenwei
5.session共享问题
解决方式1:只能在window下好使
web服务器解决(广播机制), 注意:tomcat下性能低
1.修改tomcat的server.xml 支持共享
将引擎标签下的注释放开
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
2.修改项目的配置文件 web.xml中添加一个节点<distributable/>
解决方式2:
可以将session的id放入redis中
解决方式3:
保证一个ip地址永远的访问一台web服务器,就不存在session共享问题了
在nginx的配置文件中
upstream中添加 ip_hash;
-------------------------------------------------------------------------------------
在linux安装Nginx
1.先将 nginx上传到linux上
2.解压nginx
3.先编译nginx
安装依赖包
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
执行编译
先进入 nginx的目录
执行
./configure
(执行以上命令的话是可以安装一些额外模块,比如:./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module)详情参考:点击打开链接
4.安装nginx
执行
make
make install
5.启动nginx
cd nginx/sbin(nginx目录下有一个sbin目录,sbin下有一个nginx可执行程序)。
启动nginx
./nginx
6.将端口号80 放行
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
将该设置添加到防火墙的规则中
/etc/rc.d/init.d/iptables save
7.修改conf文件 和window下一样
8.关闭nginx
关闭命令:相当于找到nginx进程kill。
./nginx -s stop
退出命令:
./nginx -s quit
等程序执行完毕后关闭,建议使用此命令。
9.动态加载配置文件
./nginx -s reload
可以不关闭nginx的情况下更新配置文件。
在service中加入nginx启动
特点:反向代理 负载均衡 动静分离
反向代理 :
先来了解正向代理:需要我们用户,手动的设置代理服务器的ip和端口号
反向代理:代理服务器的,用户不需要设置.
负载均衡:(注意:Nginx后端节点健康检查配置使用详情)
原理就是数据流量分摊到多个服务器上执行,减轻每台服务器的压力,
多台服务器共同完成工作任务,从而提高了数据的吞吐量。
动静分离:
将静态的资源放到反向服务器,节省用户的访问时间.
-----------------------------------------------------------------------------------
用nginx在window上搭建一个集群
1.在g盘新建两个目录 tomcat1 tomcat2
2.分别修改俩个tomcat的端口
3.解压nginx
修改nginx/conf下的nginx.conf文件
在locatioin / 下添加了反向代理,这样配置只是代理了一台服务器
4.那如何代理代理集群呢?
需要在http节点上添加一个
upstream servlet_chenwei{ server 127.0.0.1:8080; server 127.0.0.1:8090; }修改location /下的反向代理
proxy_pass http://servlet_chenwei
5.session共享问题
解决方式1:只能在window下好使
web服务器解决(广播机制), 注意:tomcat下性能低
1.修改tomcat的server.xml 支持共享
将引擎标签下的注释放开
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
使用这样方法配置的集群会将Session同步到所在网段上的所有配置了集群属性的实例上(此处讲所在网段可能不准确,是使用Membership 的address和port来区分的。tomcat集群的实例如果在Membership配置中有相同的address和port值的tomcat被分到同一个集群里边。他们的session是相互共享的,同一个session的集群被称为一个cluster。可以配置多个cluster,但是cluster和cluster之间的session是不共享的)。也就是说如果该广播地址下的所有Tomcat实例都会共享Session,那么假如有几个互不相关的集群,就可能造成Session复制浪费,所以为了避免浪费就需要对节点多做点设置了,如下: Xml代码 <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"> <Channel className="org.apache.catalina.tribes.group.GroupChannel"> <Membership className="org.apache.catalina.tribes.membership.McastService" address="228.0.0.4" port="45564" frequency="500" dropTime="3000"/> </Channel> </Cluster> 加了一个Channel,里面包了个Membership,咱们要关注的就是membership的port属性和address属性,不同的集群设置不同的port值或address值,从目前的使用来看,基本上是隔离开了。
2.修改项目的配置文件 web.xml中添加一个节点<distributable/>
解决方式2:
可以将session的id放入redis中
解决方式3:
保证一个ip地址永远的访问一台web服务器,就不存在session共享问题了
在nginx的配置文件中
upstream中添加 ip_hash;
-------------------------------------------------------------------------------------
在linux安装Nginx
1.先将 nginx上传到linux上
2.解压nginx
3.先编译nginx
安装依赖包
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
执行编译
先进入 nginx的目录
执行
./configure
(执行以上命令的话是可以安装一些额外模块,比如:./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module)详情参考:点击打开链接
4.安装nginx
执行
make
make install
5.启动nginx
cd nginx/sbin(nginx目录下有一个sbin目录,sbin下有一个nginx可执行程序)。
启动nginx
./nginx
6.将端口号80 放行
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
将该设置添加到防火墙的规则中
/etc/rc.d/init.d/iptables save
7.修改conf文件 和window下一样
8.关闭nginx
关闭命令:相当于找到nginx进程kill。
./nginx -s stop
退出命令:
./nginx -s quit
等程序执行完毕后关闭,建议使用此命令。
9.动态加载配置文件
./nginx -s reload
可以不关闭nginx的情况下更新配置文件。
在service中加入nginx启动
相关文章推荐
- 使用nginx搭建集群tomcat8,redis实现session共享,文件共享问题
- 使用nginx搭建集群tomcat8,redis实现session共享,文件共享问题
- https+nginx1.8+tomcat7+Memcached1.4.4集群session共享以及负载均衡环境搭建(window版本)
- https+nginx1.8+tomcat7+Memcached1.4.4集群session共享以及负载均衡环境搭建(window版本)
- 使用nginx搭建集群tomcat8,redis实现session共享,文件共享问题
- 在Linux上配置发布网站以及使用nginx搭建集群
- 解剖Nginx:linux+tomcat+nginx+memcached实现负载均衡以及session共享
- 搭建nginx+tomcat+memcache三套集群,开发简单springboot工程,实现session共享(持续更新中)
- 搭建Nginx(负载均衡)+Redis(Session共享)+Tomcat集群
- Nginx+Tomca+Redist搭建高性能负载均衡集群及session共享
- 使用redis集群+tomcat缓存共享下session丢失问题产生原因以及解决
- Linux+Nginx+Tomcat+Redis实现负载均衡,应用集群及session共享
- nginx-1.4.2+tomcat6+memcache做服务器集群以及session共享
- Nginx+Tomcat+Redis搭建共享SESSION集群
- linux环境下通过nginx实现tomcat集群实现Session会话问题
- Windows+Nginx+Tomcat搭建负载均衡和集群环境同时实现session共享(一)
- Linux高可用(HA)之Nginx+Redis+Tomcat集群实现session保持和共享
- Nginx1.7.4+Tomcat7+memcached集群环境搭建(tomcat6做session共享用了6个jar包,放到7里报verify错误,然后用该文章的包即可解决)
- Nginx+Tomcat搭建集群,Spring Session+Redis实现Session共享
- 初步搭建Nginx(负载均衡)+Redis(Session共享)+Tomcat集群