aboutsummaryrefslogtreecommitdiffstats
path: root/config/haproxy
diff options
context:
space:
mode:
authorScott Ullrich <sullrich@pfsense.org>2009-11-16 21:58:44 -0500
committerScott Ullrich <sullrich@pfsense.org>2009-11-16 21:58:54 -0500
commit6751851c905c76e48186471a57e199031100a154 (patch)
tree4cb1e69f5c765c37fe7b568ae5e0a77f72d8a9ae /config/haproxy
parent042ce5512ec931a0a5cc92e9ca0ce38dca3631c7 (diff)
downloadpfsense-packages-6751851c905c76e48186471a57e199031100a154.tar.gz
pfsense-packages-6751851c905c76e48186471a57e199031100a154.tar.bz2
pfsense-packages-6751851c905c76e48186471a57e199031100a154.zip
Unbreak External address feature
Diffstat (limited to 'config/haproxy')
-rw-r--r--config/haproxy/haproxy.inc9
-rwxr-xr-xconfig/haproxy/haproxy_backends_edit.php67
2 files changed, 46 insertions, 30 deletions
diff --git a/config/haproxy/haproxy.inc b/config/haproxy/haproxy.inc
index 527546ff..9fdd7b49 100644
--- a/config/haproxy/haproxy.inc
+++ b/config/haproxy/haproxy.inc
@@ -121,12 +121,13 @@ function haproxy_configure() {
if(is_array($a_backends)) {
foreach ($a_backends as $backend) {
- if($backend['extaddr']=='any')
+
+ if($backend['extaddr'] == "any")
$listenip = "listen {$backend['name']}\t\t\t0.0.0.0:".$backend['port']."\n";
- else if($frontend['extaddr']=='')
- $listenip = "listen {$backend['name']}\t\t\t" . get_current_wan_address('wan').":" . $backend['port']."\n";
+ if($backend['extaddr'])
+ $listenip = "listen {$backend['name']}\t\t\t" . $backend['extaddr'] . ":" . $backend['port']."\n";
else
- $listenip = "listen {$backend['name']}\t\t\t" . $backend['extaddr'] . ":" . $backend['port']."\n";
+ $listenip = "listen {$backend['name']}\t\t\t" . get_current_wan_address('wan').":" . $backend['port']."\n";
fwrite ($fd, "{$listenip}");
fwrite ($fd, "\tmode\t\t\t".$backend['type'] . "\n");
diff --git a/config/haproxy/haproxy_backends_edit.php b/config/haproxy/haproxy_backends_edit.php
index 5751142b..d31430f5 100755
--- a/config/haproxy/haproxy_backends_edit.php
+++ b/config/haproxy/haproxy_backends_edit.php
@@ -422,26 +422,33 @@ set by the 'retries' parameter (2).</div>
<td width="78%" class="vtable" colspan="2">
<table width="100%">
<tr>
- <td width="20%" valign="top"><input type="radio" name="balance" id="balance" value="roundrobin"<?php if($pconfig['balance'] ==
-"roundrobin") echo " CHECKED"; ?>>Round robin</td><td>Each server is used in turns, according to their weights.
- This is the smoothest and fairest algorithm when the server's
- processing time remains equally distributed. This algorithm
- is dynamic, which means that server weights may be adjusted
- on the fly for slow starts for instance.</td></tr>
+ <td width="20%" valign="top">
+ <input type="radio" name="balance" id="balance" value="roundrobin"<?php if($pconfig['balance'] == "roundrobin") echo " CHECKED"; ?>>Round robin
+ </td>
+ <td>
+ Each server is used in turns, according to their weights.
+ This is the smoothest and fairest algorithm when the server's
+ processing time remains equally distributed. This algorithm
+ is dynamic, which means that server weights may be adjusted
+ on the fly for slow starts for instance.
+ </td>
+ </tr>
<tr><td valign="top"><input type="radio" name="balance" id="balance" value="source"<?php if($pconfig['balance'] ==
"source") echo " CHECKED"; ?>>Source</td><td>
- The source IP address is hashed and divided by the total
- weight of the running servers to designate which server will
- receive the request. This ensures that the same client IP
- address will always reach the same server as long as no
- server goes down or up. If the hash result changes due to the
- number of running servers changing, many clients will be
- directed to a different server. This algorithm is generally
- used in TCP mode where no cookie may be inserted. It may also
- be used on the Internet to provide a best-effort stickyness
- to clients which refuse session cookies. This algorithm is
- static, which means that changing a server's weight on the
- fly will have no effect.</td></tr>
+ The source IP address is hashed and divided by the total
+ weight of the running servers to designate which server will
+ receive the request. This ensures that the same client IP
+ address will always reach the same server as long as no
+ server goes down or up. If the hash result changes due to the
+ number of running servers changing, many clients will be
+ directed to a different server. This algorithm is generally
+ used in TCP mode where no cookie may be inserted. It may also
+ be used on the Internet to provide a best-effort stickyness
+ to clients which refuse session cookies. This algorithm is
+ static, which means that changing a server's weight on the
+ fly will have no effect.
+ </td>
+ </tr>
</table>
</td>
</tr>
@@ -450,7 +457,6 @@ set by the 'retries' parameter (2).</div>
<td width="78%" class="vtable" colspan="2">
<input id="stats_enabled" name="stats_enabled" type="checkbox" value="yes" <?php if ($pconfig['stats_enabled']=='yes') echo "checked"; ?> onclick='toggle_stats();'><br/>
EXAMPLE: haproxystats
-
</td>
</tr>
<tr align="left" id='stats_realm_row' name='stats_realm_row' <?if ($pconfig['stats_enabled']!='yes') echo "style=\"display: none;\"";?>>
@@ -500,17 +506,26 @@ set by the 'retries' parameter (2).</div>
<td width="78%" class="vtable">
<select name="extaddr" class="formfld">
<option value="" <?php if (!$pconfig['extaddr']) echo "selected"; ?>>Interface address</option>
- <?php if (is_array($config['virtualip']['vip'])):
- foreach ($config['virtualip']['vip'] as $sn): ?>
- <option value="<?=$sn['subnet'];?>" <?php if ($sn['subnet'] == $pconfig['extaddr']) echo "selected"; ?>><?=htmlspecialchars("{$sn['subnet']} ({$sn['descr']})");?></option>
- <?php endforeach;
- endif; ?>
+ <?php
+ if (is_array($config['virtualip']['vip'])):
+ foreach ($config['virtualip']['vip'] as $sn):
+ ?>
+ <option value="<?=$sn['subnet'];?>" <?php if ($sn['subnet'] == $pconfig['extaddr']) echo "selected"; ?>>
+ <?=htmlspecialchars("{$sn['subnet']} ({$sn['descr']})");?>
+ </option>
+ <?php
+ endforeach;
+ endif;
+ ?>
<option value="any" <?php if($pconfig['extaddr'] == "any") echo "selected"; ?>>any</option>
</select>
<br />
<span class="vexpl">
- If you want this rule to apply to another IP address than the IP address of the interface chosen above,
- select it here (you need to define <a href="firewall_virtual_ip.php">Virtual IP</a> addresses on the first). Also note that if you are trying to redirect connections on the LAN select the "any" option.</span></td>
+ If you want this rule to apply to another IP address than the IP address of the interface chosen above,
+ select it here (you need to define <a href="firewall_virtual_ip.php">Virtual IP</a> addresses on the first).
+ Also note that if you are trying to redirect connections on the LAN select the "any" option.
+ </span>
+ </td>
</tr>
<tr align="left">
<td width="22%" valign="top" class="vncellreq">Type</td>