设置对web2py进程的远程管理员访问的最简单方法

时间:2012-10-11 07:40:14

标签: web-applications web2py

好的my question here应该更加重要。底线是:我有一个远程linux盒子,我启动web2py就好了 - 它促使我访问localhost上的端口8000。

但是,当我尝试远程访问该端口时,我无法通过http或https建立连接。

所以问题就变成了,为web2py提供远程管理员访问的最快最简单的方法是什么?我不想设置Apache和mod_proxy(虽然我确实设法得到它设置),我不想让Apache配置使用这个wsgi包装器。如果那些是我唯一的两个选择,那么就这样吧,我会尽力完成。

但我宁愿只使用某种允许安全远程访问的选项来启动web2py并完成它。

2 个答案:

答案 0 :(得分:11)

出于安全原因,除非您使用安全通道,否则web2py会禁用对管理应用的远程访问,即。 HTTPS。你需要做的就是设置它。

最短的方式来做你想做的事,

  1. 首先生成证书文件(如果您还没有)

    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

  2. 将server.key和server.crt文件复制到web2py根文件夹。

  3. 然后使用证书文件启动web2py应用程序

    python web2py.py -a 'AdminPwd' -c server.crt -k server.key -i 0.0.0.0 -p 8000

  4. 然后转到浏览器并打开,请注意 https 很重要

    https://IpAddr:8000/admin/default/site

  5. 这应该在远程计算机上打开管理应用程序。

    最好的方式来做你想做的事,

    使用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