安装nginx及tcp代理

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值