python - 网络服务器的瓶加载时间非常慢

标签 python html python-2.7 bottle

所以我目前正在开发一个基本的小网站来为我的网络运行。但是,我遇到了一些问题。当我运行服务器时,在运行服务器的计算机上,我可以非常快速地访问页面。但是,当我尝试访问我网络上不同计算机上的同一页面时,加载速度非常慢。是因为我正在使用开发人员吗?服务器,而不是像 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/

相关文章:

java - 如何在 Java 程序中读取 JavaScript 输出文本

python-2.7 - 如何将唯一行的 pandas dataframe 列转换为单独的列标题、计算相邻行值并对其求和?

Python:如何获得指向字节数组的可变切片?

python - 如何使用 python 迭代 df 中的字符串

python - 如何在 Flask 中创建 XML 端点?

javascript - 使用 javascript 无法在 HTML5 Canvas 上绘制线条

javascript - 创建饼图的最简单方法是什么?

python - 回溯 : AttributeError: Symbol not Found

python ftplib : Best way to check if a file has changed?

Python:找到最小元素的最后一个索引?