Not exactly.

At first for testing purposes I have changed two lines in  routes.py to

routers = dict (
    BASE = dict(
        default_application = 'welcome',
        domains = {
            '<my-ip>:80' :   'myapp/mycontroller',
            '<my-ip>:443' : 'myapp/mycontroller',
        }
    },
}

I.e. the same controller/function for http and https


There is an answer for
http://xxx.xxx.xxx.xxx/myapp/mycontroller/index  and for
https://xxx.xxx.xxx.xxx/myapp/mycontroller/index

But the http-request is changed to https and the function
https://xxx.xxx.xxx.xxx/myapp/mycontroller/index
is always called. I have checked it also with request.is_https

With
http://xxx.xxx.xxx.xxx:80/myapp/mycontroller/index
 I get an error message:
 The requested URL... t was not found on this server.

I have added the following lines to apache2.conf. These lines are copied
from "Setting up a production deployment in Ubuntu" (page 12). I have only
changed line 1 and 2 to get rid of a warning of apache:

# NameVirtualHost *:80
# NameVirtualHost *:443

<VirtualHost *:80>
    WSGIDaemonProcess web2py user=www-data group=www-data
    WSGIProcessGroup web2py
    WSGIScriptAlias / /home/www-data/web2py/wsgihandler.py

    <Directory /home/www-data/web2py>
    AllowOverride None
    Order Allow,Deny
    Deny from all
    <Files wsgihandler.py>
        Allow from all
    </Files>
    </Directory>

    AliasMatch ^/([^/]+)/static/(.*)
/home/www-data/web2py/applications/$1/static/$2

    <Directory /home/www-data/web2py/applications/*/static/>
    Options -Indexes
    Order Allow,Deny
    Allow from all
    </Directory>

    <Location /admin>
    Deny from all
    </Location>

    <LocationMatch ^/([^/]+)/appadmin>
    Deny from all
    </LocationMatch>

    CustomLog /var/log/apache2/access.log common
    ErrorLog /var/log/apache2/error.log
</VirtualHost>

<VirtualHost *:443>
    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

    <Directory /home/www-data/web2py>
    AllowOverride None
    Order Allow,Deny
    Deny from all
    <Files wsgihandler.py>
        Allow from all
        </Files>
    </Directory>

    AliasMatch ^/([^/]+)/static/(.*)
/home/www-data/web2py/applications/$1/static/$2

    <Directory /home/www-data/web2py/applications/*/static/>
    Options -Indexes
    ExpiresActive On
    ExpiresDefault "access plus 1 hour"
        Order Allow,Deny
    Allow from all
    </Directory>

    CustomLog /var/log/apache2/access.log common
    ErrorLog /var/log/apache2/error.log
</VirtualHost>



2012/8/23 dhmorgan <[email protected]>

> I'm wondering what your apache config file looks like for these servers
> and whether they've both been enabled. The result you reported at the end
> indicates that your apache server is running fine on port 80, but it's not
> firing your web2py applications. Perhaps you have not made an entry like
> 'ServerName www.example.com' that will tell Apache to pick up all traffic
> looking for said domain.
>
>
>
> On Wednesday, August 22, 2012 2:24:15 PM UTC-5, mweissen wrote:
>
>> Ok, I will try to make my question more clear:
>> I have installing web2py according to the chapter "Setting up a
>> production deployment in Ubuntu"
>> and I want to redirect http to myapp1 and https to myapp2.
>>
>> Of course I have tried the file routes.py. It contains:
>>
>> routers = dict (
>>     BASE = dict(
>>         default_application = 'welcome',
>>         domains = {
>>             '<my-ip>:80' : 'myapp1/mycontroller',
>>             '<my-ip>:443' : 'myapp2/mycontroller',
>>         }
>>     },
>> }
>>
>> I think, Apache converts everything to https, but I don't know why.
>>
>>
>>
>>
>>
>>
>> 2012/8/22 Martin Weissenboeck <[email protected]>
>>
>> A very nice book!
>>> I have executed all steps from the chapter "Setting up a production
>>> deployment in Ubuntu" (page 12)
>>> The server works very good, but every request is redirected to https.
>>>
>>> https://www.mydomain.com   -> request.is_https==True,  OK?
>>> *http*://www.mydomain.com becomes https://www.mydomain.com  -> 
>>> *request.is_https
>>> *==True
>>>
>>>
>>> And some other tries:
>>>
>>> https://www.mydomain.com:443  or
>>> http://www.mydomain.com:443  or
>>>
>>> <p>Your browser sent a request that this server could not understand.<br />
>>> Reason: You're speaking plain HTTP to an SSL-enabled server port.<br />
>>> Instead use the HTTPS scheme to access this URL, please.<br />
>>>
>>>
>>> http://www.mydomain.com:80
>>>
>>> The requested URL /secure/default/index was not found on this server.
>>>
>>> Every hint is welcome!
>>> Regards, Martin
>>>
>>
>>  --
>
>
>
>

-- 



Reply via email to