HAProxy一箭双雕——让一个端口完成两件事
来源:互联网 发布:一览 mac 破解版 编辑:程序博客网 时间:2024/05/17 04:01
背景
这里为啥会想到让一个端口做两件事呢,主要是因为小编的网络环境处于校园网里面,而校园网的防火墙对外只开放TCP的80端口,也就是说,如果从外部网络访问校园网内部的机器那只能通过80端口来访问。而学过套接字编程的童鞋都明白,一个端口号和固定的IP地址共同标识了物理机器上的一个进程,对于只有单个网卡的机器来说,通过一个端口号只能访问到本物理机器上的一个进程。但是在实际应用的需求中,显然是希望该物理机器能够提供多种服务,而每一种服务都是需要对外提供一个可访问的端口,显然这点在校园网的防火墙下是不可行的。那么是否存在一种方法是的通过一个端口来完成多种服务呢?是的,有这样的方法,这就是代理的使用。
工具
HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。通过HAProxy对指定端口进行监听,分析连接协议,如果是http协议就让服务器交给http服务程序(如Apache、Nginx等)处理,如果是ssh协议就交给ssh服务程序,这样就完成了一个端口完成两件事情的需求,当然,这里完成的事情可以根据实际需求来变更,小编这里主要是完成让服务器对外提供两种服务,一个是Squid代理服务,一个是SSH登陆服务。
HAProxy安装和配置
对于Squid和SSH的安装配置,网上的教程很多,小编在这里不再复述。
而小编的安装配置环境是Ubuntu,安装的过程很简单,通过sudo apt-get install haproxy就可以完成安装过程,而剩下的就是配置问题,在配置过程中,小编走了不少弯路。
首先提供一个HAProxy的配置文件说明,传送门:http://leejia.blog.51cto.com/4356849/1421882
初次完成安装的时候,可能很多童鞋会发现,在HAProxy启动的时候就碰到一个麻烦,就是通过指令执行sudo service haproxy start之后,终点没有任何反应,而通过进程查找也没有找到对应的后台进程,是的,没有后台进程说明没有启动,而之所以没有启动是因为系统的默认是不支持启动,需要做的工作很简单,执行需要进入/etc/default/haproxy文件中,然后修改ENABLED=1,然后再次执行启动指令,就可以发现HAProxy进行顺利启动。
保证了HAProxy之后,剩下的就是配置的问题了,这里小编直接提供小编的配置文件:
需要注意的地方在图中均已经标识出来,HAProxy正是通过规则的匹配来完成这所谓的一箭双雕的过程。而测试也表明该配置确实可行,至此也就克服了端口受限的问题了。
- HAProxy一箭双雕——让一个端口完成两件事
- 一个完成端口类
- 完成端口的一个例子
- 完成端口的一个例子
- 完成端口的一个例子
- 完成端口的一个例子
- 完成端口的一个例子
- 完成端口的一个简单封装类
- 完成端口的一个简单封装类
- 完成端口(iocp)的一个例子
- 一个简单的完成端口类
- 完成端口写的一个服务器
- 一个简单而又灵活的IOCP模块——完成端口通讯服务器(IOCP Socket Server)设计(四)
- 一个简单而又灵活的IOCP模块——完成端口通讯服务器(IOCP Socket Server)设计(四)
- 我们生活在一个浮躁的年代——完成一件事情最快的方式是什么?让别人去做。
- WinSocket模型的探讨——完成端口模型
- WinSocket模型的探讨——完成端口模型
- IOCP完成端口模型Client——》Server
- Java中native关键字
- http头文件User-Agent详解
- ios自动化打包测试
- YTU 2897: E--外星人供给站
- lvs中dr模式配置脚本
- HAProxy一箭双雕——让一个端口完成两件事
- python 字符转换
- Linux netstat命令详解
- lua io函数
- Linux grep命令
- java网络编程(一)使用TCP协议完成客户端与服务端的数据传递
- js ==与===区别
- git fatal: unable to auto-detect email address
- For/In 循环