Невозможно разместить серверную часть Python Flask в AWS Lightsail - PullRequest
0 голосов
/ 11 сентября 2018

ОС: Ubuntu 16.04.4 LTS

Аппаратное обеспечение: экземпляр AWS Lightsail

Я запускаю веб-приложение, использующее Nuxt.jsдля внешнего интерфейса веб-сайта и Flask Python для получения сообщений и запросов от Axios.В настоящее время у меня проблема в том, что мне не удалось разместить приложение Flask через Apache.

Вот соответствующий код в приложении фляги.

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

Буду честным, я не совсем понимаю, что я сделалздесь или как это должно было работать.

Я установил mod_wsgi, скачав из git, распаковав файлы и запустив make.Я добавил файл mywebapp-API.wsgi и добавил в него следующий код:

import sys

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

from main import app as application

В файл httpd.conf в /opt/bitnami/apache2/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>

выпуск

  • Однако по какой-то причине файл .so для mod_wsgi так и не был добавлен в папку / opt / bitnami / apache2 / modules /.

  • Всякий раз, когда я пытался перезапустить apache, я получал сообщение о том, что «WSGIScriptAlias» не существует.

  • API также не был размещен на порту по-прежнему и недоступен.

Есть идеи по поводу моей проблемы?

...