我在Google Compute Engine上运行了一个VM,托管由Apache / WSGI提供服务的Flask应用程序。此应用程序必须可通过Internet 通过 www.my_application.com
访问。
在Docker容器内部通过WSGI公开应用程序的最佳方法是什么?
docker run
命令?my_application.conf
?以下是my_application.conf
:
<VirtualHost *:80>
ServerName www.my_application.com
WSGIDaemonProcess my_application user=www-data group=www-data threads=5
WSGIScriptAlias / /var/www/my_application/application.wsgi
ErrorLog /var/log/my_application.log
<Directory /var/www/my_application>
WSGIProcessGroup my_application
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
答案 0 :(得分:3)
这可能与您相关,也可能不相关,但我制作了一个公共(和开源)Docker镜像,其中包含可用于构建Python Flask Web应用程序的所有花哨功能。
它有uWSGI用于运行应用程序,Nginx用于提供HTTP和Supervisord来控制它们,因此您不必学习如何安装和配置所有这些来构建Python Flask Web应用程序。
Google Compute Engine可以运行Docker:https://cloud.google.com/compute/docs/containers
使用Nginx的uWSGI似乎是部署Python Web应用程序的更强大(并且性能更好)的方法之一。以下是基准:http://nichol.as/benchmark-of-python-web-servers。
甚至还有一些模板项目可用于引导您自己的项目。而且,您不必克隆整个项目或其他东西,您只需将其用作基本图像。
Docker Hub:https://hub.docker.com/r/tiangolo/uwsgi-nginx-flask/