从Docker容器暴露WSGI应用程序
我有一台运行在Google Compute Engine上的VM托pipeApache / WSGI提供的Flask应用程序。 这个应用程序必须通过互联网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>
这可能是也可能不是与你有关,但我做了一个公共(和开源)的Docker图像与所有的花里胡哨,你可以用它来build立一个Python Flask的Web应用程序。
它有用于运行应用程序的uWSGI,Nginx为HTTP和Supervisord提供服务来控制它们,因此您不必学习如何安装和configuration所有这些来构build您的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/
GitHub: https : //github.com/tiangolo/uwsgi-nginx-flask-docker