如何使用Puppet';什么是Apache模块?
我想使用Puppet部署和配置Apache。我看到有一个Apache模块(),但我不清楚如何设置Apache服务器来处理大量的location/ProxyPass对,其形式如下:如何使用Puppet';什么是Apache模块?,apache,puppet,mod-proxy,proxypass,Apache,Puppet,Mod Proxy,Proxypass,我想使用Puppet部署和配置Apache。我看到有一个Apache模块(),但我不清楚如何设置Apache服务器来处理大量的location/ProxyPass对,其形式如下: <IfModule mod_proxy.c> <Location /foo> ProxyPass http://fooserve.llnl.gov:8080/foo ProxyPassReverse http://fooserve.llnl.gov
<IfModule mod_proxy.c>
<Location /foo>
ProxyPass http://fooserve.llnl.gov:8080/foo
ProxyPassReverse http://fooserve.llnl.gov:8080/foo
</Location>
<Location /bar>
ProxyPass http://barserve.llnl.gov:8080/bar
ProxyPassReverse http://barserve.llnl.gov:8080/bar
</Location>
</IfModule>
ProxyPasshttp://fooserve.llnl.gov:8080/foo
ProxyPassReversehttp://fooserve.llnl.gov:8080/foo
ProxyPasshttp://barserve.llnl.gov:8080/bar
ProxyPassReversehttp://barserve.llnl.gov:8080/bar
我看到了关于虚拟主机的文档,但在我看来这是不同的。我真正想要的是一次传递一大堆location/URI对。这是可能的吗?您可以使用
目录
和代理通行证
来完成,如下所示:
apache::vhost { 'x.y.z':
...
directories => [
{
path => '/foo',
provider => 'location',
proxy_pass => [ { url => 'http://fooserve.llnl.gov:8080/foo' } ],
},
{
path => '/bar',
provider => 'location',
proxy_pass => [ { url => 'http://fooserve.llnl.gov:8080/bar' } ],
},
],
...
}
<IfModule mod_proxy.c>
ProxyPass /foo http://fooserve.llnl.gov:8080/foo
ProxyPassReverse /foo http://fooserve.llnl.gov:8080/foo
ProxyPass /bar http://barserve.llnl.gov:8080/bar
ProxyPassReverse /bar http://barserve.llnl.gov:8080/bar
</IfModule>
apache::vhost { 'x.y.z':
...
proxy_pass => [
{
path => '/foo',
url => 'http://http://fooserve.llnl.gov:8080/foo',
},
{
path => '/bar',
url => 'http://http://fooserve.llnl.gov:8080/bar',
},
],
...
}
这将生成您描述的Apache配置文件。另一种方法是让所有的ProxyPass
指令都处于VirtualHost级别,如下所示:
apache::vhost { 'x.y.z':
...
directories => [
{
path => '/foo',
provider => 'location',
proxy_pass => [ { url => 'http://fooserve.llnl.gov:8080/foo' } ],
},
{
path => '/bar',
provider => 'location',
proxy_pass => [ { url => 'http://fooserve.llnl.gov:8080/bar' } ],
},
],
...
}
<IfModule mod_proxy.c>
ProxyPass /foo http://fooserve.llnl.gov:8080/foo
ProxyPassReverse /foo http://fooserve.llnl.gov:8080/foo
ProxyPass /bar http://barserve.llnl.gov:8080/bar
ProxyPassReverse /bar http://barserve.llnl.gov:8080/bar
</IfModule>
apache::vhost { 'x.y.z':
...
proxy_pass => [
{
path => '/foo',
url => 'http://http://fooserve.llnl.gov:8080/foo',
},
{
path => '/bar',
url => 'http://http://fooserve.llnl.gov:8080/bar',
},
],
...
}