frigga+redir实现高性能端口映射

简介:
原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://navyaijm.blog.51cto.com/4647068/1307041

一、前言

公司的数据库、windows机器都没有外网IP的,都是用一台linux机器的iptables做的nat映射,当机器多了会发现iptables就成了性能瓶颈,于是找到了redir这个端口映射工具,此工具只支持http协议的哦,性能比iptables强多了,redir用了几天发现有时候进程会莫名其妙掉了,所以找到了小米开源的进程管理工具frigga,二者结合一切搞定。

二、软件安装配置

1、redir安装配置

A、redir安装

1
yum -y  install  redir

B、redir配置

1
redir --lport=对外提供服务端口 --caddr=需要映射的内网IP --cport=要映射的内网端口

2、frigga安装配置

A、frigga安装

1
2
3
4
5
6
7
8
9
10
11
12
13
#install ruby
yum -y  install  ruby gems
#update ruby
curl -L https: //get .rvm.io |  bash  -s stable
source   /etc/profile
rvm  install  ruby-1.9.3
#安装bundle
gem  install  bundle
#install frigga
cd  /opt/
git clone https: //github .com /xiaomi-sa/frigga .git
cd  /opt/frigga
. /script/run .rb start

B、frigga配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
添加一条映射例子:
cd /opt/frigga/gods/
vi  10.10 . 10 .10_3389.god 内容如下:
God.watch  do  |w|
w.name =  " proxy.kisops.com-9004__10.10.10.10-3389__WindowsOpVm "
w.start =  " redir  --lport=9004 --caddr=10.10.10.10 --cport=3389  --debug "
w.process_log =  " /data/log/redir/10.10.10.10_3389.log "
w.keepalive
w.:clean_pid_file)
w.stop_timeout  =  60 .seconds
w.lifecycle  do  |on|
on.condition(:flapping)  do  |c|
c.to_state = [:start, :restart]
c.times =  5
c.within =  5 .minute
c.transition = :unmonitored
c.retry_in =  10 .minutes
c.retry_times =  5
c.retry_within =  2 .hours
c.notify =  'proc_down'
end
end
end
God.contact(:email)  do  |c|
c.name =  'proc_down'
c.group =  'developers'
c.to_email =  "navyaijm@ijinshan.com"
end
#启动
god load  10.10 . 10 .10_3389.god
说明:
##生成配置文件,以.god后缀结尾,参考配置文件如下,需要修改的我标红
##name格式: proxy.kisops.com-外网端口__内网IP-内网端口__用途
##start格式:  redir --lport=外网端口  --caddr=内网IP  --cport=内网端口  --debug
##log格式:  /data/log/redir/内网IP_端口.log
##当进程异常,会导致god不断重启
###使用:flapping条件
## 5 分钟内start或者restart进程  5 次,如果启动失败,修改状态为unmonitored
## 10 分钟后再次尝试启动,如果 2 个小时内,尝试 5 次都失败,彻底放弃

3、frigga的访问端口、账号信息定义

1
2
3
4
[root@localhost conf]# cat /opt/frigga/conf/frigga.yml
---
port:  9000
http_auth: [ "admin" "123456" ]

192655500.jpg

本文出自 “屌丝运维男” 博客,请务必保留此出处http://navyaijm.blog.51cto.com/4647068/1307041

目录
相关文章
|
存储 负载均衡 调度
Docker 多主机部署:构建容器集群的最佳实践,助力高可用性与负载均衡
Docker 多主机部署:构建容器集群的最佳实践,助力高可用性与负载均衡
829 0
|
Linux Anolis 异构计算
关于远程直接内存访问技术 RDMA 的高性能架构设计介绍
本文介绍 RDMA 技术的基本原理及交流在工程上的设计思路。
|
负载均衡 Linux 网络协议
面向C10M时代的MiddleBox之 - 高性能四层负载均衡设备AGW
面对需求的不断提高,几年前我们还在为解决C10K 问题而努力,现在已经开始面临C10M 问题的挑战。
1834 0
|
2月前
|
弹性计算 Kubernetes 网络协议
阿里云弹性网络接口技术的容器网络基础教程
阿里云弹性网络接口技术的容器网络基础教程
阿里云弹性网络接口技术的容器网络基础教程
|
3月前
|
NoSQL 应用服务中间件 Redis
Docker跨宿主机容器通信-通过网络跨宿主机互联
这篇文章介绍了Docker容器跨宿主机通信的实现方法,包括Docker的四种网络模式(host、none、container、bridge)以及如何通过修改网络配置和添加路由规则来实现不同宿主机上的容器之间的互联。
240 0
Docker跨宿主机容器通信-通过网络跨宿主机互联
|
4月前
|
负载均衡 网络协议 Linux
基于weave实现docker跨主机网络通信
基于weave实现docker跨主机网络通信
|
7月前
|
网络协议 Linux C语言
Intel HDSLB 高性能四层负载均衡器 — 基本原理和部署配置
本篇主要介绍了 Intel HDSLB 的基本运行原理和部署配置的方式,希望能够帮助读者们顺利的把 HDSLB-DPVS 项目 “玩” 起来。
314 9
Intel HDSLB 高性能四层负载均衡器 — 基本原理和部署配置
|
Cloud Native Linux 虚拟化
【云原生】Docker跨主机网络Overlay与Macvlan的区别
【云原生】Docker跨主机网络Overlay与Macvlan的区别
220 0
|
Cloud Native 前端开发 Go
《CNI 揭秘:打造高性能的容器网络》
《CNI 揭秘:打造高性能的容器网络》
170 0
|
弹性计算 运维 Java
虚机和容器通信方案
随着公司的发展;势必要跟随时代的脚步向微服务、容器化方向转型;然而转型过程中势必得遵循服务的迭代替换的方式(一刀切带来的风险太大了);从而衍生出来虚机和容器中的服务进行注册发现通信的问题。