ОС: 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 также не был размещен на порту по-прежнему и недоступен.
Есть идеи по поводу моей проблемы?