centos6 Nginx+Tomcat负载均衡配置

  

一、Nginx简介

Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度一下有很多,下面直接进入安装步骤

二、Nginx安装

1、下载Nginx及相关组件

Linux系统是Centos 6.5 64位,我直接切换到root用户下安装

进入用户目录下载程序

centos6 Nginx+Tomcat负载均衡配置

下载相关组件,先查看有没有安装过,查看安装目录

[root@localhost]whereis openssl
[root@localhost]whereis nginx
[root@localhost]whereis zlib
[root@localhost]whereis pcre
路径为空就开始以下安装
[root@localhost src]# wget http://nginx.org/download/nginx-1.10.2.tar.gz
省略安装内容...
[root@localhost src]# wget http://www.openssl.org/source/openssl-fips-2.0.10.tar.gz
省略安装内容...
[root@localhost src]# wget http://zlib.net/zlib-1.2.11.tar.gz
省略安装内容...
[root@localhost src]# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
省略安装内容...

安装c++编译环境,如已安装可略过

[root@localhost src]# yum install gcc-c++
省略安装内容...
期间会有确认提示输入y回车
Is this ok [y/N]:y
省略安装内容...

2、安装Nginx及相关组件

openssl安装

[root@localhost src]# tar zxvf openssl-fips-2.0..tar.gz
省略安装内容...
[root@localhost src]# cd openssl-fips-2.0.
[root@localhost openssl-fips-2.0.]# ./config && make && make install
省略安装内容...

pcre安装

[root@localhost src]# tar zxvf pcre-8.40.tar.gz
省略安装内容...
[root@localhost src]# cd pcre-8.40
[root@localhost pcre-8.40]# ./configure && make && make install
省略安装内容...

zlib安装

[root@localhost src]# tar zxvf zlib-1.2..tar.gz
省略安装内容...
[root@localhost src]# cd zlib-1.2.
[root@localhost zlib-1.2.]# ./configure && make && make install
省略安装内容...

nginx安装

[root@localhost src]# tar zxvf nginx-1.10..tar.gz
省略安装内容...
[root@localhost src]# cd nginx-1.10.
[root@localhost nginx-1.10.]# ./configure && make && make install
省略安装内容...

3、启动Nginx

先找一下nginx安装到什么位置上了

centos6 Nginx+Tomcat负载均衡配置

进入nginx目录并启动

centos6 Nginx+Tomcat负载均衡配置

报错了,error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory,按照下面方式解决

.用whereis libpcre.so.1命令找到libpcre.so.1在哪里
.用ln -s /usr/local/lib/libpcre.so. /lib64命令做个软连接就可以了
.用sbin/nginx启动Nginx
.用ps -aux | grep nginx查看状态 [root@localhost nginx]# whereis libpcre.so.
[root@localhost nginx]# ln -s /usr/local/lib/libpcre.so. /lib64
[root@localhost nginx]# sbin/nginx
[root@localhost nginx]# ps -aux | grep nginx

centos6 Nginx+Tomcat负载均衡配置

nginx的基本操作

启动
[root@localhost ~]# /usr/local/nginx/sbin/nginx
停止/重启
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s stop(quit、reload)
命令帮助
[root@localhost ~]# /usr/local/nginx/sbin/nginx -h
验证配置文件
[root@localhost ~]# /usr/local/nginx/sbin/nginx -t
配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

4、简单配置Nginx

打开nginx配置文件位于nginx目录下的conf文件夹下

centos6 Nginx+Tomcat负载均衡配置

简单介绍一下vim的语法

默认vim打开后是不能录入的,需要按键才能操作,具体如下:
开启编辑:按“i”或者“Insert”键
退出编辑:“Esc”键
退出vim:“:q”
保存vim:“:w”
保存退出vim:“:wq”
不保存退出vim:“:q!”

如果机器上apache占用的是默认80端口,那我们就可以把nginx改成8080端口

centos6 Nginx+Tomcat负载均衡配置

若想设置多个站点如下配置:

