nginx-upstream安装配置

来源:互联网 发布:icmp协议端口 编辑:程序博客网 时间:2024/06/05 17:02

nginx-upstream安装配置

nginx使用upstream模块配置tcp负载均衡和代理


注意:以下所使用的源码均放在:/home/source 目录下


1.使用VMVirtualBox安装CentOS6.5x64系统(自行百度)


2.http://www.nginx.org下nginx-1.8.0.tar.gz源码,
https://github.com/yaoweibin/nginx_tcp_proxy_module下载upstream模块nginx_tcp_proxy_module-v0.4.5.tar.gz源码


3.解压nginx-1.8.0.tar.gz, nginx_tcp_proxy_module-v0.4.5.tar.gz
tar zxvf nginx-1.8.0.tar.gz  
tar zxvf nginx_tcp_proxy_module-v0.4.5.tar.gz
cd nginx-1.8.0

Nginx开源软件默认没有提供TCP协议的负载均衡,故需要打补丁并加入模块
patch -p1 < /home/source/nginx_tcp_proxy_module/tcp.patch
patching file src/core/ngx_log.c
Hunk #1 succeeded at 86 (offset 20 lines).
patching file src/core/ngx_log.h
Hunk #1 succeeded at 30 (offset 1 line).
Hunk #2 succeeded at 38 (offset 1 line).
patching file src/event/ngx_event_connect.h
Hunk #1 succeeded at 33 (offset 1 line).
Hunk #2 succeeded at 45 with fuzz 2 (offset 2 lines).输出当前信息表示补丁成功

4.nginx_tcp_proxy_module会用到openssl的支持(下载网址:http://www.openssl.org)
也需要zlib包(下载网址:http://www.zlib.net),解压
tar zxvf openssl-1.0.0r.tar.gz
unzip zlib-master.zip


5.安装nginx 需要pcre包的支持 (下载网址:http://www.pcre.org)解压
tar zxvf pcre-8.36.tar.gz 


6.配置configure nginx编译选项
cd nginx-1.8.0
./configure --add-module=/home/source/nginx_tcp_proxy_module --with-pcre=/home/source/pcre-8.36 \
--with-openssl=/home/source/openssl-1.0.0r --with-zlib=/home/source/zlib-master --with-poll_module

默认安装在/usr/local/nginx,若需要修改,在执行configure时加入, --prefix=/xxxx绝对路径

make && make install (漫长的等待,喝杯水休息一下:)
编译安装成功,目录结构如下:
[root@localhost nginx]# ls
conf  html  logs  sbin
[root@localhost nginx]# pwd
/usr/local/nginx
[root@localhost nginx]#


7.建立软连接到/sbin目录下,这样就可以直接使用nginx来启动nginx服务
[root@localhost nginx]# ln -s /usr/local/nginx/sbin/nginx /sbin/nginx
[root@localhost nginx]# nginx 


8.配置upstream
cd /usr/local/nginx/conf
备份默认的配置文件,并复制一份:
mv nginx.conf nginx.conf_back 
cp nginx.conf_back nginx.conf
vim nginx.conf
将内容修改如下保存退出:
worker_processes  auto;//nginx进程数,自动,也可指定个数 如:worker_processes 10;
worker_rlimit_nofile 100000; //修改nginx进程打开的文件fd数
events {
use epoll; //使用epoll机制,linux下有其他的机制如:kqueue等,centos下使用epoll
worker_connections  51200;//工作进程最大连接数,此连接数受ulimit -n的限制
multi_accept on;     //如果multi_accept被禁用,工作进程将接受一次一个新的连接。 否则,工作进程将接受一次所有新连接。
}
tcp {
upstream ironappTCP {//upstream转发配置
server 192.168.1.212:22000; 
server 192.168.1.212:22001; //ESServer的ip地址和监听端口,可配置多个
}
server { //nginx服务的监听端口和当前nginx的域名或者ip地址
listen 11181;
server_name 192.168.1.211;
proxy_pass ironappTCP;//转发代理列表,对应upstream项
}
}

9.启动nginx
nginx
ps -ef | grep nginx
[root@localhost conf]# ps -ef | grep nginx
root       820     1  0 11:34 ?        00:00:00 nginx: master process nginx
nobody     821   820  0 11:34 ?        00:00:00 nginx: worker process
root       823 11807  0 11:34 pts/1    00:00:00 grep nginx
表示nginx已经启动成功
测试:windows中使用telnet, telnet 192.168.1.161 11181 (nginx服务器ip port)
可以链接,表示nginx工作正常,若在配置中的server 192.168.1.212:22000服务器是开启的
此时使用客户端进行链接,就能通过nginx的tcp_proxy模块转发到server 192.168.1.212:22000

参考博客:http://yidwo.iteye.com/blog/1837324,http://www.cnblogs.com/yahue/articles/3792176.html
0 0
原创粉丝点击