Nginx实现socket代理

在工作生活中经常会使用到代理,而nginx也是最常用的web服务器之一,想必大家都很熟悉。

这里用nginx做一个简单的socket代理服务端。

应用场景:客户端A想要访问服务器B的数据库服务,但奈何网络受限端口不通,另外正好有一台服务器C既可以被客户端A访问,也可以访问服务器B的数据库服务,这时可以通过nginx做一个socket代理,以实现客户端A访问到B的数据库。

1. 安装nginx

我平时比较习惯使用tengine,官方下载地址:下载 - The Tengine Web Server

下载完成后使用tar解压:

tar zxvf tengine-2.3.2.tar.gz

预编译(为了最小化演示,不添加其他参数,默认安装位置为/usr/local/nginx/,实际使用中请根据需求自行修改):

./configure --with-stream #这里需要添加stream模块,如在实际安装中需要其他模块请自行添加

编译安装:

make && make install 

2. 修改nginx配置文件

示例配置文件,在默认配置文件中添加stream区域:

worker_processes  1;

events {
    worker_connections  1024;
}

#添加以下配置实现socket代理

stream{
                server{
                        listen 8080;   #nginx socket监听端口
                        proxy_pass xxxxx:1521;  #服务器B的IP地址和数据库服务监听端口
                }
}

#添加以上配置实现socket代理

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;


    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }


        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

}

3. 启动nginx

/usr/local/nginx/sbin/nginx

4. 测试

现在只需要在客户端A通过数据库工具访问 nginx服务器IP的8080端口,就可以登录到服务器C的数据库了。

5. nginx安装时可能遇到的报错

./configure: error: the HTTP rewrite module requires the PCRE library.

解决方法: yum -y install pcre-devel  内网请自行搭建yum源或编译安装,如果是编译安装需要在nginx预编译时添加参数指定路径

./configure: error: SSL modules require the OpenSSL library.

解决方法:yum -y install openssl openssl-devel   内网请自行搭建yum源或编译安装,如果是编译安装需要在nginx预编译时添加参数指定路径

写在最后:

如有错误,请评论告知,多多包涵。

欢迎关注我的订阅号,谢谢

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

伟大的伟群众的群

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

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

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

打赏作者

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

抵扣说明:

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

余额充值