我有一个简单的python cgi服务器:
import BaseHTTPServer
import CGIHTTPServer
import cgitb; cgitb.enable() ## This line enables CGI error reporting
server = BaseHTTPServer.HTTPServer
handler = CGIHTTPServer.CGIHTTPRequestHandler
server_address = ("", 8000)
httpd = server(server_address, handler)
httpd.serve_forever()
服务器对每个请求进行反向dns查找,以便在屏幕上显示日志记录。由于我在本地网络设置中运行服务器,因此没有可用的DNS服务器。所以每次反向dns查找都会导致查找超时,从而延迟服务器的响应。我怎样才能禁用DNS查找?我没有在python文档中找到答案。
答案 0 :(得分:12)
您可以继承自己的处理程序类,它不会执行DNS查找。这是从http://docs.python.org/library/cgihttpserver.html#module-CGIHTTPServer开始的,CGIHTTPRequestHandler表示BaseHTTPRequestHandler与[{3}}的界面兼容,BaseHTTPRequestHandler的方法address_string()。
class MyHandler(CGIHTTPServer.CGIHTTPRequestHandler):
# Disable logging DNS lookups
def address_string(self):
return str(self.client_address[0])
handler = MyHandler