Vagrant localhost 8080连接问题

时间:2017-10-26 10:38:02

标签: python-3.x vagrant virtualbox

我是初次使用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上进行测试(无法访问网站)。

帮帮我。在此先感谢。

2 个答案:

答案 0 :(得分:0)

尝试从VM访问curl链接:curl http://localhost:8080/hello

如果响应正常,则表示端口8080未转发,或者可能被流浪的VM防火墙阻止。您可以使用ufw打开端口进行测试。

答案 1 :(得分:0)

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

    Select Equip,Description, count(*) as Count, 
                from WorkOrder (nolock) 
    where DateTm Between DATEADD(month, DATEDIFF(month, 0, getDate()), 0) and 
DATEADD(month, DATEDIFF(month, -1, getDate()), -1)
                Group by Equip,Description order by Equip Asc

对此:

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

,并在 vagrantfile 中通过以下操作:

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

对此:

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

然后测试请求,并不要忘记添加资源(URL端点)在我的示例中为“ hello”:config.vm.network "forwarded_port", guest: 5002, host: 5002

这为我解决了这个问题。