热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

503服务在OpenshiftFlask应用程序中暂时不可用-503ServiceTemporarilyUnavailableinOpenshiftFlaskApplication

IvebeenstrugglingtodeployaFlaskapplicationinOpenshift.Firstofall,Itriedtodeployan

I've been struggling to deploy a Flask application in Openshift. First of all, I tried to deploy an application I am developing. As I didn't succeed, I decided to create a sample Hello World and deploy it.

我一直在尝试在Openshift中部署一个Flask应用程序。首先,我尝试部署正在开发的应用程序。由于没有成功,我决定创建一个示例Hello World并部署它。

Here is the code of app.py

这是app.py的代码

from flask import Flask, render_templateapp = Flask(__name__)@app.route('/')def hello_world():    return render_template('index.html')if __name__ == '__main__':    app.run()

I do use the install_requirements in setup.py file:

我在安装中确实使用了install_requirements。py文件:

from setuptools import setupsetup(name='SweetyPro',     version='1.0',     description='OpenShift App',     author='Your Name',     author_email='waglds@gmail.com',     url='http://www.python.org/sigs/distutils-sig/',     install_requires=['Django>=1.3',                      'Flask==0.11.1'],    )

I also set up flask and a requirement in requirements.txt. However, Openshift only says it is a Service Temporarily Unavailable.

我还在requirements.txt中设置了flask和一个需求。然而,Openshift只说它是暂时不可用的服务。

I checked out the log through rhc tail -a my_application, and it prompts me this:

我通过rhc tail -a my_application检出日志,它提示我:

==> app-root/logs/python.log <==Traceback (most recent call last):  File "app.py", line 10, in     app.run()  File "/var/lib/openshift/57976d4c7628e1a34e000179/python/virtenv/lib/python2.7/site-packages/Flask-0.11.1-py2.7.egg/flask/app.py", line 843, in run    run_simple(host, port, self, **options)  File "/var/lib/openshift/57976d4c7628e1a34e000179/python/virtenv/lib/python2.7/site-packages/Werkzeug-0.11.10-py2.7.egg/werkzeug/serving.py", line 694, in run_simple    inner()  File "/var/lib/openshift/57976d4c7628e1a34e000179/python/virtenv/lib/python2.7/site-packages/Werkzeug-0.11.10-py2.7.egg/werkzeug/serving.py", line 656, in inner    fd=fd)  File "/var/lib/openshift/57976d4c7628e1a34e000179/python/virtenv/lib/python2.7/site-packages/Werkzeug-0.11.10-py2.7.egg/werkzeug/serving.py", line 550, in make_server    passthrough_errors, ssl_context, fd=fd)  File "/var/lib/openshift/57976d4c7628e1a34e000179/python/virtenv/lib/python2.7/site-packages/Werkzeug-0.11.10-py2.7.egg/werkzeug/serving.py", line 464, in __init__    HTTPServer.__init__(self, (host, int(port)), handler)  File "/opt/rh/python27/root/usr/lib64/python2.7/SocketServer.py", line 419, in __init__    self.server_bind()  File "/opt/rh/python27/root/usr/lib64/python2.7/BaseHTTPServer.py", line 108, in server_bind    SocketServer.TCPServer.server_bind(self)  File "/opt/rh/python27/root/usr/lib64/python2.7/SocketServer.py", line 430, in server_bind    self.socket.bind(self.server_address)  File "/opt/rh/python27/root/usr/lib64/python2.7/socket.py", line 224, in meth    return getattr(self._sock,name)(*args)socket.error: [Errno 13] Permission denied

Could anyone help me out, please? I already did what I could. Thank you!

谁能帮我一下吗?我已经尽力了。谢谢你!

1 个解决方案

#1


2  

Because you have supplied an app.py file, it will be run to start your application. This will use the builtin Flask development server with the way the code is setup. In doing that though, you need to tell the Flask development server which port to listen on, you can't use the default port that the Flask development server users. The port is available in the OPENSHIFT_PYTHON_PORT environment variable. See:

因为您已经提供了一个app.py文件,所以将运行它来启动应用程序。这将使用内置的Flask开发服务器和代码的设置方式。但是,您需要告诉Flask开发服务器哪个端口监听,您不能使用Flask开发服务器用户的默认端口。该端口在OPENSHIFT_PYTHON_PORT环境变量中可用。看到的:

  • https://developers.openshift.com/managing-your-applications/environment-variables.html#informational-variables
  • https://developers.openshift.com/managing-your-applications/environment-variables.html informational-variables

You may also need to use OPENSHIFT_PYTHON_IP environment variable and tell the Flask development server what host interface to bind to if by default it only listens on localhost.

您可能还需要使用OPENSHIFT_PYTHON_IP环境变量,并告诉Flask开发服务器要绑定到哪个主机接口,如果默认情况下它只监听本地主机的话。

