守护进程 负载均衡

This commit is contained in:
刘河
2019-02-03 00:54:43 +08:00
parent 662a799f02
commit da899fd3db
20 changed files with 341 additions and 129 deletions

View File

@@ -29,6 +29,11 @@ go语言编写无第三方依赖各个平台都已经编译在release中
* [release安装](#release安装)
* [web管理](#web管理模式)(多隧道时推荐)
* [启动](#启动)
* [服务端测试](#服务端测试)
* [服务端启动](#服务端启动)
* [web管理](#web管理)
* [客户端启动](#客户端启动)
* [服务端停止或重启](#服务端停止或重启)
* [配置文件说明](#服务端配置文件)
* [详细使用说明](#详细说明)
* [http|https域名解析](#域名解析)
@@ -54,6 +59,8 @@ go语言编写无第三方依赖各个平台都已经编译在release中
* [自定义404页面](#404页面配置)
* [流量限制](#流量限制)
* [带宽限制](#带宽限制)
* [负载均衡](#负载均衡)
* [守护进程](#守护进程)
* [相关说明](#相关说明)
* [流量统计](#流量统计)
* [热更新支持](#热更新支持)
@@ -81,9 +88,9 @@ go语言编写无第三方依赖各个平台都已经编译在release中
- 安装源码(另有snappy、beego包)
> go get github.com/cnlh/easyProxy
- 编译
> go build cmd/proxy_server/proxy_server.go
> go build cmd/server/proxy_server.go
> go build cmd/proxy_client/proxy_client.go
> go build cmd/client/proxy_client.go
## web管理模式
@@ -98,22 +105,32 @@ go语言编写无第三方依赖各个平台都已经编译在release中
### 启动
- 服务端
#### 服务端测试
```
./proxy_server test
```
如有错误请及时修改配置文件,无错误可继续进行下去
#### 服务端启动
```
./proxy_server start
```
如果无需daemon运行去掉start即可
```
./proxy_server
```
- 客户端
```
./proxy_server -server=ip:port -vkey=web界面中显示的密钥
```
- 配置
#### web管理
进入web界面公网ip:web界面端口默认8080密码默认为123
进入web管理界面有详细的命令
进入web管理界面有详细的说明
#### 客户端启动
```
./proxy_server -server=ip:port -vkey=web界面中显示的密钥
```
#### 服务端停止或重启
如果是daemon启动
```
./proxy_server stop|restart
```
### 服务端配置文件
- /conf/app.conf
@@ -122,6 +139,7 @@ go语言编写无第三方依赖各个平台都已经编译在release中
---|---
httpport | web管理端口
password | web界面管理密码
hostPort | 域名代理模式监听端口
tcpport | 服务端客户端通信端口
pemPath | ssl certFile绝对路径
keyPath | ssl keyFile绝对路径
@@ -138,12 +156,13 @@ httpProxyPort | http代理监听端口
- 有一个域名proxy.com有一台公网机器ip为1.1.1.1
- 两个内网开发站点127.0.0.1:81127.0.0.1:82
- 想通过http|https://a.proxy.com访问127.0.0.1:81通过http|https://b.proxy.com访问127.0.0.1:82
- 例如配置文件中tcpport为8284
**使用步骤**
- 将*.proxy.com解析到公网服务器1.1.1.1
- 在客户端管理中创建一个客户端,记录下验证密钥
- 点击该客户端的域名管理添加两条规则规则1、域名a.proxy.com内网目标127.0.0.1:812、域名b.proxy.com内网目标127.0.0.1:82
-内网客户端运行
- 内网客户端运行
```
./proxy_client server=1.1.1.1:8284 -vkey=客户端的密钥
@@ -158,7 +177,7 @@ httpProxyPort | http代理监听端口
**适用范围:** ssh、远程桌面等tcp连接场景
**假设场景:**
想通过访问公网服务器1.1.1.1的8001端口连接内网机器10.1.50.101的22端口实现ssh连接
想通过访问公网服务器1.1.1.1的8001端口连接内网机器10.1.50.101的22端口实现ssh连接例如配置文件中tcpport为8284
**使用步骤**
- 在客户端管理中创建一个客户端,记录下验证密钥
@@ -176,7 +195,7 @@ httpProxyPort | http代理监听端口
**适用范围:** 内网dns解析等udp连接场景
**假设场景:**
内网有一台dns10.1.50.102:53在非内网环境下想使用该dns公网服务器为1.1.1.1
内网有一台dns10.1.50.102:53在非内网环境下想使用该dns公网服务器为1.1.1.1例如配置文件中tcpport为8284
**使用步骤**
- 在客户端管理中创建一个客户端,记录下验证密钥
@@ -193,7 +212,7 @@ httpProxyPort | http代理监听端口
**适用范围:** 在外网环境下如同使用vpn一样访问内网设备或者资源
**假设场景:**
想将公网服务器1.1.1.1的8003端口作为socks5代理达到访问内网任意设备或者资源的效果
想将公网服务器1.1.1.1的8003端口作为socks5代理达到访问内网任意设备或者资源的效果例如配置文件中tcpport为8284
**使用步骤**
- 在客户端管理中创建一个客户端,记录下验证密钥
@@ -209,7 +228,7 @@ httpProxyPort | http代理监听端口
**适用范围:** 在外网环境下使用http代理访问内网站点
**假设场景:**
想将公网服务器1.1.1.1的8004端口作为http代理访问内网网站
想将公网服务器1.1.1.1的8004端口作为http代理访问内网网站例如配置文件中tcpport为8284
**使用步骤**
- 在客户端管理中创建一个客户端,记录下验证密钥
@@ -220,13 +239,14 @@ httpProxyPort | http代理监听端口
- 在该客户端隧道管理中添加一条http代理填写监听的端口8004选择压缩方式保存。
- 在外网环境的本机配置http代理ip为公网服务器ip127.0.0.1),端口为填写的监听端口(8004),即可访问了
### 使用https
在配置文件中将httpsProxyPort设置为443或者其他你想配置的端口和将对应的证书文件路径添加到配置文件中即可畅销https了
### 与nginx配合
普通场景下使用本代理已经能满足使用要求,但是有时候我们还需要在云服务器上运行nginx来保证静态文件缓存等本代理可和nginx配合使用在配置文件中将httpProxyPort设置为非80端口并在nginx中配置代理
有时候我们还需要在云服务器上运行https来保证静态文件缓存等本代理可和nginx配合使用在配置文件中将httpProxyPort设置为非80端口并在nginx中配置代理
```
server {
listen 80;
@@ -491,6 +511,18 @@ authip | 免验证ip适用于web api
支持客户端级带宽限制,带宽计算方式为入口和出口总和,权重均衡
### 负载均衡
本代理支持域名解析模式的负载均衡在web域名添加或者编辑中内网目标分行填写多个目标即可实现轮训级别的负载均衡
### 守护进程
本代理支持守护进程,使用示例如下,服务端客户端所有模式通用,支持linuxdarwinwindows。
```
./proxy_(client|server) start|stop|restart xxxxxx
```
```
proxy_(client|server).exe start|stop|restart xxxxxx
```
## 相关说明
### 获取用户真实ip
@@ -531,4 +563,4 @@ authip | 免验证ip适用于web api
## webAPI
为方便第三方扩展在web模式下可利用webAPI进行相关操作详情见
[webAPI文档](https://github.com/cnlh/easyProxy/wiki/webAPI%E6%96%87%E6%A1%A3)
[webAPI文档](https://github.com/cnlh/easyProxy/wiki/webAPI%E6%96%87%E6%A1%A3)