- 本文以《Nginx 理论详解》为基础
Nginx 下载
- 1、进入Nginx官网:http://nginx.org/en/ 进行下载
- Nginx 下载之后,Windows版本的可以直接双击运行,类似Tomcat,都是绿色版的;Linux版本的需要解压之后进行编译、然后安装,再使用,类似Redis的安装。
- 2、选择需要的版本进行下载
- 3、下载下来的文件很小
搭建集群图例
- 集群搭建图如下,为了简单一点,使用一个Nginx服务器+两个Tomcat服务器,省略数据库部分:
准备Java Web项目
- 首先准备一个Java Web项目,用于之后部署到Tomcat下运行,部署的时候收到修改一下<h3>中的标识符,以区别不同的Tomcat服务器
准备多个Tomcat服务器
- 接下来就是准备多个Tomcat服务器,这里以2个为例,具体配置可以参考《单台电脑 运行多个Tomcat》
准备 Tomcat 1
准备 Tomcat 2
Nginx 集群
Nginx 启动 与关闭
- 将 Windows 版解压后 直接双击nginx.exe即可运行,运行时不会弹框,但可以看到进程
- Nginx 默认使用"80"端口,所以运行之前,保证80端口没有被占用,否则启动失败
Nginx 代理一个服务器
- 修改nginx的conf目录下的nginx.conf文件,在locatioin / {}中添加反向代理:“proxy_pass 代理服务器路径”
Nginx 代理集群
- 修改nginx的conf目录下的nginx.conf文件,在http节点下添加如下所示:
upstream 自定义名称 {
server 服务器IP:端口;
server 服务器IP:端口;}
- 修改location / {}中的反向代理 :proxy_pass http://上一步的“自定义名称”
- 1、重启Nginx服务器
- 2、然后再次访问,会发现页面随机的显示Tomcat 1与Tomcat 2中的应用内容
- 但是请注意:集群是为了给服务器负载均衡,减轻压力,但对于用户来说,不管访问的是哪台具体的服务器,内容应该是一样的才对,不可能再服务器A下的单,一刷新访问到服务器B时,订单就没有,这是不允许的,如下所示,显然用户的Session不一致,这就是引出了“Session 共享”的问题。具体请参考《Nginx 集群下的 Session共享》