环境:centos6.5 64位
目的:用nginx做一个反向代理,代理多个tomcat并做负载均衡
jdk的安装(略)
tomcat安装(略)
nginx的安装
因为做负载均衡需要用到nginx的upstream模块,所以安装nginx的同时,需要把这个模块给安装上。我第一次安装nginx是没有注意到这点,花了不少时间看别人写的教程,自己也试了很多次最终把nginx配置完成。
在安装nginx前,需要确保系统安装了g++、gcc、openssl-devel、pcre-devel和zlib-devel软件。安装必须软件:
# yum install gcc-c++
# yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel
下载upstream模块的补丁文件
# wget https://github.com/yaoweibin/nginx_upstream_check_module/archive/master.zip
下载后解压文件
# unzip nginx_upstream_check_module-master.zip
将解压文件移动到root目录
# mv ./nginx_upstream_check_module-master /root/health
下载解压nginx编译包(我是在widows环境下载的,然后通过winscp软件拉倒阿里云上的)
# tar -zxvf nginx-1.10.2.tar.gz
然后进入解压后的nginx-1.10.2目录,给nginx打上nginx_upstream_check_module补丁
# patch -p0 < /root/health/check_1.11.5+.patch
配置参数
# ./configure ----prefix=/usr/local/nginx --add-module=/root/health/
编译、安装
# make&&make install
启动
# /usr/local/nginx/sbin/nginx
启动之后我们在浏览器键入服务器的ip,会在浏览器看到下面的页面
nginx的配置
nginx安装完毕之后,为了让nginx对tomcat做反向代理和均衡负载,我需要对nginx配置文件进行修改。
打开nginx的配置文件nginx.conf,我们可以看到原始的配置文件
# vi /usr/local/nginx/conf/nginx.conf
这段代码在server里面,相当于一个代理服务器,当然可以配置多个。
下面我们仔细来分析一下:
listen:表示当前的代理服务器监听的端口,默认的是监听80端口。注意,如果我们配置了多个server,这个listen要配置不一样,不然就不能确定转到哪里去了。
server_name:表示监听到之后需要转到哪里去,这时我们直接转到本地,这时是直接到nginx文件夹内。
location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里
root:里面配置了root这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件,这里对我们之后的静态文件伺服很有用。
index:当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推。
那我们知道了具体的配置了,怎么让它访问localhost时转到tomcat时。实际上就修改两个地方:
server_name ip:8080;
location / {
proxy_pass http://ip:8080;
}
修改完毕,我们进入nginx命令的目录下,重新加载nginx配置文件
# nginx -s reload
此时我们在浏览器中键入服务器的ip地址,我们会看到浏览器的页面跳转到tomcat的页面而不是nginx的首页(前提是你服务器上成功安装了tomcat并启动了)