--- /dev/null
+#
+# Copyright (C) 2009 Thomas Heil <heil@terminal-consulting.de>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=haproxy
+PKG_VERSION:=1.3.22
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://haproxy.1wt.eu/download/1.3/src/
+PKG_MD5SUM:=b84e0935cfea99eda43645d53bb82367
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/haproxy
+ SECTION:=net
+ CATEGORY:=Network
+ DEPENDS:=+libpcre +libltdl
+ TITLE:=The Reliable, High Performance TCP/HTTP Load Balancer
+ URL:=http://haproxy.1wt.eu/
+ SUBMENU:=Proxy Servers
+endef
+
+define Package/haproxy/conffiles
+/etc/haproxy.cfg
+endef
+
+define Package/haproxy/description
+ Open source High Performance TCP/HTTP Load Balancer
+endef
+
+define Build/Compile
+ $(MAKE) TARGET=$(if $(CONFIG_LINUX_2_4),linux24,linux26) -C $(PKG_BUILD_DIR) \
+ DESTDIR="$(PKG_INSTALL_DIR)" \
+ CC="$(TARGET_CC)" \
+ CFLAGS="$(TARGET_CFLAGS)" \
+ LD="$(TARGET_CC)" \
+ LDFLAGS="$(TARGET_LDFLAGS)" \
+ all install
+endef
+
+define Package/haproxy/install
+ $(INSTALL_DIR) $(1)/usr/sbin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/haproxy $(1)/usr/sbin/
+ $(INSTALL_DIR) $(1)/etc
+ $(INSTALL_CONF) ./files/haproxy.cfg $(1)/etc/
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) ./files/haproxy.init $(1)/etc/init.d/haproxy
+endef
+
+$(eval $(call BuildPackage,haproxy))
--- /dev/null
+# Example configuration file for HAProxy 1.3, refer to the url below for
+# a full documentation and examples for configuration:
+# http://haproxy.1wt.eu/download/1.3/doc/configuration.txt
+
+
+# Global parameters
+global
+
+ # Log events to a remote syslog server at given address using the
+ # specified facility and verbosity level. Multiple log options
+ # are allowed.
+ #log 10.0.0.1 daemon info
+
+ # Specifiy the maximum number of allowed connections.
+ maxconn 32000
+
+ # Raise the ulimit for the maximum allowed number of open socket
+ # descriptors per process. This is usually at least twice the
+ # number of allowed connections (maxconn * 2 + nb_servers + 1) .
+ ulimit-n 65535
+
+ # Drop privileges (setuid, setgid), default is "root" on OpenWrt.
+ uid 0
+ gid 0
+
+ # Perform chroot into the specified directory.
+ #chroot /var/run/haproxy/
+
+ # Daemonize on startup
+ daemon
+
+ # Enable debugging
+ #debug
+
+ # Spawn given number of processes and distribute load among them,
+ # used for multi-core environments or to circumvent per-process
+ # limits like number of open file descriptors. Default is 1.
+ #nbproc 2
+
+
+# Example HTTP proxy listener
+listen my_http_proxy
+
+ # Bind to port 80 and 443 on all interfaces (0.0.0.0)
+ bind :80,:443
+
+ # We're proxying HTTP here...
+ mode http
+
+ # Simple HTTP round robin over two servers using the specified
+ # source ip 192.168.1.1 .
+ balance roundrobin
+ server server01 192.168.1.10:80 source 192.168.1.1
+ server server02 192.168.1.20:80 source 192.168.1.1
+
+ # Serve an internal statistics page on /stats:
+ stats enable
+ stats uri /stats
+
+ # Enable HTTP basic auth for the statistics:
+ stats realm HA_Stats
+ stats auth username:password
+
+
+# Example SMTP proxy listener
+listen my_smtp_proxy
+
+ # Disable this instance without commenting out the section.
+ disable
+
+ # Bind to port 25 and 587 on localhost
+ bind 127.0.0.1:25,127.0.0.1:587
+
+ # This is a TCP proxy
+ mode tcp
+
+ # Round robin load balancing over two servers on port 123 forcing
+ # the address 192.168.1.1 and port 25 as source.
+ balance roundrobin
+ server server01 192.168.1.10:123 source 192.168.1.1:25
+ server server02 192.168.1.20:123 source 192.168.1.1:25
+
+
+# Special health check listener for integration with external load
+# balancers.
+listen local_health_check
+
+ # Listen on port 60000
+ bind :60000
+
+ # This is a health check
+ mode health
+
+ # Enable HTTP-style responses: "HTTP/1.0 200 OK"
+ # else just print "OK".
+ #option httpchk
--- /dev/null
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2009 OpenWrt.org
+
+START=99
+STOP=80
+
+HAPROXY_BIN="/usr/sbin/haproxy"
+HAPROXY_CONFIG="/etc/haproxy.cfg"
+HAPROXY_PID="/var/run/haproxy.pid"
+
+start() {
+ [ -x "$HAPROXY_BIN" ] || return 1
+
+ start-stop-daemon -S -x $HAPROXY_BIN -- \
+ -f "$HAPROXY_CONFIG" -V -D -d -p "$HAPROXY_PID"
+}
+
+stop() {
+ start-stop-daemon -K -x $HAPROXY_BIN -p $HAPROXY_PID
+ rm -f $HAPROXY_PID
+}
+
+reload() {
+ [ ! -f "$HAPROXY_PID" ] && start
+ $HAPROXY_BIN -f $HAPROXY_CONFIG -p $HAPROXY_PID -st $(cat $HAPROXY_PID)
+}