Run multiple independent Flask apps in Ubuntu

前端 未结 1 1166
感情败类
感情败类 2021-01-14 11:30

I\'m trying to run two or more Flask applications in separate virtual directories with Apache, like http://localhost/site1 for /var/www/myapps/app1 and

相关标签:
1条回答
  • 2021-01-14 12:20

    I spent more time on this and, if I'm starting to understand Apache terminology and configuration a little better, I cannot use virtual hosts for this purpose. VirtualHost sections are intended for serving different host names (multiple domains or subdomains.)

    For configuring parallel applications as subdirs I could have used Directory sections instead. I also didn't realize some of the WSGI* directives in the config file could appear more than once. This new knowledge allowed me to produce the following single config file that does what I wanted. So instead of enabling one Apache site for each app, I could enable a single site with the directories configured in it.

    # this goes in /etc/apache2/sites-available/
    <VirtualHost *:80>
        ServerName localhost
    
        # logs configuration
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    
        WSGIDaemonProcess site1 user=myserviceuser group=myserviceuser threads=5 python-home=/var/www/myapps/app1:/var/www/myapps/app1/env/lib/python2.7/site-packages
        WSGIScriptAlias /site1 /var/www/myapps/app1/application.wsgi
        <Directory /var/www/myapps/app1>
            WSGIApplicationGroup site1
            WSGIProcessGroup site1
            Order deny,allow
            Allow from all
        </Directory>
    
        WSGIDaemonProcess site2 user=myserviceuser group=myserviceuser threads=5 python-home=/var/www/myapps/app2:/var/www/myapps/app2/env/lib/python2.7/site-packages
        WSGIScriptAlias /site2 /var/www/myapps/app2/application.wsgi
        <Directory /var/www/myapps/app2>
            WSGIApplicationGroup site2
            WSGIProcessGroup site2
            Order deny,allow
            Allow from all
        </Directory>
    
    </VirtualHost>
    

    EDIT:

    I later followed Graham Dumpleton's suggestion and removed the activate_this stuff from application.wsgi and changed the WSGIDaemonProcess directive lines to:

    WSGIDaemonProcess site1 user=myserviceuser group=myserviceuser threads=5 python-home=/var/www/myapps/app1/env
    
    0 讨论(0)
提交回复
热议问题