> On 8 Jan 2018, at 6:16 pm, Shane nunya <[email protected]> wrote:
> 
> Hi
> 
> I've got a similar problem, that I'm not sure is covered by your blog post.
> 
> I have got 3 possible domains, and one alias, everything was working fine, 
> apache/mod_wsgi served the correct content for the appropriate URL. However, 
> I decided to clever (which is what *always* leads to my downfall) and added 
> HTTPS to one of my domains. In the process I had a problem where the ACME 
> client provided by letsencrypt had issues caused by it copying the *80 
> virtual hosts verbatim, therefore creating several mod_wsgi instances (one 
> for each vhost) with the same name.
> 
> I found a SO post that suggested I switch to mod_wsgi as a global for the 
> site, which fixed the issue, but now when I access one of the domains, the 
> content from the default is loaded.
> 
> So the problem URL is git.mydomain.com <http://git.mydomain.com/>, 
> myotherdomain.nz <http://myotherdomain.nz/> is *fine*; I suspect because of 
> the WSGIProcessGroup directive.
> 
> As I type this out I am wondering if the solution is to go back to an 
> individual mod_wsgi process per vhost, but name each one differently, eg. 
> https_mydomain and http_mydomain

You definitely want separate mod_wsgi daemon process group for each separate 
site.

This is necessary as:

    WSGIApplicationGroup %{GLOBAL}

would cause everything to run in the same Python interpreter context of the 
daemon processes.

Some web frameworks can't handle mixing multiple sites in one interpreter, eg 
Django, plus you will have other problems with different sites need different 
versions of modules.

So the pattern you want is:

# Global stuff defined once.

WSGIApplicationGroup %{GLOBAL}
WSGIRestrictEmbedded On

# For first site.

WSGIDaemonProcess mysite1 processes=2 threads=15 display-name=%{GROUP} 
python-home=/var/www/vhosts/mydomain/site1-venv

<VirtualHost *:80>
ServerName site1.com <http://site1.com/>

WSGIScriptAlias / /some/path/site1/wsgi.py process-group=mysite1 
application-group=%{GLOBAL}
</VirtualHost>

</VirtualHost *:443>
ServerName site1.com <http://site1.com/>

WSGIScriptAlias / /some/path/site1/wsgi.py process-group=mysite1 
application-group=%{GLOBAL}
</VirtualHost>

# For second site.

WSGIDaemonProcess mysite2 processes=2 threads=15 display-name=%{GROUP} 
python-home=/var/www/vhosts/mydomain/site2-venv

<VirtualHost *:80>
ServerName site2.com <http://site1.com/>

WSGIScriptAlias / /some/path/site2/wsgi.py process-group=mysite2 
application-group=%{GLOBAL}
</VirtualHost>

</VirtualHost *:443>
ServerName site2.com <http://site1.com/>

WSGIScriptAlias / /some/path/site2/wsgi.py process-group=mysite2 
application-group=%{GLOBAL}
</VirtualHost>


> 
> ##### Apache Conf file #####
> LogFormat "%v - %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" 
> combined-vhost
> WSGIApplicationGroup %{GLOBAL}
> WSGIRestrictEmbedded On
> WSGIScriptAlias / /var/www/vhosts/mydomain/mydomain/wsgi.py 
>        
> # adjust the following line to match your Python path 
> WSGIDaemonProcess mydomain.com <http://mydomain.com/> processes=2 threads=15 
> display-name=%{GROUP} python-home=/var/www/vhosts/mydomain/venv/lib/python2.7

The value of python-home looks wrong.

It should be the root of Python virtual environment, which is what sys.prefix 
gives for interpreter. I would expect it to be '/var/www/vhosts/mydomain/venv'.

Not sure if that helps.

Graham

