Archive for August 1st, 2014

Lotus Connections Blogs 1.0 on Bluemix

Friday, August 1st, 2014

上周花了些时间把IBM Connections Blogs的一个早期版本(那时候叫Lotus Connections)移植到了IBM Bluemix上。这是一个学习的过程,帮我了解IBM PaaS平台的开发,掌握第一手经验。

为了把基于WebSphere Application Server实现的应用能跑到WebSphere Liberty Profile上,修改了一些代码,然后通过Bluemix Eclipse插件push到服务器上。等有时间写写详细的过程。

  • Lotus Connections Blogs 1.0 on Bluemix: http://ling.stage1.mybluemix.net/blogs/ 这个地址外网应该是访问不了的,我自己试了几次都不行,虽然ping server的地址不是9.x网段。

留了截屏:

blogs_bluemix

Bluemix上的部署界面:

bluemix

把Fiddler配置成reverse proxy

Friday, August 1st, 2014

Fiddler是用作Web调试的工具,因为一个需求想自己搭一个简单的reverse proxy,试了几个工具都不太好用。做了些功课发现可以把Fiddler配置成reverse proxy。大致步骤如下:

1) 配置成Fiddler的侦听端口

这个很容易,在平时用作调试的时候就已经有了。需要注意的是要允许其他电脑访问Fiddler服务;

fiddler1

2) 侦听HTTPS端口

侦听HTTS端口在界面上没有办法配置,需要在Fiddler QuickEexc命令行里输入:!listen 443 proxy.mycompany.com

fiddler2

 

3) 定制HTTP  response处理脚本

Reverse proxy最重要的一个功能是对返回的HTTP response进行预处理,之后再返回给浏览器。比如把嵌入在HTML中的所有绝对URL的hostname变成reverse proxy自己的hostname,这样才能保证用户后续的访问可以指向正确的服务器地址。Fiddler提供了脚本支持来完成对HTTP response的修改。

你可以使用Fiddler的菜单调出脚本用文本编辑器进行编辑,或者安装FiddlerScript插件进行开发(有代码提示功能)。

fiddler3

你可能需要定制的地方包括:

3.1)对所有HTTP 302进行截获,把重定向地址改成reverse proxy自己的地址,代码大致如下:

static function OnBeforeResponse(oSession: Session) {

..

if (oSession.HostnameIs(“server.mycompany.com”)){
            var redirect = oSession.oResponse.headers.AllValues(“Location”);
            if (redirect != “”) {
                redirect = redirect.replace(“server.mycompany.com”, “proxy.mycompany.com”);
                oSession.oResponse.headers.Remove(“Location”);
                oSession.oResponse.headers.Add(“Location”, redirect);
            }

3.2) 对所有HTTP response 200的正文进行扫描,替换掉里面嵌入的绝对URL:

 if (oSession.oResponse.headers.ExistsAndContains(“Content-Type”,”text/html”)){
                oSession.utilDecodeResponse();
                oSession.utilReplaceInResponse(“server.mycompany.com”,”proxy.mycompnay.com”);
            }
            
        }

 

现在可以启动你的本地浏览器来访问用Fiddler搭成的reverse proxy了: http://proxy.mycompany.com/

:Fiddler配置为reverse proxy的官方文档(不详细,要结合本文内容)- http://docs.telerik.com/fiddler/configure-fiddler/Tasks/UseFiddlerAsReverseProxy