10

I am trying to run to run django and flask on the same apache server.

WSGISocketPrefix /var/www/wsgi
<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName  domain.com
        ServerAlias www.domain.com
        DocumentRoot /var/www/
        LogLevel warn
        WSGIDaemonProcess apache processes=2 maximum-requests=500 threads=1
        WSGIProcessGroup apache
        Alias /media /var/www/media/

        WSGIScriptAlias / /var/www/djangoapps/django.wsgi
        WSGIScriptAlias /app1 /var/www/flaskapps/app.wsgi
</VirtualHost>
  1. The first WSGIScriptAlias runs a django app in the root: domain.com.
  2. The second instance of WSGIScriptAlias needs to run a flask app in a subdomain: app1.

But since the main site sits over django, when I try to hit: domain.com/app1, django's urls.py tries to handle that url command. But urls.py should not handle it, since its an independent flask app.

Any ideas how can I go about it?

2 Answers 2

8

I'm not sure if this would solve the problem, but have you tried changing the order of your script alias so that /app1 is found before / ?

WSGISocketPrefix /var/www/wsgi
<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName  domain.com
        ServerAlias www.domain.com
        DocumentRoot /var/www/
        LogLevel warn
        WSGIDaemonProcess apache processes=2 maximum-requests=500 threads=1
        WSGIProcessGroup apache
        Alias /media /var/www/media/
        WSGIScriptAlias /app1 /var/www/flaskapps/app.wsgi
        WSGIScriptAlias / /var/www/djangoapps/django.wsgi

</VirtualHost>
Sign up to request clarification or add additional context in comments.

Comments

1

For anyone who want to achieve the same in 2018 this really helped me:

https://www.phusionpassenger.com/library/deploy/apache/deploy/python/

I know it is off topic, but I found this question like 20 searches before I found the link to the Description from Passenger....

How ev's here is an excert from the tutorial:

<VirtualHost *:80>
    ServerName www.phusion.nl
    DocumentRoot /websites/phusion/public
<Directory /websites/phusion>
    Allow from all
    Options -MultiViews
    # Uncomment this if you're on Apache >= 2.4:
    #Require all granted
</Directory>

Alias /subapp /websites/secondapp/public
<Location /subapp>
    PassengerBaseURI /subapp
    PassengerAppRoot /websites/secondapp

    PassengerAppType wsgi
    PassengerStartupFile passenger_wsgi.py
</Location>
<Directory /websites/secondapp/public>
    Allow from all
    Options -MultiViews
    # Uncomment this if you're on Apache >= 2.4:
    #Require all granted
</Directory>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.