无法在AWS Lightsail上托管Python Flask后端

时间:2018-09-11 04:32:15

标签: python apache amazon-web-services flask

操作系统:Ubuntu 16.04.4 LTS

硬件:AWS Lightsail实例

我正在运行一个Web应用程序,该Web应用程序将Nuxt.js用于网站的前端,并使用Flask Python接收帖子并获取来自Axios的请求。目前,我遇到的问题是我无法通过Apache托管Flask应用程序。

这是flask应用程序中的相关代码。

from flask import Flask, render_template, request 
from flask_cors import CORS

app = Flask(__name__)
CORS(app)

# Test get request
@app.route('/')
def hello_world():
  return 'Hello, World!'

if __name__ == '__main__':
  app.run(threaded=True)

到目前为止,我已经尝试了一些不同的方法:

修改bitnami-apps-prefix.conf文件

这是我最初将流量重定向到前端nuxt应用程序的方式。

我将此行添加到前端文件中

  

包括“ /opt/bitnami/apps/mywebapp/conf/httpd-prefix.conf”

然后在该文件路径的conf文件夹中创建了两个文件。

httpd-prefix.conf

  

包括“ /opt/bitnami/apps/mywebapp/conf/httpd-app.conf”

httpd-app.conf

  

ProxyPass / http://127.0.0.1:3000/

     

ProxyPassReverse / http://127.0.0.1:3000/

问题

这适用于前端,因为我可以访问用户界面。但是,当我尝试对烧瓶应用程序执行相同的操作时...

bitnami-apps-prefix.conf

  

包括“ /opt/bitnami/apps/mywebapp-API/conf/httpd-prefix.conf”

httpd-prefix.conf

  

包括“ /opt/bitnami/apps/mywebapp-API/conf/httpd-app.conf”

httpd-app.conf

  

ProxyPass / http://127.0.0.1:5000/

     

ProxyPassReverse / http://127.0.0.1:5000/

...它不起作用。该应用程序未显示为在5000端口上运行。

使用apache wsgi模块

老实说,我不太了解自己在这里所做的工作或应该如何工作。

我通过从git下载,提取文件然后运行make来安装mod_wsgi。我添加了一个名为mywebapp-API.wsgi的文件,并向其中添加了以下代码:

import sys

sys.path.insert(0, '/opt/bitnami/apps/mywebapp-API')

from main import app as application

在/opt/bitnami/apache2/conf/httpd.conf下的httpd.conf文件中,我添加了此语句以将模块加载到apache中。

LoadModule wsgi_module "/usr/local/lib/python3.5/dist-packages/mod_wsgi/server/mod_wsgi-py35.cpython-35m-x86_64-linux-gnu.so"

并转到/opt/bitnami/apache2/conf/bitnami/bitnami-apps-vhosts.conf:

<VirtualHost *:5000>
     ServerName  #the IP address
     WSGIScriptAlias / /bitnami/stack/apps/mywebapp-API/mywebapp-API.wsgi
     <Directory /bitnami/stack/apps/mywebapp-API-API>
          Order allow,deny
          Allow from all
     </Directory>
     ErrorLog ${APACHE_LOG_DIR}/error.log
     LogLevel warn
     CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

问题

  • 但是由于某种原因,从未将mod_wsgi的.so文件添加到 / opt / bitnami / apache2 / modules /文件夹。

  • 每当我尝试重新启动apache时,我都会收到一条错误消息,说 “ WSGIScriptAlias”不存在。

  • 该API仍未托管在端口上,并且无法访问。

关于我的问题的任何想法吗?

0 个答案:

没有答案