再前面的一篇blog中,提到了在做一个持久配置中心。当时为了提升效率,在同事用tomcat实现的同时,我在尝试直接用nginx来完成。想通过完成一个nginx的模块,进行逻辑处理,然后把需要的数据返回回去。
在tomcat中,是重定向请求到一个具体的文件。而我在nginx中,也是这么干的。
在nginx的module中,我想通过 X-Accel-Redirect 这么一个header来完成,但是死活都不行,而给出的例子,都是在nginx后端所连接的系统中设置这个header,就可以起作用。比如后面挂一个tomcat,或者搞一个fastcgi去连php,都行的。按照我的理解,我觉得在nginx的模块中,直接设置这个header也应该工作的,不过事实告诉我,确实不行,这个得去问问公司这方面的专家,看看为啥是不能工作的。找个解释。
晚上邮件咨询了下同事,同事告诉我:“这个feature是给后端服务器用的(在Nginx里面,后端服务器称为upstream,比如FastCGI、Proxy、memcached等)。在Nginx模块里是不能用这个的,可以使用internal redirect机制,就是调用ngx_http_internal_redirect”。我这下知道怎么回事儿了,不过暂时这个模块的尝试hold了,今后如果继续,就能够用这个方式了。