Эта строка, кажется, устанавливается в CherrPy Ответ класс:
def __init__(self):
self.status = None
self.header_list = None
self._body = []
self.time = time.time()
self.headers = http.HeaderMap()
# Since we know all our keys are titled strings, we can
# bypass HeaderMap.update and get a big speed boost.
dict.update(self.headers, {
"Content-Type": 'text/html',
"Server": "CherryPy/" + cherrypy.__version__,
"Date": http.HTTPDate(self.time),
})
Таким образом, когда вы создаете свой объект Response, вы можете обновить заголовок «Server» для отображения желаемой строки. Из документации CherrPy Response Object :
заголовки
Словарь, содержащий заголовки ответа. Вы можете установить значения в
это диктуется в любое время перед завершающей фазой, после которой CherryPy переключается
к использованию header_list ...
РЕДАКТИРОВАТЬ : Чтобы избежать необходимости вносить это изменение с каждым создаваемым вами объектом ответа, один простой способ обойти это - обернуть объект ответа. Например, вы можете создать свой собственный объект Response, который наследуется от Response CherryPy и обновляет ключ заголовков после инициализации:
class MyResponse(Response):
def __init__(self):
Response.__init__(self)
dict.update(self.headers, {
"Server": "MyServer/1.0",
})
RespObject = MyResponse()
print RespObject.headers["Server"]
Затем вы можете вызывать ваш объект для использования там, где вам нужно создать объект Response, и в нем всегда будет установлен заголовок сервера на желаемую строку.