使用Nginx在windows和linux上搭建集群
Nginx
Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器
特点:反向代理 负载均衡 动静分离…
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
正向代理:需要我们用户手动设置第阿里服务器的ip地址和端口号
负载均衡,英文名称为Load Balance,是指建立在现有网络结构之上,并提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。其原理就是数据流量分摊到多个服务器上执行,减轻每台服务器的压力,多台服务器共同完成工作任务,从而提高了数据的吞吐量。
动静分离:静态资源放在Nginx,动态资源放到我们后面的服务器上
用nginx在window上搭建一个集群
用nginx在window上搭建一个集群
- 在F盘下新建两个目录 tomcat1 tomcat2
- 修改tomcat1和tomcat2的端口,nginx的端口是80
- 解压ngix
a) 修改nginx的nginx.conf文件
b) 在location节点下添加反向代理
proxy_pass +代理服务器 例如: proxy_pass http://server_yujia
这只是代理一台服务器
4.代理集群
需要在http节点下添加一个
upstream servlet_yujia{
server 127.0.0.1:8080; tomcat服务器1
server 127.0.0.1:8090; tomcat 服务器2
}
修改location下的反向代理
Proxy_pass http://servlet_yujia
- session共享问题
解决方式一:
Web服务器解决(广播机制)
注意:tomcat下性能低
修改两个地;(只能在windows中使用)
- 修改tomcat的server.xml支持共享
-
2.修改项目的配置文件
-
解决方式二
可以将session的id放入redis中
解决方式三
保证一个ip地址永远的访问一台web服务器,就不存在session共享问题了,在linux中使用
在nginx的配置文件中
upsteam中添加 ip_hash;
在linux上搭建集群:
- 先将nginx上传到linux上
- 在/usr/local下创建目录nginx,并将文件解压到此文件夹
- 先编译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
4 安装nginx
执行
make
make install
两个命令
5启动nginx
cd到nginx目录下
配置文件conf
启动nginx
cd到sbin目录下
执行:
./nginx
查看nginx是否启动 ps –ef | grep nginx
6.将端口号80添加到防火墙中
/sbin/iptables –I INPUT –p tcp – dport 80 –j ACCEPT
将设置添加到防火墙的规则中
/etc/rc.d/init.d/iptables save
7 修改conf文件,配置和windows一样