стандартный способ отключить заголовок 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.мой