好的my question here应该更加重要。底线是:我有一个远程linux盒子,我启动web2py就好了 - 它促使我访问localhost上的端口8000。
但是,当我尝试远程访问该端口时,我无法通过http或https建立连接。
所以问题就变成了,为web2py提供远程管理员访问的最快最简单的方法是什么?我不想设置Apache和mod_proxy(虽然我确实设法得到它设置),我不想让Apache配置使用这个wsgi包装器。如果那些是我唯一的两个选择,那么就这样吧,我会尽力完成。
但我宁愿只使用某种允许安全远程访问的选项来启动web2py并完成它。
答案 0 :(得分:11)
出于安全原因,除非您使用安全通道,否则web2py会禁用对管理应用的远程访问,即。 HTTPS。你需要做的就是设置它。
最短的方式来做你想做的事,
首先生成证书文件(如果您还没有)
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
将server.key和server.crt文件复制到web2py根文件夹。
然后使用证书文件启动web2py应用程序
python web2py.py -a 'AdminPwd' -c server.crt -k server.key -i 0.0.0.0 -p 8000
然后转到浏览器并打开,请注意 https 很重要
https://IpAddr:8000/admin/default/site
这应该在远程计算机上打开管理应用程序。
最好的方式来做你想做的事,
使用this nice script (setup-web2py-nginx-uwsgi-ubuntu.sh)在ubuntu上使用uWSGI使用web2py设置nginx。该脚本将为您设置所需的https和http频道。
上述方法旨在用于开发环境而非生产环境
答案 1 :(得分:2)
最简单的方法是使用SSH端口转发。这允许您像本地主机那样访问它,并且它通过加密连接。
格式:
$ ssh -L localhostport:localhost:remoteport remoteip
示例:这会将远程端口8000(默认为web2py)转发到localhost:80
$ ssh -L 80:localhost:8000 remoteip