Search code examples
rubyhttp-headerspassenger

standard way to disable X-powered-by header in Passenger?


I couldn't find any way to disable Passenger's X-Powered-By header:

X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.11

Is it possible to do that without modifying its sources and removing headers on the HTTP server level?


Solution

  • Short answer: no.

    There is no configuration option in passenger to disable the X-Powered-by, so you need to do one of

    • filter
    • edit source
    • monkeypatch

    passenger code:

      #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