{channel.title!channel.name} - 楚淮公司周东林

Tengine|NGINX负载均衡

本文针对Linux系统下安装Tenginx并通过upstream模块实现负载均衡,本文在端口80业务状态正常的情况下实现负载均衡。如想学习业务配置请查看TOMCAT目录下session共享实现文章。


1.下载并安装并安装Tengine(百度网盘链接失效请和我联系)

百度网盘:http://pan.baidu.com/s/1geTOFSn  密码:bcmb

我下载的目录是/opt目录

#cd /opt   //进入/opt目录

#ls    //查看目录下文件

[root@vpn opt]# ls
httpd                mod_encoding.c.apache2.20040616  pcre-8.36.tar.gz  redis-2.8.0.tar.gz  tengine-2.1.2.tar.gz
httpd-2.2.31.tar.gz  openvpn-2.3.7.tar.gz             redis             redis-3.0.6.tar.gz  tomcat-connectors-1.2.41-src
mod_encoding         pcre-8.36                        redis-2.8.0       tengine-2.1.2       tomcat-connectors-1.2.41-src.tar.gz

[root@vpn opt]#cd tengine-2.1.2     //进入Tengine目录,我的已经解压好,没解压的自己执行tar进行解压

[root@vpn tengine-2.1.2]# ls
AUTHORS.te  CHANGES     CHANGES.ru  conf       contrib  good_configure  LICENSE   man      objs      README           src    THANKS.te
auto        CHANGES.cn  CHANGES.te  configure  docs     html            Makefile  modules  packages  README.markdown  tests

[root@vpn tengine-2.1.2]# ./configure   //执行编译安装

大部分的选项跟Nginx是兼容的。下面列出的都是Tengine特有的选项。如果你想查看Tengine支持的所有选项,你可以运行'./configure --help'命令来获取帮助。

--dso-path

设置DSO模块的安装路径。

--dso-tool-path

设置dso_tool脚本本身的安装路径。

--without-dso

关闭动态加载模块的功能。

--with-jemalloc

让Tengine链接jemalloc库,运行时用jemalloc来分配和释放内存。

--with-jemalloc=path

设置jemalloc库的源代码路径,Tengine可以静态编译和链接该库。

[root@vpn tengine-2.1.2]#make   

[root@vpn tengine-2.1.2]#make   install

2.配置Tengine实现负载均衡

Tengine默认安装在/usr/local/nginx目录。你可以用'--prefix'来指定你想要的安装目录。

进入配置目录    #cd /usr/local/nginx/conf

编辑配置文件   #vi nginx.conf  在http{} 之间添加upstream

代码如下:


        upstream jschrj {
        server 192.168.134.1:80;
        server 192.168.134.100:80;
        server 192.168.134.101:80;
        session_sticky;
}

在sever{}之间添加监听端口反向代理

代码如下:


server {
listen 80;
server_name www.zhoudl.com zhoudl.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
access_log off;
 location / {
proxy_pass http://jschrj;
#session_sticky_hide_cookie upstream=jschrj
}
}

3.代码重要部分解释

1.upstream jschrj 其中jschrj是自己设置的别名

2.server 192.168.134.1:80; 有几台业务服务器就几个server其中192.168.1.1是服务器的IP地址,80是服务端口

3.server_name 是绑定的域名,多个域名用空格隔开

4.proxy_pass http://jschrj这里的jschrj要和upstream里面的别名一致;


浏览.发表于:2016-12-06 10:13:17