I'm using 1and1 hosting and they use vhosts. So the setup they're using has nginx on the front end (port 80) and connects to apache over port 7080.
WSGIDaemonProcess web2py user=www-data group=www-data
<VirtualHost *:7080>
 WSGIProcessGroup web2py
  WSGIScriptAlias / /home/www-data/web2py/wsgihandler.py
  WSGIPassAuthorization On
  <Directory /home/www-data/web2py>
    AllowOverride None
    Require all granted
    <Files wsgihandler.py>
      Require all granted
    </Files>
  </Directory>
  AliasMatch ^/([^/]+)/static/(?:_[\d]+.[\d]+.[\d]+/)?(.*) \
        /home/www-data/web2py/applications/$1/static/$2
  <Directory /home/www-data/web2py/applications/*/static/>
    Options -Indexes
    ExpiresActive On
    ExpiresDefault "access plus 1 hour"
    Require all granted
  </Directory>
  CustomLog /var/log/apache2/access.log common
  ErrorLog /var/log/apache2/error.log
</VirtualHost>
<VirtualHost *:7081>
  SSLEngine on
  SSLCertificateFile /etc/apache2/ssl/self_signed.cert
  SSLCertificateKeyFile /etc/apache2/ssl/self_signed.key
  WSGIProcessGroup web2py
  WSGIScriptAlias / /home/www-data/web2py/wsgihandler.py
  WSGIPassAuthorization On
  <Directory /home/www-data/web2py>
    AllowOverride None
    Require all denied
    <Files wsgihandler.py>
      Require all granted
    </Files>
  </Directory>
  AliasMatch ^/([^/]+)/static/(?:_[\d]+.[\d]+.[\d]+/)?(.*) \
        /home/www-data/web2py/applications/$1/static/$2
  <Directory /home/www-data/web2py/applications/*/static/>
    Options -Indexes
    ExpiresActive On
    ExpiresDefault "access plus 1 hour"
    Require all granted
  </Directory>
The problem I'm having is when I go to visit my site. I put an index.html file in my /home/www-data/web2py directory. I'm actually seeing the content in index.html. It appears as if the wsgihandler.py isn't working correctly. I've been troubleshooting for days and I can't figure this out. Any help is greatly appreciated.