所以我目前正在开发一个基本的小网站来为我的网络运行。但是,我遇到了一些问题。当我运行服务器时,在运行服务器的计算机上,我可以非常快速地访问页面。但是,当我尝试访问我网络上不同计算机上的同一页面时,加载速度非常慢。是因为我正在使用开发人员吗?服务器,而不是像 Paste 或 Apache 这样的东西? (还要注意,当我查看服务器计算机时,请求的日志在我在另一台计算机上的浏览器上请求后大约 5-6 秒内出现)
我的代码如下:
正在访问的页面:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type"
content="text/html; charset=ISO-8859-1">
<title>index</title>
<link type="text/css"
href="cssfiles/mainpagecss.css"
rel="stylesheet">
</head>
<body>
<table
style="width: 100%; text-align: left; margin-left: auto; margin-right: auto;"
border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>
<h1><span class="headertext">
<center>Network
Website</center>
</span></h1>
</td>
</tr>
</tbody>
</table>
%if name!='none':
<p align="right">signed in as: {{name}}</p>
%else:
pass
%end
<br>
<table style="text-align: left; width: 100%;" border="0" cellpadding="2"
cellspacing="2">
<tbody>
<tr>
<td>
<table style="text-align: left; width: 100%;" border="0"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="width: 15%; vertical-align: top;">
<table style="text-align: left; width: 100%;" border="1"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>Home<br>
<span class="important">Teamspeak Download</span><br>
<span class="important">Teamspeak Information</span></td>
</tr>
</tbody>
</table>
</td>
<td style="vertical-align: top;">
<table style="text-align: left; width: 100%;" border="1"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>
<h1><span style="font-weight: bold;">Network Website</span></h1>
To find all of the needed information relating to the network's social
capabilities, please refer to the links in the side bar.</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</body>
</html>
CSS:
.headertext { color: rgb(51, 51, 51);
}
.bodytext { }
.important { font-weight: bold;
}
服务器:
from Bottle import route,run,template,request,static_file
@route('/')
def home():
return template('Templates/',name=request.environ.get('REMOTE_ADDR'))
run(host='Work-PC',port=9999,debug=True)
最佳答案
我知道我迟到了,但我遇到了同样的问题。默认的 bottle 服务器(来自 wsgiref.simple_server 的 WSGIRef)对每个 GET、POST 等进行反向 DNS 查找,因此它可以在网络日志中使用连接主机名而不是其 IP 地址。这可能会不必要地减慢速度,即使您有一个快速的 DNS 响应程序。 :(
只需对 bottle.py 进行一些修改,您就可以重载执行 rDNS 的底层方法,BaseHTTPRequestHandler.address_string()
,如下所示:
Bottle .py
class WSGIRefServer(ServerAdapter):
def run(self, handler): # pragma: no cover
from wsgiref.simple_server import make_server, WSGIRequestHandler
+ self.fast = True
+ self.quiet = False
+ if self.fast and self.quiet: # disable logging and rDNS
+ class FastAndQuietHandler(WSGIRequestHandler):
+ def address_string(self): return self.client_address[0]
+ def log_request(*args, **kw): pass
+ self.options['handler_class'] = FastAndQuietHandler
+ elif self.fast: # disable Reverse DNS Lookups -> faster service
+ class FastHandler(WSGIRequestHandler):
+ def address_string(self): return self.client_address[0]
+ self.options['handler_class'] = FastHandler
- if self.quiet:
+ elif self.quiet: # disable action entries to web-log
class QuietHandler(WSGIRequestHandler):
def log_request(*args, **kw): pass
self.options['handler_class'] = QuietHandler
srv = make_server(self.host, self.port, handler, **self.options)
srv.serve_forever()
我不喜欢给源打补丁,但是在上游接受这个补丁之前,这很有效如果你决定使用默认服务器。
来源:参见 - https://stackoverflow.com/a/6761844/538418
HTH
关于python - 网络服务器的瓶加载时间非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10474993/