公司开发调试很不方便,我们需要在内网搭建一套开发环境。

开发困难集中在这两个方面:一是通用服务或者非开发中服务(比如网关与用户中心授权中心这样的)需要在调试的时候需要自己全部启动起来,浪费本地开发资源,另外一些公用中间件也需要本地启动,比如xxljob调度中心,mysql,mq这样的;二是对于外部系统回调没办法在本地调试。
针对这两个问题,我们需要在公司内网环境搭建一套开发环境,需要一台或多台主机作为公共服务器,通用服务放到上面。目前结构如下:
4ezuIH.md.png

为了解决三方系统回调问题,我们需要部署一套内网穿透,流程是这样的sdkdev.tomatogames.com指向test机器,test机器nginx收到请求后分发到frp,通过frp内网穿透将请求转发到我们的内网服务器的frp,最后内网服务器frp再将请求转发到网关(或者内网nginx)。目前结构如下:
4ezteS.md.png

建议:这些所有的东西放docker,然后安装portainer(或者其他),方便管理服务。放容器也是个必然的过程。
参考:
外网nginx配置:

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    server {
                listen 80;
                server_name  www.yourdomain.com;
                location ~/ {
                        # frp
                        proxy_pass http://10.10.2.201:8080;
                }
    }
}

外网frp:

[common]
bind_port = 7000
vhost_http_port = 8080
# 看板端口
dashboard_port = 7500
# 看板用户名密码
dashboard_user = admin
dashboard_pwd = admin

Dev内网机器frp:

[common]
server_addr = 10.10.2.201
server_port = 7000
# 管理面板
admin_addr = 127.0.0.1
admin_port = 7400
admin_user = admin
admin_pwd = admin

#[ssh]
# type = tcp
# local_ip = 127.0.0.1
# local_port = 22
# remote_port = 6000

[web]
type = http
# 指向网关或者nginx
local_port = 8080
custom_domains = 10.10.2.201
# custom_domains = www.yourdomain.com

注:开发环境搞完需要重写一下Ribbon路由策略:大概逻辑是dev环境下同ip优先调用,这样再一个开发者同时需要调试两个服务的时候不会调用混乱,跑到其他机器上。另外内网开发环境搭建完成后可以多个开发者相互联调。

标签: 解决方案

添加新评论