开源项目 请教有没有这样的项目介绍介绍

wuwx · 2014年07月06日 · 最后由 ruohanc 回复于 2014年07月08日 · 2420 次阅读

具体需求是这样的:

有一个前端机有一个公网 IP,后端有一堆服务分散在内部网络里 这一堆服务是由不同的同事自己开发与维护,对外访问的时候使用域名

http://domain/service1/ http://domain/service2/ http://domain/service3/

这种形式访问,目前使用的方式是通过 nginx proxy_pass 配置的

location /service1/ { proxy_pass http://192.168.1.1 } location /service2/ { proxy_pass http://192.168.1.2 } location /service3/ { proxy_pass http://192.168.1.3 }

也就是说,增加或撤销一个服务,都需要前端的管理员到服务器重新配置一下 nginx 有没有哪种靠谱的方案可实现开发与维护服务的同事自己进行服务添加 谢谢大家~~~

写个 bash 脚本吧

hipache ,再写个图形前端

必须用同一域名?如果仅仅是要将内网的服务暴露到外网的话,可以用 Forward 或类似服务。

#2 楼 @qinix 看来只能硬着头皮搞 js 了……

负责项目的同学自己在 192.168.1.1 之类的再装个 nginx 转发啊

一级目录到主机 二级目录到具体项目

二级项目开发人员自己在负责的主机上配

#5 楼 @azhao 我是希望二级项目人员可以直接添加项目对外服务,不需要 192.168.1.1 的同学干预

我以为你说 192.168.1.1 就是二级项目呢

也是一样的,我的意思就是让二级项目的主机也配置 nginx

http://domain/service3/project1/... 来访问 192.168.1.3, 但 192.168.1.1 只配置到 http://domain/service3 都转给 192.168.1.3,3 号主机人员再转一次给真正的应用 project1 这样他有 http://domain/service3/project2/...就可以自己转了

或者 http://domain1/project1/ 的形式

这个 192.168.1.3 下可以是 3 个 projects

project1: 3000 project2: 3001 project3: 3002

那么 192.168.1.3 80 再把 http://domain/service3/project2/转给他们

BTW,如果需要详细到接口名字、参数等应用级转发可以用我司大拿的开源产品 https://github.com/weidewang/go-transit

如果规则简单,可以做一个 web 界面,只接受 service 名字和 ip,然后动态修改 nginx 的配置文件,发送 HUP 信号,让 nginx 无缝重启,我以前往 upstream 里面添加或者减少 ip,实现 auto scale up/down就是这样来做的

......我们有个同事用 lua 脚本写了个类似功能。

简单说就是 lua 嵌进 nginx 里,然后 nginx 请求前会先通过 lua 脚本查询数据库,然后拼出正确的 nginx 配置然后执行。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号