当前位置: 首页 > 编程笔记 >

nginx搭建tcp代理服务器

钱德海
2023-03-14
本文向大家介绍nginx搭建tcp代理服务器,包括了nginx搭建tcp代理服务器的使用技巧和注意事项,需要的朋友参考一下

nginx不仅可以是http代理服务器,也可以轻松搭建成tcp代理服务器。

首先我们看下最新开发版的搭建方法

1. 安装

> wget http://nginx.org/download/nginx-1.9.0.tar.gz
> tar zxvf nginx-1.9.0.tar.gz

版本要求 1.9.0+

2、配置

worker_processes auto;
error_log /var/log/nginx/error.log info;
stream {
  upstream backend {
    hash $remote_addr consistent;
    server backend1.example.com:12345 weight=5;
    server 127.0.0.1:12345      max_fails=3 fail_timeout=30s;
    server unix:/tmp/backend3;
  }
  server {
    listen 12345;
    proxy_connect_timeout 1s;
    proxy_timeout 3s;
    proxy_pass backend;
  }
  server {
    listen [::1]:12345;
    proxy_pass unix:/tmp/stream.socket;
  }
}

3. 补充
现在nginx 1.9是开发版,目前稳定版没有stream的功能,但在下个的稳定版发布时,这功能就会集成进来。因此推荐以后用http proxy的同学可以考虑换成tcp proxy,如果只是做简单的代理而已,而且性能上会更优异。

二、老版本的搭建方法

nginx tcp代理功能由nginx_tcp_proxy_module模块提供,同时监测后端主机状态。该模块包括的模块有: ngx_tcp_module, ngx_tcp_core_module, ngx_tcp_upstream_module, ngx_tcp_proxy_module, ngx_tcp_upstream_ip_hash_module。
1. 安装

# wget http://nginx.org/download/nginx-1.4.4.tar.gz
# tar zxvf nginx-1.4.4.tar.gz
# cd nginx-1.4.4
# ./configure --add-module=/path/to/nginx_tcp_proxy_module
# make
# make install

2. 配置

http {
  listen 80;
  location /status {
    check_status;
  }
}
tcp {
  upstream cluster_www_ttlsa_com {
    # simple round-robin
    server 127.0.0.1:1234;
    check interval=3000 rise=2 fall=5 timeout=1000;
    #check interval=3000 rise=2 fall=5 timeout=1000 type=ssl_hello;
    #check interval=3000 rise=2 fall=5 timeout=1000 type=http;
    #check_http_send "GET / HTTP/1.0\r\n\r\n";
    #check_http_expect_alive http_2xx http_3xx;
  }
  server {
    listen 8888;
    proxy_pass cluster_www_ttlsa_com;
  }
}

这会出现一个问题,就是tcp连接会掉线。原因在于当服务端关闭连接的时候,客户端不可能立刻发觉连接已经被关闭,需要等到当Nginx在执行check规则时认为服务端链接关闭,此时nginx会关闭与客户端的连接。

3. 保持连接配置

http {
  listen 80;
  location /status {
    check_status;
  }
}
tcp {
 timeout 1d;
  proxy_read_timeout 10d;
  proxy_send_timeout 10d;
  proxy_connect_timeout 30;
  upstream cluster_www_ttlsa_com {
    # simple round-robin
    server 127.0.0.1:1234;
    check interval=3000 rise=2 fall=5 timeout=1000;
    #check interval=3000 rise=2 fall=5 timeout=1000 type=ssl_hello;
    #check interval=3000 rise=2 fall=5 timeout=1000 type=http;
    #check_http_send "GET / HTTP/1.0\r\n\r\n";
    #check_http_expect_alive http_2xx http_3xx;
  }
  server {
    listen 8888;
    proxy_pass cluster_www_ttlsa_com;
 so_keepalive on;
    tcp_nodelay on;
  }
}

nginx_tcp_proxy_module模块指令具体参见: http://yaoweibin.github.io/nginx_tcp_proxy_module/README.html

 类似资料:
  • 本文向大家介绍Linux Nginx服务器搭建SSL/TLS(https+http/2),包括了Linux Nginx服务器搭建SSL/TLS(https+http/2)的使用技巧和注意事项,需要的朋友参考一下 首先,SSL/TLS是什么? 比如:https://www.awaimai.com/,前面是https,表明这个是https协议。 https就是http + SSL/TLS,在http外

  • 本文向大家介绍linux搭建squid代理服务器的完整步骤,包括了linux搭建squid代理服务器的完整步骤的使用技巧和注意事项,需要的朋友参考一下 前言 本文主要给大家介绍了关于 linux 搭建squid代理服务器的相关内容,下面话不多说了,来一起看看详细的介绍吧 实验环境: 一台linux搭建Web服务器,充当内网web服务器(同时充当内网客户端) 202.100.10.100 一台lin

  • 由于需要研究rtmp协议交互方式及报数据格式,使用nginx临时搭建一个rtmp服务器,主要通过nginx的rtmp扩展模块实现接收RTMP推送的音视频流,同时提供RTMP拉流服务的能力。

  • 本文向大家介绍Nginx服务器搭建和基本配置详解,包括了Nginx服务器搭建和基本配置详解的使用技巧和注意事项,需要的朋友参考一下 Nginx(engine X) 是一个高性能的 HTTP 服务器和反向代理服务器,这款软件开发的目的是为了解决 C10k 问题。 Nginx 的架构利用了许多现代操作系统的特性,以实现一个高性能的 HTTP 服务器。例如在 Linux 系统上,Nginx 使用了 ep

  • 在实战项目中,为了和别的项目进行一些必要的对接,你的web应用可能 需要提供一些必要的api,而为了统一管理api,你可能需要搭建一个api服务专门用来提供便捷的远程api调用。 Herosphp为你提供了体验极佳 API 服务的架构方案,供你参考, 目前支持普通的 Http API 接口服务,后期会增加 JSONRPC API 服务支持。 在开始构建 API 服务之前,你必须先把你的 heros

  • 上一章节中我们远程仓库使用了 Github,Github 公开的项目是免费的,但是如果你不想让其他人看到你的项目就需要收费。 这时我们就需要自己搭建一台Git服务器作为私有仓库使用。 接下来我们将以 Centos 为例搭建 Git 服务器。 1、安装Git $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-

  • 本文向大家介绍使用nginx设置代理服务器,包括了使用nginx设置代理服务器的使用技巧和注意事项,需要的朋友参考一下 nginx可以利用其反向代理的功能来进行负载均衡的实现,同时也可以使用其正向代理的功能设置代理服务器,比如在内网的环境中,在可以连接外网的机器上运行nginx作为代理服务器,其他机器通过设定此台机器的IP和port即可通过其连接上网,本文使用nginx官方镜像,通过如下步骤即可简

  • 本文向大家介绍Linux环境下nginx搭建简易图片服务器,包括了Linux环境下nginx搭建简易图片服务器的使用技巧和注意事项,需要的朋友参考一下 主要使用Nginx和vsftpd. 安装方面可以直接从nginx官网上下载,或者...   如果没有yum源则需要自行添加再进行install. 如果是从官网上下载的则进行如下操作: 安装vsftpd: 对nginx没有做太复杂的配置,仅仅是创建了