Deprecated.
NAME
Clustericious::Command::apache - Clustericious command to stat Apache
VERSION
version 1.29
DESCRIPTION
Start an Apache web server. The Apache start and stop commands recognize these options in their configuration section:
- pid_file
-
The location to the pid file. This should usually be the same as the
PidFile
directive in your Apache configuration.
EXAMPLES
These examples are for Apache 2.4. Getting them to work on Apache 2.2 will require some tweaking.
mod_proxy with hypnotoad
Create a apache24-proxy.conf:
---
% my $root = dir "@{[ home ]}/var/run";
% $root->mkpath(0,0700);
url: http://<%= $host %>:<%= $port %>
start_mode:
- hypnotoad
- apache
apache:
args: -f <%= $root %>/apache.<%= $port %>.conf -E <%= $root %>/apache.<%= $port %>.startup.log
pid_file: <%= $root %>/apache.<%= $port %>.pid
autogen:
filename: <%= $root %>/apache.<%= $port %>.conf
content: |
LoadModule unixd_module modules/mod_unixd.so
LoadModule headers_module modules/mod_headers.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule log_config_module modules/mod_log_config.so
Listen <%= $host %>:<%= $port %>
ServerName <%= $host %>
PidFile <%= $root %>/apache.<%= $port %>.pid
ErrorLog <%= $root %>/apache.<%= $port %>.error.log
LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog <%= $root %>/apache.<%= $port %>.access.log common
<Location />
ProxyPreserveHost On
ProxyPass http://localhost:<%= $port %>/
ProxyPassReverse http://localhost:<%= $port %>/
RequestHeader append set X-Forward-Proto
<RequireAll>
Require all granted
</RequireAll>
</Location>
hypnotoad:
listen:
- http://127.0.0.1:<%= $port %>
pid_file: <%= $root %>/hypnotoad.<%= $port %>.pid
Note that this configuration binds hypnotoad to localhost
and Apache to the IP that you pass in. Then call from your application's config file:
---
# If hostname() (should be the same as what the command hostname
# prints) is not a valid address that you can bind to, or if
# your hostname is the IP as localhost, then change the host to
# a literal IP address
% extend_config 'apache24-proxy', host => hostname(), port => 3001;
CGI
CGI is not recommends, for reasons that are hopefully obvious. It does allow you to run Clustericious from
Create a apache24-cgi.conf:
---
% my $root = dir "@{[ home ]}/var/run";
% $root->mkpath(0,0700);
url: http://<%= $host %>:<%= $port %>
start_mode: apache
apache:
args: -f <%= $root %>/apache.<%= $port %>.conf -E <%= $root %>/apache.<%= $port %>.startup.log
pid_file: <%= $root %>/apache.<%= $port %>.pid
autogen:
filename: <%= $root %>/apache.<%= $port %>.conf
content: |
LoadModule alias_module modules/mod_alias.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule unixd_module modules/mod_unixd.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule env_module modules/mod_env.so
LoadModule log_config_module modules/mod_log_config.so
Listen <%= $host %>:<%= $port %>
ServerName <%= $host %>
PidFile <%= $root %>/apache.<%= $port %>.pid
ErrorLog <%= $root %>/apache.<%= $port %>.error.log
LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog <%= $root %>/apache.<%= $port %>.access.log common
PassEnv PERL5LIB
PassEnv HOME
ScriptAlias / <%= $0 %>/
<Directory <%= $0 %>/ >
Options +ExecCGI
SetHandler cgi-script
<RequireAll>
Require all granted
</RequireAll>
</Directory>
Then call from your application's config file:
---
% extend_config 'apache24-cgi', host => 'localhost', port => 3001;
SEE ALSO
AUTHOR
Original author: Brian Duggan
Current maintainer: Graham Ollis <plicease@cpan.org>
Contributors:
Curt Tilmes
Yanick Champoux
COPYRIGHT AND LICENSE
This software is copyright (c) 2013 by NASA GSFC.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.