def prep_apache_proxying
return unless MiqEnvironment::Command.supports_apache?
MiqApache::Control.kill_all
MiqUiWorker.install_apache_proxy_config
MiqWebServiceWorker.install_apache_proxy_config
endThere is only 1 definition of install_apache_proxy_config in miq_web_server_worker_mixin.rb:
def self.install_apache_proxy_config
options = {
:member_file => self::BALANCE_MEMBER_CONFIG_FILE,
:redirects_file => self::REDIRECTS_CONFIG_FILE,
:method => self::LB_METHOD,
:redirects => self::REDIRECTS,
:cluster => self::CLUSTER,
}
_log.info("[#{options.inspect}")
MiqApache::Conf.install_default_config(options)
endThose constants are overridden by miq_ui_worker.rb:
BALANCE_MEMBER_CONFIG_FILE = '/etc/httpd/conf.d/cfme-balancer-ui.conf'
REDIRECTS_CONFIG_FILE = '/etc/httpd/conf.d/cfme-redirects-ui'
STARTING_PORT = 3000
LB_METHOD = :busy
REDIRECTS = '/'
CLUSTER = 'evmcluster_ui'and miq_web_service_worker.rb:
BALANCE_MEMBER_CONFIG_FILE = '/etc/httpd/conf.d/cfme-balancer-ws.conf'
REDIRECTS_CONFIG_FILE = '/etc/httpd/conf.d/cfme-redirects-ws'
STARTING_PORT = 4000
LB_METHOD = :busy
REDIRECTS = ['/api']
CLUSTER = 'evmcluster_ws'And that calls miq_apache.rb:
def self.install_default_config(opts = {})
File.write(opts[:member_file], create_balancer_config(opts))
File.write(opts[:redirects_file], create_redirects_config(opts))
end
def self.create_balancer_config(opts = {})
lbmethod = case opts[:lbmethod]
when :busy then :bybusyness
when :traffic then :bytraffic
else :byrequests
end
"<Proxy balancer://#{opts[:cluster]}/ lbmethod=#{lbmethod}>\n</Proxy>\n"
end
def self.create_redirects_config(opts = {})
opts[:redirects].to_miq_a.each_with_object("") do |redirect, content|
content << "ProxyPass /proxy_pages !\n" if redirect == "/"
content << "ProxyPass /self_service !\n" if redirect == "/"
content << "ProxyPass #{redirect} balancer://#{opts[:cluster]}#{redirect}\n"
content << "ProxyPassReverse #{redirect} balancer://#{opts[:cluster]}#{redirect}\n"
end
end