从Openshift集群外部访问时,来自Openshift Origin托管Django Web服务的空回复

时间:2018-08-26 14:38:59

标签: django openshift openshift-origin openshift-3

我遵循了here的指示 设置我正在处理的Django项目的OpenShift Origin部署。一切似乎都正常。有一个Pod运行带有已设置路由的服务,并且该服务已公开。但是,当我浏览到该网站时,出现错误,表明连接已重置。使用curl:

curl http://my-openshift-website.com

结果

curl: (52) Empty reply from server

此外,我看到以下现象:

  • 我知道从浏览器(或使用curl)访问索引网页时,将运行提供代码的代码,因为当我在请求“ /”页面时添加代码以创建一个空文件时,会在窗格中看到终端确实创建了文件。
  • 当我尝试从pod终端(即从集群内部)执行相同的curl命令时,一切正常,我得到了网页。
  • 当我尝试从Web浏览器访问服务时,pod的日志文件未注册任何内容,但是当我从pod终端进行访问时,却注册了访问权限。

2 个答案:

答案 0 :(得分:0)

这对我来说是一个愚蠢的错误。我正在使用CERN(openshift.cern.ch)部署的OpenShift集群。我没有在“管理您的CERN网站”页面的“站点访问和权限”中将可见性设置从“ Intranet”更改为“ Internet”。关于此设置的工作原理,还有其他说明:

  

Web服务中的上述配置页面可操纵默认值   您的Openshift项目中的路线,即路径所在的路线   属性未定义(并且Host属性与   webservices分配的FQDN)。

     

在项目中使用多个路径和/或使用路径使用路径时   属性,通过   路由注释router.cern.ch/network-visibility。这个注解   当前接受两个值:Internet或Intranet。没有注释(或   任何其他值)都被解释为Intranet,即route仅   可从CERN网络访问。

     

注释可以通过oc annotate CLI命令进行操作,例如   oc注释路由my-route router.cern.ch/network-visibility=Intranet

答案 1 :(得分:0)

仅仅是因为注释或DNS映射也可能导致这种行为

也可以解释您提到的注释,因为我尝试寻找这些注释https://docs.openshift.com/container-platform/3.4/architecture/core_concepts/routes.html#route-specific-annotations但找不到