cloud foundry v1中访问不带'/'的URL时重定向到带端口号地址导致访问错误


cloud foundry这个东西真是整人。
环境:我司我组大牛整通了一个Cloud Foundry的PAAS平台,偶找了个PHP应用放上去
带后缀/的URL地址访问没有问题,
如果不带,比如访问管理入口: a.xxx.com/admin 
则浏览器被301重定向到:       a.xxx.com:61200/admin/   这个地址访问不了
在浏览器手动输入:              a.xxx.com/admin/             能正确访问
根据这几篇文章
http://www.programmer.com.cn/14472/ 这篇讲的好

 http://qing.blog.sina.com.cn/tj/88ca09aa33001753.html 搞不清是谁引用的谁

 

在前版设计中,当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的文章,找到这篇http://www.centos.bz/faq/104/ 描述的现象和我遇到的问题类似,希望他的配置能生效

port_in_redirect off;
还有 http://www.9enjoy.com/post/507/ 
http://wiki.nginx.org/NginxHttpCoreModule#port_in_redirect 
http://forum.z27315.com/topic/14413-openshift%E6%8A%98%E8%85%BE%E8%AE%B0-%E7%BC%96%E8%AF%91%E5%AE%89%E8%A3%85nginx/


9月9日,调查了一夜的结果,大牛试过之后说没用,今天上午这个问题被提上日程,大牛花了估计半个小时写了个lua将http头中的port号给去掉了,然后,然后就一切ok了,只是我浪费了很多时间在这个问题上面,前几天一直整apache的配置,后几天转到nginx。lua完全不懂。

转载于:https://my.oschina.net/jingxing05/blog/159717

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值