> WSGIProcessGroup mydomain.com <http://mydomain.com/>
> 
> <VirtualHost *:80> 
>       ServerName www.mydomain.com <http://www.mydomain.com/> 
>       ServerAlias mydomain.com <http://mydomain.com/> 
>       DocumentRoot /var/www/vhosts/mydomain
>         CustomLog /var/log/apache2/mydomain.log combined-vhost
>        
>       <directory /var/www/vhosts/mydomain> 
>          AllowOverride none 
>          Require all granted 
>          Options FollowSymlinks 
>       </directory> 
>        
>       Alias /static/ /var/www/vhosts/mydomain/mydomain/static/ 
>        
>       <Directory /var/www/vhosts/mydomain/mydomain/static> 
>           AllowOverride none
>         Require all granted 
>       </Directory> 
> </VirtualHost> 
> <VirtualHost *:443> 
>       ServerName www.mydomain.com <http://www.mydomain.com/> 
>       ServerAlias mydomain.com <http://mydomain.com/> 
>       DocumentRoot /var/www/vhosts/mydomain
>         CustomLog /var/log/apache2/mydomain_secure.log combined-vhost
>        
>       <directory /var/www/vhosts/mydomain> 
>          AllowOverride none 
>          Require all granted 
>          Options FollowSymlinks 
>       </directory> 
>        
>       Alias /static/ /var/www/vhosts/mydomain/mydomain/static/ 
>        
>       <Directory /var/www/vhosts/mydomain/mydomain/static> 
>           AllowOverride none
>         Require all granted 
>       </Directory> 
> Include /etc/letsencrypt/options-ssl-apache.conf
> SSLCertificateFile /etc/letsencrypt/live/myotherdomain.nz/fullchain.pem 
> <http://myotherdomain.nz/fullchain.pem>
> SSLCertificateKeyFile /etc/letsencrypt/live/myotherdomain.nz/privkey.pem 
> <http://myotherdomain.nz/privkey.pem>
> Include /etc/letsencrypt/options-ssl-apache.conf
> </VirtualHost> 
> <VirtualHost *:80>
>     ServerName git.mydomain.com <http://git.mydomain.com/>
>     ServerAlias git.mydomain.com <http://git.mydomain.com/>
>     DocumentRoot /home/shane/code_repository/public
>     CustomLog /var/log/apache2/git.log combined-vhost
>     <Directory /home/shane/code_repository/public>
>       Options Indexes 
>       Require all granted
>         AllowOverride none
>     </Directory>
> </VirtualHost>
> ##### END #####
> 
> On Monday, August 14, 2017 at 10:43:18 AM UTC+10, Graham Dumpleton wrote:
> That would suggest you are using very old version of Apache 2.2. That 
> directive is not required in Apache 2.4.
> 
>> On 14 Aug 2017, at 1:30 am, rm...@ <>cornell.edu <http://cornell.edu/> wrote:
>> 
>> Actually I figured it out, my config was missing -
>> 
>> NameVirtualHost *:80
>> 
>> After adding that, the virtual hosts are getting called correctly.
>> 
>> Thanks and Cheers!
>> 
>> On Sunday, August 13, 2017 at 12:16:21 AM UTC-4, [email protected] 
>> <http://cornell.edu/> wrote:
>> Also, I checked the blog link below but that is a little different. Both the 
>> URLs used in there end with the same domain address (e.g. example.com 
>> <http://example.com/>). My case is a little different as both the URLs have 
>> different domain addresses. Not sure if that matters?
>> 
>> On Saturday, August 12, 2017 at 8:49:43 PM UTC-4, Graham Dumpleton wrote:
>> For general advice see:
>> 
>> http://blog.dscpl.com.au/2012/10/requests-running-in-wrong-django.html 
>> <http://blog.dscpl.com.au/2012/10/requests-running-in-wrong-django.html>
>> 
>> See further comments below.
>> 
>>> On 13 Aug 2017, at 9:45 am, <[email protected] <>> <[email protected] <>> 
>>> wrote:
>>> 
>>> Hello,
>>> 
>>> I am trying to setup two virtual hosts pertaining to two websites - lets 
>>> call them www.A.com <http://www.a.com/> and www.B.com <http://www.b.com/> 
>>> using apache, mod_wsgi daemon. Both the apps are written using flask.
>>> 
>>> Below is my apache conf file and for some reason it always picks the first 
>>> declared virtual host URL and executes the first flask application for both 
>>> URLs.
>> 
>> What are the URLs you are using?
>> 
>> Does the hostname in the URL match exactly what you are setting ServerName 
>> to?
>> 
>>> I am still new to the mod_wsgi scene and was reading multiple virtual hosts 
>>> setup instructions from here - 
>>> http://modwsgi.readthedocs.io/en/develop/user-guides/configuration-guidelines.html
>>>  
>>> <http://modwsgi.readthedocs.io/en/develop/user-guides/configuration-guidelines.html>
>>> 
>>> Any idea how to get both of them working? The apache server is run as root.
>>> 
>>> Conf:
>>> WSGIPythonHome /usr/local/venvs/myenv
>>> 
>>> <VirtualHost *:80>
>>>   ServerName www.A.com <http://www.a.com/>
>>> 
>>>   WSGIDaemonProcess www.A.com <http://www.a.com/> threads=15 
>>> maximum-requests=10000
>>> 
>>>   WSGIScriptAlias / /var/www/A/A.wsgi
>>>   WSGIProcessGroup www.A.com <http://www.a.com/>
>>> 
>>>   <Directory /var/www/Ar>
>>>     Order allow,deny
>>>     Allow from all
>>>   </Directory>
>>> 
>>> </VirtualHost>
>>> 
>>> <VirtualHost *:80>
>>>   ServerName www.B.com <http://www.b.com/>
>>> 
>>>   WSGIDaemonProcess www.B.com <http://www.b.com/> threads=15 
>>> maximum-requests=10000
>>> 
>>>   WSGIScriptAlias / /var/www/B/B.wsgi
>>>   WSGIProcessGroup www.Bl.com <http://www.bl.com/>
>> 
>> Do you mean www.B.com <http://www.b.com/> here. Not www.BI.com 
>> <http://www.bi.com/>?
>> 
>>> 
>>>   <Directory /var/www/B>
>>>     Order allow,deny
>>>     Allow from all
>>>   </Directory>
>>> 
>>> </VirtualHost>
>>> 
>>> Thanks,
>>> RM
>>> 
>>> 
>>> 
>>> -- 
>>> 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 modwsgi+u...@ <>googlegroups.com <http://googlegroups.com/>.
>>> To post to this group, send email to mod...@ <>googlegroups.com 
>>> <http://googlegroups.com/>.
>>> Visit this group at https://groups.google.com/group/modwsgi 
>>> <https://groups.google.com/group/modwsgi>.
>>> For more options, visit https://groups.google.com/d/optout 
>>> <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 https://groups.google.com/group/modwsgi 
>> <https://groups.google.com/group/modwsgi>.
>> For more options, visit https://groups.google.com/d/optout 
>> <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] 
> <mailto:[email protected]>.
> To post to this group, send email to [email protected] 
> <mailto:[email protected]>.
> Visit this group at https://groups.google.com/group/modwsgi 
> <https://groups.google.com/group/modwsgi>.
> For more options, visit https://groups.google.com/d/optout 
> <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 https://groups.google.com/group/modwsgi.
For more options, visit https://groups.google.com/d/optout.

Reply via email to