"#"代表注释,最重要的是server{}块这部分就代表每一个web站点,详细的配置介绍可以查阅我的另一片配置文章,此处我们先暂时设置三个站点

centos6 Nginx+Tomcat负载均衡配置

分别使用不同的端口80、81、82保存退出并且重启nginx

centos6 Nginx+Tomcat负载均衡配置

如出现以下报错:
nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
解决方法:
[root@localhost nginx]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
使用nginx -c的参数指定nginx.conf文件的位置
[root@localhost nginx]# cd logs/
[root@localhost logs]# ll
总用量 12
-rw-r--r-- 1 root root 1246 12月  9 18:10 access.log
-rw-r--r-- 1 root root  516 12月 10 15:39 error.log
-rw-r--r-- 1 root root    5 12月 10 15:38 nginx.pid
看nginx.pid文件已经有了。
 如下图:
centos6 Nginx+Tomcat负载均衡配置
那我们再试试:
/usr/local/nginx/sbin/nginx -s reload

然后打开zhiqiao.wang:8080

 centos6 Nginx+Tomcat负载均衡配置

出现以上信息就代表着nginx安装运行成功!

5、Nginx负载均衡配置

Nginx集反向代理和负载均衡于一身,在配置文件中修改配就可以实现

首先我们打开配置文件

[root@localhost nginx]# vim conf/nginx.conf

每一个server就是一个虚拟主机,我们有一个当作web服务器来使用

listen 80;代表监听80端口
server_name xxx.com;代表外网访问的域名
location / {};代表一个过滤器,/匹配所有请求,我们还可以根据自己的情况定义不同的过滤,比如对静态文件js、css、image制定专属过滤
root html;代表站点根目录
index index.html;代表默认主页

centos6 Nginx+Tomcat负载均衡配置

这样配置完毕我们输入域名就可以访问到该站点了。

负载均衡功能往往在接收到某个请求后分配到后端的多台服务器上,那我们就需要upstream{}块来配合使用

upstream xxx{};upstream模块是命名一个后端服务器组,组名必须为后端服务器站点域名,内部可以写多台服务器ip和port,还可以设置跳转规则及权重等等
ip_hash;代表使用ip地址方式分配跳转后端服务器,同一ip请求每次都会访问同一台后端服务器
server;代表后端服务器地址 server{};server模块依然是接收外部请求的部分
server_name;代表外网访问域名
location / {};同样代表过滤器,用于制定不同请求的不同操作
proxy_pass;代表后端服务器组名,此组名必须为后端服务器站点域名 server_name和upstream{}的组名可以不一致,server_name是外网访问接收请求的域名,upstream{}的组名是跳转后端服务器时站点访问的域名

6、第二台机器tomcat配置

lsof -i :80 查看80端口那些服务,

如果有其他程序占用如nginx就杀掉 kill -9 lsof -i :80 |grep nginx |grep -v grep|awk '{print $2}'

也可以用 killall nginx 杀掉关于nginx所有相关的服务

去官网上下载 https://tomcat.apache.org/download-70.cgi

我用的是tomcat7,如图所在处

centos6 Nginx+Tomcat负载均衡配置

下载 wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0.86/bin/apache-tomcat-7.0.86.tar.gz

解压        tar -zxvf apache-tomcat-7.0.86.tar.gz
到该目录下     cd /root/apache-tomcat-7.0.86/bin
启动tomcat    ./startup.sh
修改tomcat主页  vim /root/apache-tomcat-7.0.86/webapps/ROOT/index.jsp

放行防火墙端口8080

打开浏览器输入nginx服务器ip如图

centos6 Nginx+Tomcat负载均衡配置

打开浏览器输入tomcat服务器ip如图

centos6 Nginx+Tomcat负载均衡配置

这样就成功的配置好了~~

不足之处请指导~

上一篇:VMware Pro15虚拟机中安装centos8并且安装Gitlab服务器的解决方法


下一篇:高并发下载tomcat下的文件时,发生java.net.SocketException: Connection reset解决方案