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

Ter*_*non 5 web-applications web2py

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

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

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

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

Aks*_*het 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频道.

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


Mut*_*key 2

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

格式:

$ ssh -L localhostport:localhost:remoteport remoteip
Run Code Online (Sandbox Code Playgroud)

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

$ ssh -L 80:localhost:8000 remoteip
Run Code Online (Sandbox Code Playgroud)