Here Is a configuration I tested with which works in my quick test setup. I am 
using mod_wsgi 4.4.7 and Apache httpd 2.4.12.

I am using port 8443 as I wasn't running as root but myself.

<IfModule !ssl_module>
LoadModule ssl_module ${HTTPD_MODULES_DIRECTORY}/mod_ssl.so
</IfModule>

Listen 8443

<VirtualHost *:8443>

SSLEngine On
SSLCertificateFile /Users/graham/Testing/mod_wsgi-multiple-apps/server.crt
SSLCertificateKeyFile /Users/graham/Testing/mod_wsgi-multiple-apps/server.key

WSGIApplicationGroup %{GLOBAL}

# Setup Python for the App1.

WSGIDaemonProcess app1 threads=5

WSGIScriptAlias /app1 
/Users/graham/Testing/mod_wsgi-multiple-apps/app1/app1.wsgi

<Directory /Users/graham/Testing/mod_wsgi-multiple-apps/app1>
WSGIProcessGroup app1
Require all granted
</Directory>

# Setup Python for the App2.

WSGIDaemonProcess app2 threads=5

WSGIScriptAlias /app2 
/Users/graham/Testing/mod_wsgi-multiple-apps/app2/app2.wsgi

<Directory /Users/graham/Testing/mod_wsgi-multiple-apps/app2>
WSGIProcessGroup app2
Require all granted
</Directory>

</VirtualHost>

Important things to note:

1. Your original VirtualHost didn't specific the port for the HTTPS connections.

2. Your regional VirtualHost didn't enable SSL within the VirtualHost which is 
required.

3. I am using:

    Require all granted

which is Apache 2.4 way of doing things where as what you had with Order/Allow 
is old deprecated Apache 2.2 way.

Can you look at the above, adjusting ports/paths for things as appropriate and 
try in your setup.

Ensure that no other VirtualHost is setup.

Ensure that the lines:

# Virtual hosts
#Include /private/etc/apache2/extra/httpd-vhosts.conf

if they exist in Apache httpd.conf are NOT uncommented.

When you have tried, if not working provide the exact configuration you used so 
I can review it.

Graham

On 03/02/2015, at 3:01 AM, Apollo Clark <[email protected]> wrote:

> It's a single AWS machine, being used internally by the client, to access two 
> Flask apps which I've developed. It is only accessible on the client's VPN. 
> Therefore, it does not have a DNS entry, and I cannot use sub-domains, nor 
> port routing. I cannot change this. The solution is to figure out how to host 
> multiple apps on different sub-folders, OR request another server and wait 4 
> weeks.
> 
> I can configure the server as I want, but cannot open any ports, and cannot 
> make it public accessible beyond the VPN.
> 
> I've seen 3 possible answers: 
> - Flask front-controller to manually split the requests
> - Apache ProxyPass
> - Nginx routing
> 
> None of these are particularly elegant, and will be tedious to maintain, and 
> difficult to automate. I'm going to attempt to do the same configuration in 
> Ubuntu 12.04, and see if I can get that working. Next I'll move onto 
> ProxyPass, and if all else fails, I'll use Nginx.
> 
> 
> 
> On Monday, February 2, 2015 at 5:00:13 AM UTC-5, Graham Dumpleton wrote:
> 
> On 31/01/2015, at 5:53 AM, Apollo Clark <[email protected]> wrote:
> 
>> I want to host multiple Flask apps under the same domain, ex:
>> example.com/app1
>> example.com/app2
>> 
>> System configuration:
>> Ubuntu 14.04 TLS 
>> Apache 2.4.7ubuntu4.1 
>> mod_wsgi 4.4.6 
>> Python 2.7.6
>> 
>> You can find my VirtualHost config here:
>> https://gist.github.com/apolloclark/3f0e52c527dc169fa982
>> This configuration does not work.
>> 
>> However, when I set:
>>     WSGIScriptAlias / /var/www/app1/app1.wsgi
>> I am able to access: example.com/app1
>> 
>> I am not seeing any errors in the Apache logs file.
> 
> Sorry for the slow reply on this one. Have managed to finally catch up.
> 
> Now when you say:
> 
> """It needs to be on a shared hosting machine, per a client's security 
> requirements."""
> 
> what does that actually mean?
> 
> Are you saying that there are over web applications and/or sites already 
> being hosted on the same Apache installation.
> 
> Normally on a shared hosting machine where there are multiple sites, they are 
> separate using name based virtual hosts. For that to work each site must have 
> its own unique host name.
> 
> You say you cannot use a new sub domain, which if it is a traditional shared 
> hosting environment, that would preclude it being used then.
> 
> Can you therefore clarify whether the Apache instance is actually shared or 
> whether you have complete control to do what you want with the Apache 
> configuration and that the Apache instance can have sole access to port 443 
> for HTTPS connections.
> 
> BTW, I use the term HTTPS meaning secure HTTP.
> 
> To use the term SSL is actually  a misnomer and SSL isn't actually used any 
> more and TLS is used. It is therefore more correct to really refer to it as 
> HTTPS.
> 
> Graham
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "modwsgi" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/modwsgi.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"modwsgi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/modwsgi.
For more options, visit https://groups.google.com/d/optout.

Reply via email to