5

好的,我的问题应该更重要。底线是:我有一个远程 linux 机器,我在它上面启动了 web2py - 它提示我访问 localhost 上的端口 8000。

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

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

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

4

2 回答 2

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

这应该会打开远程机器上的管理应用程序。

做你想做的最好的方法是,

使用这个漂亮的脚本 (setup-web2py-nginx-uwsgi-ubuntu.sh)在 ubuntu 上使用 uWSGI 设置带有 web2py 的 nginx。该脚本将为您设置所需的 https 和 http 通道。

上述方法旨在用于开发环境而不是生产环境

于 2012-10-12T19:42:45.460 回答
2

最简单的方法是使用 SSH 端口转发。这使您可以像本地主机一样访问它,并且它是通过加密连接进行的。

格式:

$ ssh -L localhostport:localhost:remoteport remoteip

示例:这会将远程端口 8000(web2py 默认)转发到 localhost:80

$ ssh -L 80:localhost:8000 remoteip
于 2013-12-24T18:44:33.853 回答