老E的博客

  • 首页
  • 关于
  • 技术应用
    • VPS相关
    • AI相关
    • 盒子相关
    • 其他
  • 订阅Youtube频道
  • 网络加速
    • expressvpnNo.1 ExpressVPN
    • 最佳免费VPN-PrivadoVPN
    • NordVPN
    • 廉价王者-Surfshark
    • PrivateInternetAccess
    • 解锁一切-PrivateVPN
  • 公益资源
    • AI导航
    • 工具下载
    • Docker镜像加速
  • 友情链接
    • tickcloudTickcloud
老E的博客
专注记录并分享跨境技术应用及随想
  1. 首页
  2. 技术应用
  3. VPS相关
  4. 正文

nginx添加stream模块支持TCP转发的方法

2023年8月5日 2401次阅读 0条评论
clawcloud
expressvpn best vpn
privado vpn
surfshark vpn
private vpn
pia vpn
nord vpn

Nginx 是一款高性能的开源Web服务器,它也可以用作反向代理服务器和负载均衡器,而--with-stream 模块是 Nginx 的一个强大功能,允许在同一个端口上同时处理TCP和UDP流量。nginx特性很丰富,我们日常使用最多的恐怕大多是其master worker模式下的反向代理,实际就意味着nginx的特性仅仅被开发应用了一部分。以gost或其他工具如realm的隧道/通道搭建应用为例,如果使用基于tcp的tls,就需要Nginx已安装并加载stream模块的支持。

1.有什么好处

web服务、代理等是nginx的核心功能,在涉及其核心功能的支持上必定更为专业、强大。总体而言,结合隧道工具配置端口复用的好处如下:

    • 首先,已部署有相关服务的站点,可以大幅增加代理流量的区分和检测难度,尤其在相关服务处于活跃状态、接收实际请求并进行正常响应的场景下。
    • 其次,nginx是使用c进行开发的,以及nginx本身的设计和特性,相比代理或隧道工具,其握手效率一定会更高,而nginx的高并发性能对于性能偏低的节点也很友好。
    • 长连接、多路复用本身就是nginx设计的核心要领。
    • nginx配置可繁可简,可匹配工具的适用配置空间。

2.“升级”安装

在已安装nginx的情况下,可以使用“nginx -V”命令查询nginx以及相应模块的安装情况,重点观察stream模块是否已安装加载,否则只能基于HTTP/1.1进行分流、复用,也就是说,前置nginx只能匹配http(s)、ws/wss等。

如果找不到“--with-stream”等内容,那么stream模块是缺失的,需要对nginx进行升级。HTTP/1.1是对HTTP的小升级,ws、wss都是基于http/1.1的应用层协议,因此在缺少stream模块的情况下是可以正常工作的。如需支持socks5或其他基于TCP/UDP的协议,stream模块必不可少。如在使用gost tcp+tls的情况下,nginx前置就需要依赖stream模块。

stream模块可以通过重新编译安装或进行升级。通过升级至nginx最新版本,可以解决缺少模块的问题。有关nginx升级,参照以下链接的官方文档,Ctrl+C&Ctrl+V即可。主要工作包括GPG key的下载、签名认证、添加nginx官方源。

http://nginx.org/en/linux_packages.html#Debian

“升级”命令依然是使用apt install,如已有nginx部署,可在安装接近完成时选择保留([default=N])当前配置文件。

3.全新安装

要全新安装完整的包含--with-stream 模块的nginx,需要编译,可按照以下步骤进行操作:

step 1 下载和解压Nginx源代码

前往 Nginx 官方网站(https://nginx.org/)下载最新的稳定版本的 Nginx 源代码。然后,使用以下命令解压下载的源代码:

curl -O https://nginx.org/download/nginx-1.25.1.tar.gz
tar -zxvf nginx-1.25.1.tar.gz
cd nginx-1.25.1

step 2 配置编译选项,编译并安装Nginx

./configure --with-stream
make
sudo make install

以上就是适用于ubuntu 20.04+和debian 10+全新安装带有--with-stream模块Nginx的过程,从下载并解压Nginx源代码、配置编译选项、编译和安装Nginx以及最后的验证。

两种方法,各有适用场景。多数情况下,采用系统自带源通过apt安装的nginx都不会带有stream模块,第一种方式可能更加适合,但实际安装部署过程中在可选保留当前配置文件的同时同样会删除、替换原有二进制文件。

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可
标签: Linux系统运维 nginx System O&M 代理 翻墙
最后更新:2024年5月28日

webmaster

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

站内搜索
归档
  • 2025 年 5 月
  • 2025 年 4 月
  • 2025 年 3 月
  • 2025 年 2 月
  • 2025 年 1 月
  • 2024 年 12 月
  • 2024 年 11 月
  • 2024 年 10 月
  • 2024 年 9 月
  • 2024 年 8 月
  • 2024 年 7 月
  • 2024 年 6 月
  • 2024 年 5 月
  • 2024 年 4 月
  • 2024 年 3 月
  • 2024 年 2 月
  • 2024 年 1 月
  • 2023 年 12 月
  • 2023 年 11 月
  • 2023 年 10 月
  • 2023 年 9 月
  • 2023 年 8 月
  • 2023 年 7 月
  • 2023 年 6 月

Copyright ©2023-2025 Appscross. All Rights Reserved.