Nginx:转发TCP流量

文章介绍了如何在Docker环境中解决代理应用仅监听127.0.0.1:1080的问题,通过安装Nginx及stream模块,配置stream.conf文件将外部10000端口的TCP流量转发至本地1080端口,使得局域网或公网用户可以访问。配置包括安装Nginx,设置stream日志格式,定义upstream和server规则,最后检查并启动Nginx服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.场景介绍

近日在使用Docker容器部署某代理应用的时候发现,该应用监听的是127.0.0.1:1080地址,所以正常情况只有本地的程序才能使用该代理,但实际需要的是局域网或公网用户都可以访问使用。

二.解决方案

该代理应用使用的协议为http/sock,因此只要把外部网络的TCP流量转发到本地1080端口即可。Nginx支持转发http流量和tcp流量,因此这里就使用Nginx来解决。

1.环境安装

安装Nginx,该容器使用的镜像是Alpine,提供的包管理工具为apk,根据自己的系统工具来安装即可

apk add nginx

安装stream模块

apk add nginx-mod-stream

2.配置文件

由于转发的是TCP流量,因此配置的是stream项。

打开/etc/nginx/conf.d/stream.conf文件,将内容修改如下:

# /etc/nginx/conf.d/stream.conf

stream {
	# Specifies the main log format.
	log_format main '$remote_addr [$time_local] '
			'$protocol $status $bytes_sent $bytes_received '
			'$session_time "$upstream_addr" '
			'"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';

	access_log /var/log/nginx/stream.log main;

	# Includes servers configs.
	include stream.d/*.conf;
	
    #本地运行的服务
    upstream tcp_backend { 
        server 127.0.0.1:1080; 
    }
    server { 
        listen 10000; 
        proxy_pass tcp_backend;
    }
}

上面配置文件将监听10000端口,然后将该端口的TCP流量转发到127.0.0.1:1080,从这里也可以看出,Nginx也支持将流量转发到任意的服务地址,这里配置成自己所需要的地址即可。

3.运行服务

检查配置文件是否正确,执行以下命令:

nginx -t

开启或重启服务

nginx

nginx -reload

至此,外部网络就可以访问127.0.0.1:1080应用服务了。

### 回答1: Matlab 2022b是一款功能强大的编程软件,但是仅仅使用Matlab自带的编译器并不能满足所有的开发需求。所以,有很多开发者需要安装其他编译器来编译代码。其中,mingw-w64编译器是一种常用的开源编译器,其安装方法也非常简单。 首先,需要下载mingw-w64编译器,可以到其官网或者其他网站下载。然后,需要在Matlab中设置编译器路径,具体步骤如下: 1. 在Matlab的命令行中输入“mex -setup c”,然后选择“y”来确认使用当前的编译器设置。 2. 接下来,需要输入“mingw64”来搜索编译器,如果没有搜到,则需要手动添加编译器路径,在“Select a compiler”界面中选择“Browse”按钮,然后找到mingw-w64的安装路径并添加。 3. 点击“OK”保存设置,然后再次输入“mex -setup c”,就可以看到mingw-w64编译器的路径已经被加入到Matlab的编译器列表中。 最后,使用mingw-w64编译器编译代码时,只需要在Matlab的命令行中输入“mex -v -largeArrayDims -compatibleArrayDims -O -output MyFunction MyFunction.c”,其中“MyFunction”是要编译的函数名称,“MyFunction.c”是要编译的源代码文件名。这样就可以使用mingw-w64编译器编译Matlab代码了。 ### 回答2: MATLAB 2022b是一款集成了许多工具箱和功能的科学计算软件。在其中安装Mingw-w64编译器可以为用户提供更多的编程能力与便利。以下是安装Mingw-w64编译器的步骤: 1. 下载并安装最新版本的Mingw-w64编译器,并将其安装到计算机的某个目录中。 2. 打开MATLAB 2022b软件,并在主界面的“HOME”选项中选择“Preferences”。 3. 在“Preferencs”窗口中,选择左侧菜单栏中的“MATLAB”选项,并在右侧菜单栏中选择“General”。 4. 在“General”选项卡下方的“MATLAB > Language”中,选择“Mingw-w64 C/C++ Compiler”。 5. 点击“Browse”按钮并在电脑上找到Mingw-w64编译器,并选择其安装目录。 6. 点击“OK”按钮,MATLAB 2022b就会开始配置Mingw-w64编译器。 7. 使用Mingw-w64编译器时,需要在MATLAB命令行中输入以下命令:mex -setup mex -setup:C:\mingw-w64\bin\g++.exe 以上就是在MATLAB 2022b中安装Mingw-w64编译器的步骤。安装完成后,用户可以使用Mingw-w64编译器进行更加高效的编程操作。 ### 回答3: 要在matlab 2022b中安装mingw-w64编译器,需要按照以下步骤进行操作: 1. 下载mingw-w64编译器,在官网进行下载即可(https://mingw-w64.org/doku.php/download)。 2. 在matlab中通过add-on manager安装“MATLAB Support for MinGW-w64 C/C++ Compiler”插件。 3. 安装完成后,打开matlab,进入“Environment”选项卡,选择“Add-Ons”菜单,点击“MinGW-w64 C/C++ Compiler”选项卡,选择“Manage”按钮,然后点击“Download”按钮,将mingw-w64编译器下载到本地。 4. 安装完成后,在matlab中可以使用mingw-w64编译器进行编译。为了使用mingw-w64编译器编译C/C++代码,需要在matlab中设置编译器路径,为此,需要执行以下步骤: (1)进入matlab的“Preference”选项卡; (2)选择“MATLAB”子选项卡,“General”标签; (3)在“MATLAB Startup File”编辑框中添加以下代码: setenv('MW_MINGW64_LOC','【mingw-w64编译器路径】') 其中,【mingw-w64编译器路径】为mingw-w64编译器的安装路径。 (4)在matlab中执行以下命令: mex -setup C++ mex -setup C 5. 设置完成后,在matlab中就可以使用mingw-w64编译器进行编译了。 总体来说,安装mingw-w64编译器实际上很简单,在matlab中安装“MATLAB Support for MinGW-w64 C/C++ Compiler”插件后,然后下载mingw-w64编译器并添加到matlab的系统变量中即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

开发大观园

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

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

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

打赏作者

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

抵扣说明:

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

余额充值