Bash 使用Openshift自定义盒带的HAProxy的正确设置是什么?

Bash 使用Openshift自定义盒带的HAProxy的正确设置是什么?,bash,openshift,haproxy,Bash,Openshift,Haproxy,似乎许多试图从diy盒带等非缩放应用程序迁移到缩放版应用程序的开发人员在配置盒带以与Openshift创建的HAProxy默认配置正确交互以及获取启动和停止操作挂钩以处理其应用程序的缩放部分时遇到了问题,包括我自己在内。通常是因为我们是新手,不太了解openshift的HAProxy的默认配置是什么 HAProxy的默认配置 通常情况下,应用程序的两个方面都已启动并运行,但HAProxy并没有向我们期望的地方发送http请求。从openshift上提出的众多问题中,我们知道这一行: option

似乎许多试图从diy盒带等非缩放应用程序迁移到缩放版应用程序的开发人员在配置盒带以与Openshift创建的HAProxy默认配置正确交互以及获取启动和停止操作挂钩以处理其应用程序的缩放部分时遇到了问题,包括我自己在内。通常是因为我们是新手,不太了解openshift的HAProxy的默认配置是什么

HAProxy的默认配置 通常情况下,应用程序的两个方面都已启动并运行,但HAProxy并没有向我们期望的地方发送http请求。从openshift上提出的众多问题中,我们知道这一行:

option httpchk GET /
HAProxy是否进行了健全性检查以确保应用程序正常运行,但通常情况下,无论该行是否被编辑或删除,我们都会在HAProxy的日志中看到类似的内容:

[WARNING] 240/150442 (404099) : Server express/local-gear is DOWN, reason: Layer4     connection problem, info: "Connection refused", check duration: 0ms. 0 active and 0 backup  servers left. 0 sessions active, 0 requeued, 0 remaining in queue.
[ALERT] 240/150442 (404099) : proxy 'express' has no server available!
然而在gears中,我们的应用程序经常监听$OPENSHIFT\u CARTNAME\u IP和$OPENSHIFT\u CARTNAME\u端口,我们会看到它们已经启动,有时会拒绝进行健全性检查

ERROR   [DST 127.2.31.129 sid=1] SHOUTcast 1 client connection rejected. Stream not available as there is no source connected. Agent: `'
一份干货清单,就像diy盒带上的一样 启动箱子/控制装置内的挂钩或openshift/action_挂钩内的挂钩 停止挂钩在箱子/控制装置内或打开移位/动作挂钩内 对新开发人员有帮助的问题: 避免致命的精神检查 是否有办法使用manifest.yml配置应用程序以避免这些冲突?或者反过来,对默认的HAProxy配置稍加调整,使应用程序在appname appdomain.rhcloud.com:80/上运行,而不返回503个错误

设置更方便的应用程序访问权限 我的shoutcast示例,正如错误所暗示的那样,只要我首先流式处理它,它就会工作。manifest和HAProxy的哪些附加部分允许用户直接从外部url连接到first gear的端口80?而不是一直将端口转发到应用程序中

确保应用程序的启动和停止就像没有缩放一样 最后,许多未缩放的应用程序都有一个快速简单的脚本来启动和关闭,因为openshift似乎说明了应用程序必须运行一档的事实。如何调整止动钩以穿过并停止所有齿轮?为了让一档的所有部件(不仅仅是HAProxy)恢复在线,启动动作挂钩必须添加什么

ERROR   [DST 127.2.31.129 sid=1] SHOUTcast 1 client connection rejected. Stream not available as there is no source connected. Agent: `'
Name: hws
Cartridge-Short-Name: HWS
Display-Name: Hello World of Scaling Apps
Description: A Scaling App on Openshift
Version: '0.1'
License: ASL 2.0
License-Url: http://www.apache.org/licenses/LICENSE-2.0.txt
Cartridge-Version: 0.0.10
Compatible-Versions:
- 0.0.10
Cartridge-Vendor: you
Vendor: you
Categories:
- web_framework
- experimental
Website: 
Help-Topics:
  Getting Started: urltosomeinfo
Provides:
- hws-0.1
- hws
Publishes: 
Subscribes:
  set-env:
    Type: ENV:*
    Required: false
Scaling:
  Min: 1
  Max: -1
Group-Overrides:
- components:
  - web-proxy
Endpoints:
- Private-IP-Name: IP
  Private-Port-Name: PORT
  Private-Port: 8080
  Public-Port-Name: PROXY_PORT
  Protocols:
  - http
  - ws
  Options:
    primary: true
  Mappings:
  - Frontend: ''
    Backend: ''
    Options:
      websocket: true
  - Frontend: "/health"
    Backend: ''
    Options:
      health: true
RESPONSE=$(curl -o /dev/null --silent --head --write-out '%{http_code}\n' "http://${OPENSHIFT_APP_DNS}:80")
${RESPONSE} > ${OPENSHIFT_DIY_LOG_DIR}/checkserver.log
echo ${RESPONSE}
if [ "${RESPONSE}" -eq "503" ]
then
    nohup ${OPENSHIFT_REPO_DIR}/diy/serverexec ${OPENSHIFT_REPO_DIR}/diy/startfromscratch.conf > ${OPENSHIFT_DIY_LOG_DIR}/server.log 2>&1 &
else
    nohup ${OPENSHIFT_REPO_DIR}/diy/serverexec ${OPENSHIFT_REPO_DIR}/diy/secondorfollowinggear.conf > ${OPENSHIFT_DIY_LOG_DIR}/server.log 2>&1 &
fi
kill `ps -ef | grep serverexec | grep -v grep | awk '{ print $2 }'` > /dev/null 2>&1
exit 0