社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  NGINX

CentOS+Nginx+Tomcat搭建高性能负载均衡集群

腾讯云加社区 • 6 年前 • 584 次点击  

1、环境

CentOS6.5

JDK1.7

Nginx1.7.4

2、环境准备

先安装必须的工具

[html] view plain copy

  1. yum -y install gcc gcc-c++ autoconf automake make  
  2. yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel  

3、下载nginx

nginx.org/en/download…

左侧为Linux版本,右侧为Windows版本

或者在命令框中使用如下命令下载

[html] view plain copy

  1. #wget http://nginx.org/download/nginx-1.7.4.tar.gz  

[html] view plain copy

  1. #tar -zxvf nginx-1.7.4.tar.gz  //解压文件:  

4、安装

解压后切换到nginx-1.7.4目录下

执行

[html] view plain copy

  1. ./configure  

提示以下信息:./configure: error: the HTTP rewrite module requires the PCRE library.

You can either disable the module by using --without-http_rewrite_module

option, or install the PCRE library into the system, or build the PCRE library

statically from the source with nginx by using --with-pcre=<path> option.

需要安装pcre ,他作用是让ngnix支持rewrite功能 使用命令安装:

[html] view plain copy

  1. yum install pcre-devel.i686  

输入y,回车

然后提示 complete,表示成功。

再执行./configure 还是提示同样的错误; 执行命令查找PCRE的安装位置:file -name pcre 得到的是:./auto/lib/pcre

根据提示在后面添加参数指定Path 执行命令:./configure --with-pcre=./auto/lib/pcre 提示如下信息: ./configure: error: the HTTP gzip module requires the zlib library. You can either disable the module by using --without-http_gzip_module option, or install the zlib library into the system, or build the zlib library statically from the source with nginx by using --with-zlib=<path> option. 还缺少zlib library信息! 执行以下命令安装:yum -y install make zlib zlib-devel gcc-c++ libtool 安装成功之后,再执行命令:./configure --with-pcre=./auto/lib/pcre 最后的提示信息如下:

应该是配置成功了,执行以下命令安装: make && make install 提示以下错误:

该装的都装了,还是无法安装,最后执行以下命令解决问题: yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel 执行之后再执行:./configure 再执行:make && make install 安装完成!

记住上图中的一些目录位置! 修改配置文件: 切换目录:cd /usr/local/nginx/conf 修改文件:vi nginx.conf 主要是修改server配置节的内容,按字母i进入编辑模式

按ESC键,退出编辑模式,按冒号键“:”进入命令模式,输入“wq”然后回车,保存并退出; 切换到sbin目录:cd /usr/local/nginx/sbin 启动Nginx:./nginx 开放防火墙端口: /sbin/iptables -I INPUT -p tcp --dport 88 -j ACCEPT /etc/init.d/iptables save 打开浏览器,输入以下地址访问吧: http://你的服务器IP:88/ 看到以下信息了吗?

注意:我在虚拟机中安装的时候遇到了类似以下错误: ./configure auto/unix: No such file or directory 当我使用“mkdir auto/unix”之后,还是提示类似的错误,但目录名又变了。 纠结了好久,后来发现是解压的时候就有好多文件没有解压出来,判断应该是安装包压缩文件坏了, 所以解压的时候就少了好多的文件或目录,重新下载一个解压安装问题就解决了。 配置Nginx开机启动,vi /etc/rc.d/rc.local 在文件末尾添加“/usr/local/nginx/sbin/nginx” Nginx常用命令: 重新加载配置文件:/usr/local/nginx/sbin/nginx -s reload 停止Nginx服务:/usr/local/nginx/sbin/nginx -s stop 文件权限问题: 有可能因为目录、文件权限过高,导致Nginx无权访问文件,可以通过以下命令修改权限: chmod -R 777 ./uploadfile 5、配置Nginx+Tomcat,使用Nginx实现反向代理

这时我们还是直接访问tomcat服务器的,现在我想通过nginx访问tomcat,即输入localhost就能显示我们demo的页面。 这就要我们去修改nginx的核心配置文件,在其目录下的conf文件夹下的nginx.conf文件,那么首先我们就要了解该文件中一些节点的作用。 worker_processes:工作进程个数,可配置多个 worker_connections:单个进程最大连接数 server:每一个server相当于一个代理服务器 lister:监听端口,默认80 server_name:当前服务的域名,可以有多个,用空格分隔(我们是本地所以是localhost) location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里 index:当没有指定主页时,默认会选择这个指定的文件,可多个,空格分隔 proxy_pass:请求转向自定义的服务器列表 upstream name{ }:服务器集群名称 知道了节点作用后,我们就知道我们需要修改的文件中的server部分.

它访问的是它欢迎页面即index.html

下面我们对这段代码进行一些小小修改。就是将请求转向我们定义的服务器

随后在cmd中输入命令nginx -s reload即可重启nginx。

重启后,我们再输入localhost,可以看到跳转到的页面是我们demo的。

至此,反向代理已完成,这样所有请求都需经过代理服务器才能访问到正式服务器,某种程度上可以保护网站安全。

6、实现负载均衡

负载均衡即是代理服务器将接收的请求均衡的分发到各服务器中。 负载均衡的优势在访问量少或并发小的时候可能并不明显,且不说淘宝双11、铁道部抢票这种级别的访问量、高并发,就是一般网站的抢购活动时,也会给服务器造成很大压力,可能会造成服务器崩溃。而负载均衡可以很明显的减少甚至消除这种情况的出现,下面我们说说实现方法。 将tomcat1上的项目,拷贝到tomcat2上,稍微修改下页面上的文字以便等下区分我们的请求被分发到了哪个tomcat上。tomcat1端口为8080,tomcat2端口我这里为8081.

服务器准备好了,我们要在server外部定义个服务器集群,即用到了上文中提到的upstream 标签。服务器集群名字取为netitcast.com.

同时我们需要再修改下server,将定向的路径转到问你服务器集群上。

重启下nginx,在浏览器输入localhost:88,再多刷新几次,可以看到两个页面在来回切换.


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/LF9OMXExjq
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/9630
 
584 次点击