cloud foundry这个东西真是整人。 环境:我司我组大牛整通了一个Cloud Foundry的PAAS平台,偶找了个PHP应用放上去 带后缀/的URL地址访问没有问题, 如果不带,比如访问管理入口: a.xxx.com/admin 则浏览器被301重定向到: a.xxx.com:61200/admin/ 这个地址访问不了 在浏览器手动输入: a.xxx.com/admin/ 能正确访问 根据这几篇文章 这篇讲的好
搞不清是谁引用的谁
在前版设计中,当Router接收到请求后,会随机分配一个Droplet来处理这个请求,这种方式使得用户没有办法使用Session,因为连续的HTTP请求会被分发到不同的应用实例上处理。新版本设计中增加了对SESSION的支持,当Router发现用户的请求中带了cookie信息, 它会在Cookie里暗藏一个Droplet的host,port地址。当有新的请求进来,Router通过解析Cookie得到上次的应用实例,然后尽量转发到同一台Droplet上。
就是说
CF1中前端由CC(cloud controller)接受请求转发请求,实际是由Nginx做前端接受http请求,由nginx的lua模块处理url请求,分析url获取(upstream sinatra应用)其对应的ip和port进行转发。转发时会分析cookie,从而将请求发到同一droplet上,实现session。lua会保存映射关系在nginx中,提高效率。 上传的应用时 源码和运行环境(cf配置好的httpd或tomcat或其他容器等),加上一些启停脚本 被 一起打包成一个tar文件叫droplet,被存储在blobstore中 。DEA 收到cc的启停指令后 取出该droplet tar 的副本,解压运行其中的启停脚本即可,可以方便的启停多个副本。 感觉warden是一个虚拟的有限资源的os,让droplet在其上运行。 对于 app.xxx.com这样的请求,先由router接受,查询要转发到那里去:ip:port droplet的容器在port上监听,apache收到的应该是 http://ip:port/yyy 这样的后处理请求然后返回 页面? 如果不带后缀/,会301重定向到带/的地址,带上端口号应该是正确的。 我觉得应该是nginx转发apache的处理结果的url时没有把端口号给去掉 继续调查,有了解决方法再来结文。 要在本地虚拟机搭建lnamp架构了,一个nginx做前端,几个httpd在不同端口监听 ------------------ 现在0:45分 查了一个晚上,看了很多nginx的文章,找到这篇 描述的现象和我遇到的问题类似,希望他的配置能生效port_in_redirect off;还有
9月9日,调查了一夜的结果,大牛试过之后说没用,今天上午这个问题被提上日程,大牛花了估计半个小时写了个lua将http头中的port号给去掉了,然后,然后就一切ok了,只是我浪费了很多时间在这个问题上面,前几天一直整apache的配置,后几天转到nginx。lua完全不懂。