环境: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 并启动了)
来源: