nginx实现负载均衡

Nginx的安装和配置

进入Nginx官网站 http://nginx.org/,点击右侧download

如下是nginx版本这里下载稳定版本  1.14.1 版本  复制链接,然后用 wget 下载


输入命令 wget http://nginx.org/download/nginx-1.14.0.tar.gz (这里我下载的是1.14.0版本)

下载后 解压 tar -zxvf nginx-1.14.0.tar.gz

我这里在根目录下新建了一个worksoft文件夹 进行下载 解压操作


安装Nginx前,需要安装以下三个依赖包:

ssl 功能需要 openssl 库https://www.openssl.org/source/

wget https://www.openssl.org/source/openssl-fips-2.0.14.tar.gz

gzip 模块需要 zlib 库  http://www.zlib.net/

wget http://www.zlib.net/zlib-1.2.11.tar.gz

rewrite 模块需要 pcre 库 http://www.pcre.org/

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz


下载完成后安装,依赖包安装顺序依次为: openssl、zlib、pcre, 然后安装 Nginx 包

1.安装openssl

 tar -zxvf openssl-fips-2.0.14.tar.gz

 cd openssl-fips-2.0.14/

 ./config

 make

make install

2.安装zlib

tar -zxvf zlib-1.2.11.tar.gz

 cd zlib-1.2.11/

 ./configure

 make

 make install

安装gcc g++

yum install gcc-c++

3.安装pcre

 tar -zxvf pcre-8.39.tar.gz

 cd pcre-8.39/

 ./configure

 make

 make install

4.安装nginx

 tar -zxvf nginx-1.12.0.tar.gz

 cd nginx-1.12.0/

 ./configure --with-pcre=../pcre-8.39 --with-zlib=../zlib-1.2.11 --with-openssl=../openssl-fips-2.0.14

 make

 make install



检测是否安装成功

 cd /usr/local/nginx/sbin/

 ./nginx -t

出现如下提示 则说明安装成功



启动nginx命令     ./nginx 

查看服务 ps -ef|grep nginx

看到如下进程说明启动成功



nginx.conf默认端口号 80     所以访问 ip 192.168.12.137 (master) 看到如下页面




负载均衡配置 

首先准备三台服务器

ip地址分别为 :

192.168.12.134 (1号机)

192.168.12.135 (2号机)

192.168.12.136 (3号机)

安装tomcat,以及部署web项目,开放8080端口,开启服务器。

centos7开放8080端口 firewall-cmd --zone=public --add-port=8080/tcp --permanent 

不同的服务器中放不同的页面,其中hello.jsp中 分别显示 1号机   2号机  3号机

开启tomcat服务器 ./startup.sh

分别访问三台主机得到如下





配置Nginx

进入Nginx目录,编辑 nginx.conf 配置文件

 vim /usr/local/nginx/conf/nginx.conf



server {

       #默认侦听80端口,可以修改为8888

        #listen       80;

        listen        8888;

        server_name localhost;

在http节点下添加upstream节点

nginx对于集群默认的负载形式是使用upstream方式进行负载(默认是轮询upstream的形式),每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除,这种默认方式的可靠性比较低、负载分配不均衡;一般在纯静态页面服务器集群才会使用这种方式,

upstream testnginx.com{ #名字随便起与下面proxy_pass对应即可

    server  192.168.12.134:8080;

    server  192.168.12.135:8080;

    server  192.168.12.136:8080;


对于负载均衡,nginx还提供了以下均衡模式:

1)weight 模式

权重模式,指定upstream的轮询记录,weight和访问比例成正比,主要与后端服务器性能不均的情况;

upstream testnginx.com {

    server 192.168.12.134:8080 weight=40;

    server 192.168.12.135:8080 weight=60;

}

以上配置 192.168.12.135 比 192.168.12.134 有更高的访问比例;

2)ip_hash 模式

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session独立匹配的问题;

upstream testnginx.com{

   server 192.168.12.134;

   server 192.168.12.134;

   ip_hash;

}

3)fair 模式

按后端服务器的响应时间来分配请求,响应时间短的优先分配;

upstream testnginx.com {

    server 192.168.12.134:8080;

    server 192.168.12.135:8080;

    fair;

}

4)url_hash 模式

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效;

upstreamt estnginx.com{

   server 192.168.12.134:8080;

   server 192.168.12.135:8080;

   hash $request_uri;

   hash_method crs32;

}


upstream还可以为每个设备设置状态值,部分常用的状态如下:

down:当前的server暂时不参与负载.

max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误;

fail_timeout : max_fails次失败后,暂停的时间;

backup: 指定为备用服务器,其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻;


在server中  location里  添加一个 proxy_pass  http://testnginx.com;  

接着保存退出。


重启nginx服务器

   方式一:

查看进程号    ps -ef|grep nginx    


杀死对应进程   kill -quit1522

再重启   按指定config配置启动   /usr/local/nginx/sbin/nginx    -c   /usr/local/nginx/conf/nginx.conf


或者直接启动也会按默认的配置启动    /usr/local/nginx/sbin/nginx

方式二: 

进入nginx可执行目录sbin下,输入命令 ./nginx -s reload 即可

负载均衡测试:

经过以上配置已经实现负载均衡,可以通过 访问nginx服务器地址来实现对不同服务器tomcat访问

进行测试

多次访问   http://192.168.12.137:8888/linuxServerTest/hello.jsp




最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容