Nginx快速应用及数据库、Websocket长连接反向代理

2 篇文章 0 订阅
1 篇文章 0 订阅

1、下载安装包

下载nginx:   http://nginx.org/download/nginx-1.10.3.tar.gz

下载openssl : http://www.openssl.org/source/openssl-fips-2.0.9.tar.gz

下载zlib    : http://zlib.net/zlib-1.2.11.tar.gz

下载pcre    : ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz

(同步安装包已一并打包)

如果没有安装c++编译环境,还得安装,通过yum install gcc-c++完成安装

 

2、编译安装

安装前请确认openssl zlib pcre是否安装,若没有,请按照以下顺序进行安装,否则nginx会因为无法找到依赖包而无法安装

openssl :

[root@localhost] tar zxvf openssl-fips-2.0.9.tar.gz

[root@localhost] cd openssl-fips-2.0.9

[root@localhost] ./config && make && make install

pcre:

[root@localhost] tar zxvf pcre-8.38.tar.gz

[root@localhost] cd pcre-8.38

[root@localhost]  ./configure && make && make install

zlib:

[root@localhost]tar zxvf zlib-1.2.11.tar.gz

[root@localhost] cd zlib-1.2.11

[root@localhost]  ./configure && make && make install

nginx

[root@localhost]tar zxvf nginx-1.8.0.tar.gz

[root@localhost] cd nginx-1.8.0

[root@localhost]  ./configure && make && make install

 

3、启动nginx

[root@localhost] /usr/local/nginx/sbin/nginx   (启动)

[root@localhost] /usr/local/nginx/sbin/nginx s reload (重启)

[root@localhost] /usr/local/nginx/sbin/nginx s stop (关闭)

 

4、错误解决

      1.[root@localhost lib]# error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory

原因   在RedHat 64位机器上nginx读取的pcre文件为/lib64/libpcre.so.1文件,默认安装pcre时libpcre.so文件安装在/usr/local/lib/目录下,所以输入/opt/nginx/sbin/nginx -V 找不到文件路径!!

            1.首先确定安装了pcre.

            2.切换路径: cd /usr/local/lib  执行   ln -s /usr/local/lib/libpcre.so.1

             3.root权限下添加软链接 /usr/local/lib/libpcre.so.1 到 /lib64/ :  ln -s /usr/local/lib/libpcre.so.1

2.

  检查端口号冲突

  1. 检查nginx是否已经启动,其本身占用该端口号
  2. 检查是否有别的程序占用该端口号
  3. 修改nginx的端口号 /usr/local/nginx/conf/nginx.conf

   注:[root@localhost ~]# netstat –apn   (检查端口号使用情况)

 

5、确认是否启动成功

打开浏览器  输入  192.168.1.168(ip地址):81(端口号) 显示一下内容说明启动成功

成功后页面:

5、nginx相关配置

对 /usr/local/nginx/conf/nginx.conf 文件进行编辑

1.配置端口号与访问首页

2.配置需要代理的ip地址

3.配置允许访问的路径

4. nginx.conf已与安装包一并打包.可参考

 

6、长连接的反向代理

长连接反向代理一般用在一些特殊情况,比如数据库在某些云服务器上,数据库只能通过SSH通道来进行连接,也就是说只有某台云服务器可以连这个数据库,别的人想直接访问数据库是不行的,这个时候如果想在外网直接能访问到云服务器内部数据库,就需要在能访问的那台云服务器做反向代理,把自身的某个端口号,映射到数据库的连接地址上面,这里要注意一下nginx的版本,低版本的是不能创建长连接代理的,nginx版本至少1.9的版本,版本太低没有stream这个功能

stream模块默认没有编译到nginx, 编译nginx时候 ./configure –with-stream 即可

主要用的是stream的配置:

比如我在nginx的配置文件引入了另外一个配置文件

看一下这个配置文件:

打了马赛克部分的是IP地址和端口号,表示你下方监听的端口号要映射到哪个IP及端口 ,示例:192.168.1.123:3306

提供一份文本格式的

stream {
    upstream cloudsocket {
        hash $remote_addr consistent;
        # $binary_remote_addr;
        server 192.168.1.167:3306 weight=5 max_fails=30 fail_timeout=360s;
    }
    upstream redissocket {
        hash $remote_addr consistent;
        # $binary_remote_addr;
        server 192.168.1.167:6379 weight=5 max_fails=30 fail_timeout=360s;
    }
    server {
        listen 84;#数据库服务器监听端口
        proxy_connect_timeout 36000s;
        proxy_timeout 36000s;#设置客户端和代理服务之间的超时时间,如果5分钟内没操作将自动断开。
        proxy_pass cloudsocket;
    }
    server {
        listen 81;#数据库服务器监听端口
        proxy_connect_timeout 36000s;
        proxy_timeout 36000s;#设置客户端和代理服务之间的超时时间,如果5分钟内没操作将自动断开。
        proxy_pass redissocket;
    }
}

意思就是监听本服务器84端口, 如果有连接,则反向代理到192.168.1.167:3306;

监听本服务器的81端口,如果有连接,则反向代理到192.168.1.167:6379;

 

OK 重启nginx  ......................

这样子就搞定啦~~~~~~

 

皮皮皮,就是皮~~~~~~~~~~~~~~~~~~~

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Run_the_ant

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值