Using nginx, you have to have a line somewhere for "fastcgi_pass". If this line isn't:
fastcgi_pass http://127.0.0.1:9000 Then you will have problems. When you connect to web2py through nginx, web2py only sees nginx. So if nginx is passing fastcgi to another computer on the network, then web2py thinks that the nginx server is the client, on another machine, not using SSL. I have had to deal with this issue myself, but maybe for a different reason than you. I have one gateway server that my router passes all port 80 and 443 traffic to. However, I run several different web servers on different computers inside the network, so I use the gateway (running nginx) to proxy to the inside servers based on domain name. The inside servers are also running nginx, and running web2py locally. Therefore, I am using fastcgi_pass http://127.0.0.1:9000 and web2py assumes that you are accessing it from the local host, allowing admin. My gateway server also handles the SSL connections, as there is no need to SSL from one inside server to another.

