| #!/bin/sh | |
| # Licensed to the Apache Software Foundation (ASF) under one | |
| # or more contributor license agreements. See the NOTICE file | |
| # distributed with this work for additional information | |
| # regarding copyright ownership. The ASF licenses this file | |
| # to you under the Apache License, Version 2.0 (the | |
| # "License"); you may not use this file except in compliance | |
| # with the License. You may obtain a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, | |
| # software distributed under the License is distributed on an | |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| # KIND, either express or implied. See the License for the | |
| # specific language governing permissions and limitations | |
| # under the License. | |
| # Generate a minimal HTTPD proxy balancer configuration | |
| here=`echo "import os; print os.path.realpath('$0')" | python`; here=`dirname $here` | |
| mkdir -p $1 | |
| root=`echo "import os; print os.path.realpath('$1')" | python` | |
| cat >>$root/conf/vhost.conf <<EOF | |
| # Generated by: proxy-conf $* | |
| # Do not proxy admin pages | |
| ProxyPass /balancer-manager ! | |
| ProxyPass /server-status ! | |
| ProxyPass /proxy ! | |
| # Enable load balancing | |
| ProxyPass / balancer://cluster/ | |
| <Proxy balancer://cluster> | |
| Require all granted | |
| ProxySet lbmethod=byrequests | |
| </Proxy> | |
| <Location /> | |
| RequestHeader set X-Forwarded-HTTPS %{HTTPS}s | |
| RequestHeader set X-Forwarded-Port %{SERVER_PORT}s | |
| </Location> | |
| # Enable balancer manager | |
| <Location /balancer-manager> | |
| SetHandler balancer-manager | |
| HostnameLookups on | |
| </Location> | |
| EOF | |
| cat >>$root/conf/adminauth.conf <<EOF | |
| # Generated by: proxy-conf $* | |
| # Allow the server admin to manage the load balancer | |
| <Location /balancer-manager> | |
| Require user admin | |
| </Location> | |
| EOF | |