当前位置:首页 > 技术文章 > 正文内容

Nginx实现socket代理

arlanguage4个月前 (01-13)技术文章37

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

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

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


1. 安装nginx

我平时比较习惯使用tengine,官方下载地址http://tengine.taobao.org/download_cn.html

下载完成后使用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预编译时添加参数指定路径

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/834.html

标签: tengine nginx
分享给朋友:

“Nginx实现socket代理” 的相关文章

Nginx 问题以及对应的解决方案

1. Nginx 无法启动当 Nginx 无法启动时,通常是由于以下几个原因导致的:配置文件有误。可以通过运行 nginx -t 命令检查配置文件是否存在语法错误。端口被占用。可以通过运行 netstat -tlnp 命令查看当前系统中占用该端口的进程,并将其停止或更改端口。缺少权限。Nginx 可...

nginx启动、重启、关闭

一、启动cd usr/local/nginx/sbin./nginx二、重启更改配置重启nginxkill -HUP 主进程号或进程号文件路径或者使用cd /usr/local/nginx/sbin./nginx -s reload 判断配置文件是否正确nginx -t -c /usr/local/...

WordPress切换到Nginx服务器教程

这几天将几个WordPress的Web服务器从Apache切换到了Nginx,中间遇到了不少问题,因此记录一下,以便日后维护使用。对于WordPress站点来说,固定链接主要是通过根目录下的.htaccess文件来控制,切换服务器后,Nginx的rewrite格式和Apache的不同,需要修改。先卸...

C# 实现高并发 Web 应用的性能优化秘籍

在现代的互联网应用中,尤其是大型 Web 应用,性能和可扩展性成为了核心竞争力。随着用户访问量和数据量的增大,高并发处理成为了系统稳定性和响应速度的关键因素。无论是电商平台、社交网站还是 SaaS 应用,如何应对海量用户的同时访问,确保系统高效运转,已经成为了技术人员面临的重要挑战。C# 和 ASP...

K8S灰度环境频繁出现502 k8s ingress 灰度发布

公司一个需求版本开发、测试结束,升级到灰度环境之后频繁出现502公司使用的是php + nginx 所以分析也是按照这个方向来分析的。nginx报错:NGINX ERROR 10.9.95.75 !!!2020/07/21 17:05:12 [error] 7#7: *38808 recv() fa...

Nginx的安装及配置详解 nginx1.12安装

Nginx是一个强大的免费开源的HTTP服务器和反向代理服务器。在Web开发项目中,nginx常用作为静态文件服务器处理静态文件,并负责将动态请求转发至应用服务器(Django, Flask, etc)。熟悉Nginx的配置对Web开发和运维人员来说至关重要。本文整理了Nginx的配置大全,可以作为...