安装nginx及tcp代理

来源:互联网 发布:js触发a标签的href 编辑:程序博客网 时间:2024/06/08 14:32

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。(百度百科- http://www.dwz.cn/x32kG)

1.Nginx安装

安装make命令:yum -y install gcc automake autoconf libtool make

我使用的环境是64位 Ubuntu 14.04。nginx依赖以下模块:

gzip模块需要 zlib 库    rewrite模块需要 pcre 库    ssl 功能需要openssl库

1.1.安装pcre
获取pcre编译安装包,在http://www.pcre.org/上可以获取当前最新的版本

    解压缩pcre-xx.tar.gz包。         进入解压缩目录,执行./configure。         make & make install

1.2.安装openssl
获取openssl编译安装包,在http://www.openssl.org/source/上可以获取当前最新的版本。

    解压缩openssl-xx.tar.gz包。         进入解压缩目录,执行./config。         make & make install

1.3.安装zlib
获取zlib编译安装包,在http://www.zlib.net/上可以获取当前最新的版本。

    解压缩openssl-xx.tar.gz包。         进入解压缩目录,执行./configure。         make & make install

1.4.安装nginx
获取nginx,在http://nginx.org/en/download.html上可以获取当前最新的版本。

    解压缩nginx-xx.tar.gz包。         进入解压缩目录,执行./configure         make & make install

若安装时找不到上述依赖模块,使用–with-openssl=、–with-pcre=、–with-zlib=指定依赖的模块目录。如已安装过,此处的路径为安装目录;若未安装,则此路径为编译安装包路径,nginx将执行模块的默认编译安装。

启动nginx:

cd nginx_home/sbin
./nginx

浏览器中输入http://localhost可以验证是否安装启动成功。

2.安装nginx tcp代理

nginx_tcp_proxy_module是国人开发的nginx的tcp代理模块。注: 官方例子使用的nginx-1.2.1版本,本人使用nginx-1.10.1版本配置失败,原因未知。

git地址:https://github.com/yaoweibin/nginx_tcp_proxy_module ,安装步骤参考其git feeds,下面是自己安装过程中遇到的问题及解决方法:

2.1.make出错

./configure: error: SSL modules require the OpenSSL library.        ubuntu下解决办法:            apt-get install openssl            apt-get install libssl-dev        centos下解决办法:            yum -y install openssl openssl-devel

2.2.pcre包查找失败

/ngx_regex.c:307: undefined reference to `pcre_free_study'        解决方法:        ./configure --add-module=/path/to/nginx_tcp_proxy_module --with-pcre=../pcre-8.38 --with-pcre-jit        (确保事先安装pcre: ../pcre-8.38)

2.3.按照git教程设置完毕后,设置tcp代理参数:
nginx.conf主配置文件中增加如下配置配置:(也可以在主配置文件中配置include,包含tcp转发的配置文件
include /opt/nginx_tcp_proxy_module-master/tcp_proxy.conf)

tcp {            upstream proxy_name {                # simple round-robin                server 192.168.1.10:8000;                server 192.168.1.10:8001;                server 192.168.1.11:8000;                server 192.168.1.11:8001;                check interval=3000 rise=2 fall=5timeout=1000;                #check interval=3000 rise=2 fall=5timeout=1000                #check interval=3000 rise=2 fall=5timeout=1000                #check_http_send "GET /HTTP/1.0\r\n\r\n";                #check_http_expect_alive http_2xxhttp_3xx;            }            server {                listen 8888;                proxy_pass proxy_name;            }        }
    说明:    check interval 健康检查,单位是毫秒    rise 检查几次正常后,将reslserver加入以负载列表中    fall 检查几次失败后,摘除realserver    timeout 检查超时时间,单位许毫秒    具体可查看nginx_tcp_proxy_module-master/README,很详细。
0 0
原创粉丝点击