стандартный способ отключить заголовок X-powered-by в Passenger?
Я не мог найти способ отключить пассажирский :
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.11
возможно ли это сделать без изменение его источников и удаление заголовков на уровне HTTP-сервера?
5 ответов
короткий ответ: нет.
в passenger нет опции конфигурации для отключения X-Powered-by, поэтому вам нужно сделать один из
- фильтр
- изменить источник
- monkeypatch
пассажирский код:
#RequestHandler::process_request
headers_output = [
STATUS, status.to_i.to_s, CRLF,
X_POWERED_BY, @passenger_header, CRLF
]
#AbstractRequestHandler::initialize
@passenger_header = determine_passenger_header
#AbstractRequestHandler::determine_passenger_header
def determine_passenger_header
header = "Phusion Passenger (mod_rails/mod_rack)"
if @options["show_version_in_header"]
header << " #{VERSION_STRING}"
end
if File.exist?("#{SOURCE_ROOT}/enterprisey.txt") ||
File.exist?("/etc/passenger_enterprisey.txt")
header << ", Enterprise Edition"
end
return header
end
на Apache вы можете отключить заголовки:
# Hide/Remove the Passenger Headers
Header always unset "X-Powered-By"
Header always unset "X-Runtime"
он не удалит все имена (поскольку такие службы, как Plesk, все равно добавят свое имя), но пассажир может быть удален таким образом.
Слава Джону Трупиано: https://groups.google.com/forum/?fromgroups=#!topic/phusion-passenger/LKAKH0PEyW0
короткий ответ: да.
Я оставляю тот факт, что я использую nginx+passenger .. но вы можете полностью удалить их с
remove_header X-Header-Name-To-Remove;
таким образом, вы можете удалить оба по
server {
...
remove_header X-Powered-By;
remove_header X-Runtime;
...
}
Это удаляет все заголовки, он также может быть в местах директиву, а не сервер.
..
вот мои общие директивы, так как я оставляю "apache prod" equiv на моем.
server {
...
remove_header X-Runtime;
server_tokens off;
passenger_show_version_in_header off;
...
}
предоставляет сервис заголовок как..
Server:nginx + Phusion Passenger
X-Powered-By:Phusion Passenger
Это ближайший equiv директивы apache2 ServerTokens Prod, который я могу сделать.
more_clear_headers 'Server' 'X-Powered-By' 'X-Runtime';
работает для меня, как указано в http://www.michaelrigart.be/en/blog/nginx-and-passenger-install-in-production-environment.html.
удалить X-Powered-By
и Server
заголовки из nginx + Passenger, а не просто скрыть версии, добавьте это в свой http
блок nginx.conf
:
server_tokens off;
more_clear_headers Server;
more_clear_headers X-Powered-By;
вы также можете установить свой собственный:
more_set_headers "Server: ACME";
это будет работать даже если passenger_show_version_in_header off;
не установлен, но было бы разумно добавить его в случае необходимости.
не забудьте перезагрузить сервер, чтобы они вступили в силу. Вы должны проверить свою конфигурацию перед перезагрузкой, хотя:sudo nginx -t
.
информация via calvin.мой