Vagrant 本地主机 8080 连接问题

Vagrant localhost 8080 connection issue

我是 vagrant 的新手,使用 Windows 10. 开始学习 Udacity(全栈基础)课程。现在我已经创建了一个简单的 Web 服务器脚本,但是当我在 localhost:8080 上测试它时显示错误:无法访问站点。尝试了很多但无法找到解决方案。在 netstat -aon 上显示 0.0.0.0:8080 监听 pid no 1072 但 pid 在 运行 服务中不存在(使用 Clt+Alt+Del)。

网络服务器脚本 - webserver.py

from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
class WebServerHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        if self.path.endswith("/hello"):
            self.send_response(200)
            self.send_header('Content-type', 'text/html')
            self.end_headers()
            message = ""
            message += "<html><body>Hello!</body></html>"
            self.wfile.write(message)
            print message
            return
        if self.path.endswith("/hola"):
            self.send_response(200)
            self.send_header('Content-type', 'text/html')
            self.end_headers()
            message = ""
            message += "<html><body>Hola!</body></html>"
            self.wfile.write(message)
            print message
            return
        else:
            self.send_error(404, 'File Not Found: %s' % self.path)
def main():
    try:
        port = 8080
        server = HTTPServer(('', port), WebServerHandler)
        print "Web Server running on port %s" % port
        server.serve_forever()
    except KeyboardInterrupt:
        print " ^C entered, stopping web server...."
        server.socket.close()

if __name__ == '__main__':
    main()

代码正在正确执行和终止,没有错误,但在 http://localhost:8080/hello 上测试它(无法访问站点)。

帮帮我。提前致谢。

尝试从 VM 使用 curl 访问 link:curl http://localhost:8080/hello

如果响应正常,说明8080端口没有转发,或者被vagrant VM firewall屏蔽了。您可以使用 ufw.

打开端口进行测试

我在 Python App 中更改了主机和端口:

run(host='localhost', port=8080, debug=True)

对此:

run(host='0.0.0.0', port=5002, debug=True)

并在 vagrantfile 中来自:

config.vm.network "forwarded_port", guest: 8080, host: 8080, host_ip: "127.0.0.1"

对此:

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

然后测试请求,不要忘记添加资源(URL 端点) 'hello' 在我的示例中:http://0.0.0.0:5002/hello

这解决了我的问题。