Class: MintPress::HAProxy::Frontend

Inherits:
Object
  • Object
show all
Includes:
Mixins::Properties
Defined in:
src/haproxy/lib/haproxy/config.rb

Overview

A frontend stanza — accepts connections and dispatches to a backend.

Properties (Read/Write)

  • #bind ⇒ String
    'Address and port to listen on, e.g. "*:80" or "0.0.0.0:443"'

    Property Attributes
    • requiredtrue
    
    
    51
    # File 'src/haproxy/lib/haproxy/config.rb', line 51
    
    property :bind, type: String, required: true, description: 'Address and port to listen on, e.g. "*:80" or "0.0.0.0:443"'
  • #mode ⇒ String (Default Value: 'http')
    'Proxying mode: "http" for layer-7 or "tcp" for layer-4 pass-through'

    Property Attributes
    • default'http'
    • allowed_values%w[http tcp],
    
    
    52
    # File 'src/haproxy/lib/haproxy/config.rb', line 52
    
    property :mode, type: String, default: 'http', allowed_values: %w[http tcp], description: 'Proxying mode: "http" for layer-7 or "tcp" for layer-4 pass-through'
  • #maxconn ⇒ Integer
    'Maximum number of concurrent connections accepted on this frontend'

    Property Attributes
    
    
    53
    # File 'src/haproxy/lib/haproxy/config.rb', line 53
    
    property :maxconn, type: Integer, description: 'Maximum number of concurrent connections accepted on this frontend'
  • #ssl ⇒ [TrueClass, FalseClass] (Default Value: false)
    'Whether to enable SSL/TLS termination on the bind line'

    Property Attributes
    • defaultfalse
    
    
    54
    # File 'src/haproxy/lib/haproxy/config.rb', line 54
    
    property :ssl, type: [TrueClass, FalseClass], default: false, description: 'Whether to enable SSL/TLS termination on the bind line'
  • #ssl_certificate ⇒ String
    'Path to the PEM file containing the certificate and key on the target host; required when ssl is true'

    Property Attributes
    
    
    55
    # File 'src/haproxy/lib/haproxy/config.rb', line 55
    
    property :ssl_certificate, type: String, description: 'Path to the PEM file containing the certificate and key on the target host; required when ssl is true'
  • #ssl_ciphers ⇒ String
    'Optional OpenSSL cipher string to restrict the accepted ciphers for SSL/TLS connections'

    Property Attributes
    
    
    56
    # File 'src/haproxy/lib/haproxy/config.rb', line 56
    
    property :ssl_ciphers, type: String, description: 'Optional OpenSSL cipher string to restrict the accepted ciphers for SSL/TLS connections'
  • #default_backend ⇒ String
    'Name of the backend that receives requests not matched by any use_backend rule'

    Property Attributes
    
    
    57
    # File 'src/haproxy/lib/haproxy/config.rb', line 57
    
    property :default_backend, type: String, description: 'Name of the backend that receives requests not matched by any use_backend rule'
  • #acls ⇒ Array (Default Value: [])
    'List of ACL declarations; each entry is a full ACL line, e.g. "is_api path_beg /api"'

    Property Attributes
    • default[]
    
    
    58
    # File 'src/haproxy/lib/haproxy/config.rb', line 58
    
    property :acls, type: Array, default: [], description: 'List of ACL declarations; each entry is a full ACL line, e.g. "is_api path_beg /api"'
  • #use_backends ⇒ Hash (Default Value: {})
    'Map of ACL name => backend name, rendered as "use_backend if " lines'

    Property Attributes
    • default{}
    
    
    59
    # File 'src/haproxy/lib/haproxy/config.rb', line 59
    
    property :use_backends, type: Hash, default: {}, description: 'Map of ACL name => backend name, rendered as "use_backend <backend> if <acl>" lines'
  • #options ⇒ Array (Default Value: [])
    'HAProxy option directives added to the stanza, e.g. ["forwardfor", "http-server-close"]'

    Property Attributes
    • default[]
    
    
    60
    # File 'src/haproxy/lib/haproxy/config.rb', line 60
    
    property :options, type: Array, default: [], description: 'HAProxy option directives added to the stanza, e.g. ["forwardfor", "http-server-close"]'
  • #extra ⇒ Array (Default Value: [])
    'Verbatim configuration lines appended to the frontend stanza for directives not covered by other properties'

    Property Attributes
    • default[]
    
    
    61
    # File 'src/haproxy/lib/haproxy/config.rb', line 61
    
    property :extra, type: Array, default: [], description: 'Verbatim configuration lines appended to the frontend stanza for directives not covered by other properties'

Properties (Read Only)

Constant Summary

Constants included from MintLogger

MintLogger::DEBUG, MintLogger::ERROR, MintLogger::FATAL, MintLogger::INFO, MintLogger::UNKNOWN, MintLogger::VERBOSE, MintLogger::WARN

Instance Attribute Summary

Attributes included from Mixins::Properties

#autopush_set_cache, #dynamic_create, #harvest_on_access, #harvest_undefined_only, #harvested, #tree_root

Instance Method Summary collapse

Methods included from Mixins::Properties

#[], #[]=, #add_validate_report_result, #armour_set_property, #array_contains?, #array_is_a?, #check_autopush, #check_stack_overflow, #clone_property_object, #cloner_handle_single_property, #coerce_single, #contains_as_string?, #display_validate_report_result, #double_initialize?, #dump_to_hash, #find_parent, #find_parent_by_identity, #generate_accessor_functions, #get_canonical_renamed, #get_from_opts, #get_my_name, #get_property, #get_property_item, #has?, included, #initialize_validate_report, #inspect, #is_cloned_object?, #is_mintpress_object?, #is_probably_canonical?, #is_set?, #local_debug, #local_info, #local_verbose, #mintpress_property_definitions, #place_object_by_identity, #process_properties, #prop_set?, #property, #property_definitions, #property_details, #property_is_simple_object?, #push_root!, #require_property, #require_update, #retrieve_docstring, #sanitize, #set_map_dirty, #set_property, #set_property_item, #show_short_array, #strip_defaults!, #synchronize, #uncloned_property_definitions, #update_map, #validate, #validate_generic, #validate_properties, #validate_property, #validate_required, #version_allowed?, #weakref

Methods included from MintLogger::Utils::Common

#boolean_val, #has_value?, #no_value?, #nvl, #path_as_symbol, #ruby_level_to_send

Constructor Details

#initialize(opts = {}) ⇒ Frontend

Returns a new instance of Frontend.