使 webpy 框架可以从本地网络外部访问

使 webpy 框架可以从本地网络外部访问

我使用的是 ubuntu 12.04.03。我对 webpy 有一些基本经验,只需按照教程操作,它就可以在我的 LAN 上运行。该框架需要能够在本地网络之外使用。我很难看到如何使该框架在 LAN 之外可访问。我尝试使用

# iptables -A INPUT -p tcp -d 0/0 -s 0/0 --dport 8081 -j ACCEPT" then I check: "# netstat -ln | grep 8081 and I get:
tcp        0      0 0.0.0.0:8081            0.0.0.0:*               LISTEN

并且使用python web_py_test.py MY_IP:8081没有成功。

如果我理解得没错的话,我们可以让一台电脑连接到一个非静态 IP 的 wifi 上,并且有一种方法可以启动我们的 webpy 框架,该框架可以从外部世界访问。我正在尝试使用 hello 脚本:

import web

urls = (
    '/(.*)', 'hello'
)
app = web.application(urls, globals())

class hello:
    def GET(self, name):
        if not name:
            name = 'World'
        return 'Hello, ' + name + '!'

if __name__ == "__main__":
    app.run()
~           

我观察到脚本中没有声明任何有关 IP 或端口的内容。

答案1

摘自官方网站的书籍:

默认情况下,web2py 在 127.0.0.1:8000(本地主机上的端口 8000)上运行其 Web 服务器,但您可以在任何可用的 IP 地址和端口上运行它。您可以通过打开命令行并在 Windows 上输入 ipconfig 或在 OS X 和 Linux 上输入 ifconfig 来查询网络接口的 IP 地址。从现在开始,我们假设 web2py 在本地主机(127.0.0.1:8000)上运行。使用 0.0.0.0:80 在任何网络接口上公开运行 web2py

注意使用 0.0.0.0:80 在任何网络接口上公开运行 web2py

大多数这些框架都有相同的方法在本地/公开运行其开发服务器。

回到答案,如果您没有设置任何配置文件,则需要使用以下命令运行开发服务器:

python web2py.py --ip 0.0.0.0:80 # or any other port you want...

参考

相关内容