2017-12-10 13 views
0

ich vagrant Ubuntu-Server (16,04) verwendet: 127.0.0.1 und Port 2222 für die Entwicklung von Web-Anwendung, der Test-Code (app.py) wie folgt:Python web: Safari kann nicht mit dem Server verbindet

import logging; logging.basicConfig(level=logging.INFO) 

import asyncio, os, json, time 
from datetime import datetime 

from aiohttp import web 

def index(request): 
    return web.Response(body=b'<h1>Awesome</h1>') 

@asyncio.coroutine 
def init(loop): 
    app = web.Application(loop=loop) 
    app.router.add_route('GET', '/', index) 
    srv = yield from loop.create_server(app.make_handler(), '127.0.0.1', 2222) 
    logging.info('server started at http://127.0.0.1:9000...') 
    return srv 

loop = asyncio.get_event_loop() 
loop.run_until_complete(init(loop)) 
loop.run_forever() 

Nachdem ich das den Code in dem ubuntu-Server wie folgt ausgeführt werden: test app

und dann mag ich die App im Browser testen, aber es gibt keine Antwort! und Fehler:

Antwort

0

der Standard 2222 Port ist aus weitergeleitet 22 von Host-Rechner ssh .. sind Sie sicher, dass Sie port_forwarded Einstellung Ihrer Vagrantfile korrekt ist .. auch Check-in Sie Maschine Host, wenn der Port das? Sie öffnen möchten ist wirklich sudo netstat -ntlp in der Regel vagrant Port offen verwendet, wird eine PID von VBOXHeadless

1

das Problem ist, haben, dass der Server auf IP 127.0.0.1 auf der VM hört, so dass Sie nicht in der Lage sein, sich von Ihrem Host zuzugreifen.

Wenn Sie es von Ihrem Host-Browser zugreifen möchten, müssten Sie Ihren Server auf einem dedizierten IP oder auf dem 0.0.0.0 IP laufen, so zu

ändern
srv = yield from loop.create_server(app.make_handler(), '127.0.0.1', 9000) 

dann diesen Port weiterleiten vergewissern Sie sich von Vagrantfile Sie:

config.vm.network "forwarded_port", guest: 9000, host: 9000 

und Sie werden in der Lage sein, darauf zuzugreifen auf http://localhost:9000 von Ihrem Host

Verwandte Themen