在自己的ubantu虚拟机下实现nginx+tomcat负载均衡,自己本地练着玩,挺有意思的,记录下过程。
以下参考了几篇有用的博文:
- Tomcat+Nginx搭建高性能负载均衡集群 http://blog.csdn.net/wang379275614/article/details/47778201;
-
在Linux里安装、启动nginx http://blog.csdn.net/molingduzun123/article/details/51850925;http://www.cnblogs.com/wyd168/p/6636529.html;
进入正题:首先在服务器上安装两个tomcat,修改index.jsp(以区分访问的是哪个tomcat),然后分别启动,不明白的详见上面第一片博文。效果如下
重点注意两个tomcat的端口要修改得不同(三个地方)
然后安装nginx:需要的库(nginx依赖前面两个):PCRE库(https://sourceforge.net/projects/pcre/files/pcre/);zlib库(http://zlib.net/);nginx(http://nginx.org/en/download.html)。分别安装三个程序,流程一样:
tar -xvf xxx.tar.gz cd xxx-1.2.8 //解压后的文件夹 ./configure make make install
在上面的链接博文中交代安装完这三个文件后就OK了,然后配置nginx,进入nginx/conf/nginx.conf文件,改几个核心配置
events { worker_connections 1024;#单个进程最大连接数(最大连接数=连接数*进程数) } http { include mime.types; #文件扩展名与文件类型映射表 default_type application/octet-stream;#默认文件类型 sendfile on;#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。 keepalive_timeout 65; #长连接超时时间,单位是秒 gzip on;#启用Gizp压缩 #服务器的集群 upstream netitcast.com { #服务器集群名字(下面会配置使用它的地方) server 127.0.0.1:18080 weight=1;#服务器配置 weight是权重的意思,权重越大,分配的概率越大。 server 127.0.0.1:28080 weight=2; } #当前的Nginx的配置:这里配置的服务器名和监听端口,就是提供服务的地方,会交给下线proxy_pass配置的服务器集群地址处理 server { listen 80;#监听80端口,可以改成其他端口(最好改下,80端口一般会被占用) server_name localhost;############## 当前服务的域名 location / { proxy_pass http://netitcast.com; proxy_redirect default; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
配置完成后启动nginx:
nginx -c /home/cxd/java/nginx/nginx-1.8.1/conf/nginx.conf
但是我的nginx启动失败:提示
不知道是什么原因提示还没安装nginx,按照其他人提供的方式我实际已经在之前安装了nginx(./configure;make;make install这几个命令)
跟着提示走,继续安装:
sudo apt-get install nginx-core
我只安装了core,有的说要安装全部。
完成后再次启动。
然后就直接访问我们配置的nginx代理的地址:localhost:8089/index.jsp (8090是nginx配置的监听端口,一开始我的是默认的80,结果端口被占用,启动nginx时就失败了)。
出现的结果很满意,随机访问了两台tomcat的主页,结束。