An alternative to all that is to rename your app.py file to wsgi.py and add:

另一种方法是将您的app.py文件重命名为wsgi。py和添加:

application = app

after the Flask application object is created. By making that change then OpenShift will host the application with Apache/mod_wsgi instead and it will worry about how to host it.

在创建Flask应用程序对象之后。通过进行这种更改,OpenShift将使用Apache/mod_wsgi来托管应用程序,它会担心如何托管它。


推荐阅读
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • Django框架下的对象关系映射(ORM)详解
    在Django框架中,对象关系映射(ORM)技术是解决面向对象编程与关系型数据库之间不兼容问题的关键工具。通过将数据库表结构映射到Python类,ORM使得开发者能够以面向对象的方式操作数据库,从而简化了数据访问和管理的复杂性。这种技术不仅提高了代码的可读性和可维护性,还增强了应用程序的灵活性和扩展性。 ... [详细]
  • 在 Linux 系统中,`/proc` 目录实现了一种特殊的文件系统,称为 proc 文件系统。与传统的文件系统不同,proc 文件系统主要用于提供内核和进程信息的动态视图,通过文件和目录的形式呈现。这些信息包括系统状态、进程细节以及各种内核参数,为系统管理员和开发者提供了强大的诊断和调试工具。此外,proc 文件系统还支持实时读取和修改某些内核参数,增强了系统的灵活性和可配置性。 ... [详细]
  • 本文深入探讨了 MXOTDLL.dll 在 C# 环境中的应用与优化策略。针对近期公司从某生物技术供应商采购的指纹识别设备,该设备提供的 DLL 文件是用 C 语言编写的。为了更好地集成到现有的 C# 系统中,我们对原生的 C 语言 DLL 进行了封装,并利用 C# 的互操作性功能实现了高效调用。此外,文章还详细分析了在实际应用中可能遇到的性能瓶颈,并提出了一系列优化措施,以确保系统的稳定性和高效运行。 ... [详细]
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
  • 本文介绍了使用 Python 编程语言高效抓取微博文本和动态网页图像数据的方法。通过详细的示例代码,展示了如何利用爬虫技术获取微博内容和动态图片,为数据采集和分析提供了实用的技术支持。对于对网络数据抓取感兴趣的读者,本文具有较高的参考价值。 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • Python网络爬虫入门:利用urllib库进行数据抓取
    Python网络爬虫入门:利用urllib库进行数据抓取在数据科学和Web开发领域,Python凭借其简洁高效的特性成为首选语言。本文主要介绍了如何在Windows环境下使用Python的urllib库进行基本的网络数据抓取。考虑到命令行操作的不便,作者选择了Jupyter Notebook作为开发环境,不仅简化了配置过程,还提供了直观的数据处理和可视化功能。通过实例演示,读者可以轻松掌握urllib的基本用法,为深入学习网络爬虫技术打下坚实基础。 ... [详细]
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • MySQL性能优化与调参指南【数据库管理】
    本文详细探讨了MySQL数据库的性能优化与参数调整技巧,旨在帮助数据库管理员和开发人员提升系统的运行效率。内容涵盖索引优化、查询优化、配置参数调整等方面,结合实际案例进行深入分析,提供实用的操作建议。此外,还介绍了常见的性能监控工具和方法,助力读者全面掌握MySQL性能优化的核心技能。 ... [详细]
  • 如何在Java中高效构建WebService
    本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的Java SOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。 ... [详细]
  • 在处理大规模并发请求时,传统的多线程或多进程模型往往无法有效解决性能瓶颈问题。尽管它们在处理小规模任务时能提升效率,但在高并发场景下,系统资源的过度消耗和上下文切换的开销会显著降低整体性能。相比之下,Python 的 `asyncio` 模块通过协程提供了一种轻量级且高效的并发解决方案。本文将深入解析 `asyncio` 模块的原理及其在实际应用中的优化技巧,帮助开发者更好地利用协程技术提升程序性能。 ... [详细]
  • 本文深入解析了 Apache 配置文件 `httpd.conf` 和 `.htaccess` 的优化方法,探讨了如何通过合理配置提升服务器性能和安全性。文章详细介绍了这两个文件的关键参数及其作用,并提供了实际应用中的最佳实践,帮助读者更好地理解和运用 Apache 配置。 ... [详细]
  • 本文探讨了在Lumen框架中实现自定义表单验证功能的方法与挑战。Lumen的表单验证机制默认返回无状态的JSON格式API响应,这给初学者带来了一定的难度。通过深入研究Validate类,作者分享了如何有效配置和使用自定义验证规则,以提升表单数据的准确性和安全性。 ... [详细]
author-avatar
姓赵的妖女
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有