Tornando o framework webpy acessível de fora da rede local

0

Estou usando o Ubuntu 12.04.03. Eu tenho alguma experiência básica com webpy e trabalhei para minha LAN apenas seguindo o tutorial. A estrutura precisa poder ser usada fora da rede local. Tenho dificuldade em ver como tornar o framework acessível de fora da lan. Eu tentei abrir uma porta específica com

# 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

E use python web_py_test.py MY_IP:8081 sem sucesso.

Se eu entendi em tudo, podemos ter um computador conectado em um Wi-Fi com um IP não-estático e há uma maneira de lançar o nosso framework webpy que pode ser acessível a partir do mundo exterior. Estou experimentando o script 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()
~           

Observo que nada é declarado no script sobre IPs ou portas.

    
por user3054451 14.12.2013 / 15:59

1 resposta

1

Extraído do livro do site oficial:

By default, web2py runs its web server on 127.0.0.1:8000 (port 8000 on localhost), but you can run it on any available IP address and port. You can query the IP address of your network interface by opening a command line and typing ipconfig on Windows or ifconfig on OS X and Linux. From now on we assume web2py is running on localhost (127.0.0.1:8000). Use 0.0.0.0:80 to run web2py publicly on any of your network interfaces

Observe o uso de 0.0.0.0:80 para executar o web2py publicamente em qualquer uma das suas interfaces de rede

A maioria desses frameworks tem o mesmo método para executar seus servidores de desenvolvimento localmente / publicamente.

Voltando à resposta, se você não tiver definido nenhum arquivo de configuração, precisará executar o servidor de desenvolvimento usando:

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

Referência

    
por Stef K 15.12.2013 / 13:48