【问题标题】:python web: Safari can't connect to the serverpython web:Safari无法连接到服务器
【发布时间】:2018-05-24 01:29:48
【问题描述】:

我使用vagrant ubuntu server(16.04): 127.0.0.1,端口为2222开发web应用,测试代码(app.py)如下:

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()
     

在 ubuntu 服务器中运行代码后,如下所示:

然后我想在浏览器中测试应用程序,但没有响应!和错误:

【问题讨论】:

    标签: server vagrant ubuntu-16.04 python-3.5 python-asyncio


    【解决方案1】:

    问题是服务器正在侦听 VM 上的 IP 127.0.0.1,因此您将无法从主机访问。

    如果您想从主机浏览器访问它,您需要在专用 IP 或 0.0.0.0 IP 上运行您的服务器,因此请更改为

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

    然后确保从您的 Vagrantfile 转发此端口:

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

    您将能够在您的主机上通过http://localhost:9000 访问它

    【讨论】:

      【解决方案2】:

      默认的2222 端口是从主机ssh 转发的22 .. 你确定你port_forwarded 在你的Vagrantfile 设置是正确的..?如果你的端口也检查你的主机想要打开是真的用sudo netstat -ntlp打开通常流浪端口的PID是VBOXHeadless

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-19
        • 2023-02-08
        • 2019-12-22
        • 2014-10-16
        • 1970-01-01
        • 1970-01-01
        • 2020-09-13
        • 1970-01-01
        相关资源
        最近更新 更多