nginx之tcp负载代理
大多数人针对nginx的负载均衡代理都是停留在HTTP代理那一块,我也一样;然而最近遇到了一个小问题,下面简单的叙述一下:
1、开发那边使用java代码进行ssh连接Linux服务器,然后执行bash命令去完成参数值的获取;前提是要求是实现nginx负载,这。。。。有点意思啊,以前没遇到过这么奇葩的问题,不过兵来将挡水来土掩,咱还是要解决不是,所以就想到了nginx的负载代理,但是感觉HTTP明显不行啊(测试也是不行的,虽然前面加了ssh内部转发),那就只有tcp代理去实现了
2、如果你的nginx版本是1.9以后的版本,那么nginx的tcp代理,是需要一个叫ngx_stream_core_module的模块,源码编译nginx的时候只需要加上--with-stream,这个模块就会自动安装了,so easy
3、下一步就是配置nginx文件了,我们知道nginx有http{ server { } }结构,跟http同级加上stream{ upstream{} server{} }这样的结构就可以,下面是我写的测试案例:
stream {
upstream backend {
# hash $remote_addr consistent;
server 10.0.10.181:22;
server 10.0.10.182:22;
}
server {
listen 80;
# proxy_connect_timeout 1s;
# proxy_timeout 3s;
proxy_pass backend;
}
}
4、这样就可以使用 ssh root@10.0.10.133 -p80 "uptime" 类似这样的方式去连接执行了(代码中也是这样的原理);基于这样的案例,我们也可以实现类似外网连接MySQL的tcp代理,我就不过多阐述了,原理都是一样的。
5、在这里再唠叨一句,就是跟大家道个歉,2017年由于工作的原因,没能更新Python和Linux的文章,2018年,我会把我遇到的各种问题以及从最基础的Python技术展现给大家,感谢大家的支持
nginx之tcp负载代理的更多相关文章
- [转帖]Nginx 的 TCP 负载均衡介绍
Nginx 的 TCP 负载均衡介绍 https://www.cnblogs.com/felixzh/ 前几天同事问 nginx的代理 当时以为只有http的 现在看起来还有tcp的可以使用tcp 代 ...
- nginx启用TCP反向代理日志配置
Nginx使用TCP反向代理日志配置不同于http 修改nginx配置文档/usr/local/nginx/conf/nginx.conf 设置日志格式 stream { log_format pro ...
- 现在使用Nginx实现TCP反向代理
Nginx 在1.9.0版本发布以前如果要想做到基于TCP的代理及负载均衡需要通过打名为 nginx_tcp_proxy_module 的第三方patch来实现,该模块的代码托管在github上网址: ...
- 使用Nginx实现TCP反向代理
Nginx 在1.9.0版本发布以前如果要想做到基于TCP的代理及负载均衡需要通过打名为 nginx_tcp_proxy_module 的第三方patch来实现,该模块的代码托管在github上网址: ...
- nginx之TCP反向代理
实现Nginx tcp负载均衡 Nginx在1.9.0版本开始支持tcp模式的负载均衡,在1.9.13版本开始支持udp协议的负载,udp主要用于DNS的域名解析,其配置方式和指令和http 代理类似 ...
- Nginx 的 TCP 负载均衡介绍
Nginx除了以前常用的HTTP负载均衡外,Nginx增加基于TCP协议实现的负载均衡方法. HTTP负载均衡,也就是我们通常所有“七层负载均衡”,工作在第七层“应用层”.而TCP负载均衡,就是我们通 ...
- Nginx作为TCP负载均衡
参考文档:https://www.cnblogs.com/stimlee/p/6243055.html Nginx在1.9版本以后支持TCP负载均衡,模块默认是没有编译的,需要编译时添加—with-s ...
- nginx基于tcp负载均衡
官方参考文档:http://nginx.org/en/docs/stream/ngx_stream_core_module.html 只有nginx1.9以上的版本才支持tcp负载均衡 配置必须出现在 ...
- 源码安装Nginx加TCP反向代理模块
说明: 安装方式是源码编译安装,因此先安装相关依赖,否则报错. yum -y install gcc* patch openssl openssl-devel 安装步骤: 下载nginx源码包: wg ...
随机推荐
- 不带头结点的单链表------C语言实现
File name:no_head_link.c Author:SimonKly Version:0.1 Date: 2017.5.20 Description:不带头节点的单链表 Funcion L ...
- 在Python的列表中利用remove()方法删除元素的教程
在Python的列表中利用remove()方法删除元素的教程 这篇文章主要介绍了在Python的列表中利用remove()方法删除元素的教程,是Python入门中的基础知识,注意其和pop()方法的区 ...
- Dubbo入门到精通学习笔记(三):持续集成管理平台之SVN版本管理系统的安装和使用
文章目录 持续集成管理平台介绍 持续集成介绍 持续集成管理平台的组成 持续集成实践介绍 即将学习 SVN版本管理系统的安装 安装 Subversion + Apache 安装 jsvnadmin 简单 ...
- IceCTF-Matrix
解题思路: 参考了鸽子小姐姐的脚本:https://zhuanlan.zhihu.com/p/22678856 具体题目就不贴了. 题目中提示将问题图像化,猜测是将这些16进制数转化为图像,尝试将16 ...
- 【NodeJS】Error: Cannot find module 'ms'
报错原因: Error: Cannot find module 'ms' at Function.Module._resolveFilename (module.js::) at Function.M ...
- html5语义化标签大全
常见的语义化标签有 <article>.<section>.<nav>.<aside>.<header>.<footer> 详细 ...
- zabbix--监控的组件和进程介绍
上图是zabbix的架构,zabbix proxy(代理),可以减小IO并发. zabbix web GUI是用php写的画图工具,从数据库抓取数据. zabbix database zabbix获取 ...
- JS 将对象转换成字符 字符串转换成json对象
//js对象 var user = { "name": "张学友", "address": "中国香港" }; //将对 ...
- C语言之内存
#include <stdio.h> #include <string.h> ; //全局初始化区 char *p1; //全局未初始化区 int main() { /**** ...
- java堆转储与内存分析
jmap -dump:format=b,file=dumpfile.hprof pid 将进程的堆转储到dumpfile.hprof文件里 jmap -heap pid 查看堆内存占用情 ...