lmc/nodebalancers/config/index.shtml

223 lines
9.2 KiB
Plaintext
Raw Normal View History

2024-08-08 19:46:58 -04:00
<!--
This file is part of Linode Manager Classic.
Linode Manager Classic is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Linode Manager Classic is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Linode Manager Classic. If not, see <https://www.gnu.org/licenses/>.
-->
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>LMC - NodeBalancers</title>
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<link rel="stylesheet" type="text/css" href="config.css" />
<script src="config.js" type="module"></script>
</head>
<body>
<!--#include virtual="/include/header.html"-->
<div id="main-content" class="wrapper">
<div id="top-links"><a href="/nodebalancers">NodeBalancers</a> » <span id="nodebalancer-tag"><a id="nodebalancer-tag-link" href=""></a> » </span><a id="nodebalancer-label" href="/nodebalancers/balancer?nbid=0"></a> » <span id="config-label" class="top-links-title"></span></div>
<div id="config">
<table class="lmc-table nonzero">
<thead>
<tr>
<td colspan="7">Nodes</td>
</tr>
<tr>
<td>Label</td>
<td>Address</td>
<td>Port</td>
<td>Weight</td>
<td>Mode</td>
<td>Status</td>
<td class="center-cell">Options</td>
</tr>
</thead>
<tbody id="nodes-table"></tbody>
</table>
<p class="sub-links nonzero"><a href="/nodebalancers/node?nbid=0&nbcid=0&nbnid=0">Add Node</a></p>
<table id="config-table" class="lmc-table">
<thead>
<tr>
<td colspan="3">Edit Configuration</td>
</tr>
<tr>
<td colspan="3">Configuration Settings</td>
</tr>
</thead>
<tbody>
<tr class="lmc-tr3">
<td>Port</td>
<td><input id="port" type="number" min="1" max="65535" value="80" size="4" /></td>
<td class="info">Listen on this port</td>
</tr>
<tr class="lmc-tr3">
<td>Protocol</td>
<td>
<select id="protocol">
<option value="tcp">TCP</option>
<option selected value="http">HTTP</option>
<option value="https">HTTPS</option>
</select>
</td>
<td></td>
</tr>
<tr class="lmc-tr3 protocol-show protocol-show-tcp">
<td>Proxy Protocol</td>
<td>
<select id="proxy-protocol">
<option selected value="none">None</option>
<option value="v1">v1</option>
<option value="v2">v2</option>
</select>
</td>
<td class="info">Proxy protocol preserves initial TCP connection information. Consult the <a target="_blank" href="https://www.linode.com/docs/products/networking/nodebalancers/guides/proxy-protocol/">Proxy Protocol guide</a> for information on the differences between each option.</td>
</tr>
<tr class="lmc-tr3">
<td>Algorithm</td>
<td>
<select id="algorithm">
<option selected value="roundrobin">Round Robin</option>
<option value="leastconn">Least Connections</option>
<option value="source">Source IP</option>
</select>
</td>
<td class="info">Roundrobin assigns connections to each backend sequentially. Least connections choose the backend with the least number of current connections. Source uses the client's IPv4 address</td>
</tr>
<tr class="lmc-tr3">
<td>Session Stickiness</td>
<td>
<select id="stickiness">
<option value="none">None</option>
<option selected value="table">Table</option>
<option value="http_cookie">HTTP Cookie</option>
</select>
</td>
<td class="info">Route subsequent requests from a client to the same backend</td>
</tr>
</tbody>
<tbody class="lmc-tbody-head">
<tr class="noshow">
<td colspan="3"></td>
</tr>
<tr class="protocol-show protocol-show-https">
<td colspan="3">SSL Settings</td>
</tr>
</tbody>
<tbody>
<tr class="lmc-tr3 protocol-show protocol-show-https replace-cert">
<td>Common Name</td>
<td id="common-name"></td>
<td class="info">Need help with SSL? - <a target="_blank" href="https://www.linode.com/docs/products/networking/nodebalancers/guides/configure/">NodeBalancer Reference Guide</a></td>
</tr>
<tr class="lmc-tr3 protocol-show protocol-show-https replace-cert">
<td>Fingerprint</td>
<td id="fingerprint" colspan="2"></td>
</tr>
<tr class="lmc-tr3 protocol-show protocol-show-https">
<td>SSL Cipher Suite</td>
<td>
<select id="cipher-suite">
<option selected value="recommended">Recommended</option>
<option value="legacy">Legacy</option>
</select>
</td>
<td class="info">Select 'recommended' to use only strong encryption. Select 'legacy' to enable weak encryption that supports older browsers. You really want to select 'recommended'. <a target="_blank" href="https://www.linode.com/docs/products/networking/nodebalancers/guides/configure/">NodeBalancer Reference Guide</a></td>
</tr>
<tr class="lmc-tr3 protocol-show protocol-show-https replace-cert">
<td></td>
<td><a id="replace-link" href="#">Replace Certificate</a></td>
<td></td>
</tr>
<tr class="lmc-tr3 protocol-show protocol-show-https replace-cert replace-cert-only">
<td>SSL Certificate</td>
<td colspan="2"><textarea id="ssl-cert" rows="6" cols="64" placeholder="Please provide your SSL certificate (including chained intermediate certificates if needed)"></textarea></td>
</tr>
<tr class="lmc-tr3 protocol-show protocol-show-https replace-cert replace-cert-only">
<td>Private Key</td>
<td colspan="2"><textarea id="ssl-key" rows="6" cols="64" placeholder="Please provide your unpassphrased SSL private key"></textarea></td>
</tr>
</tbody>
<tbody class="lmc-tbody-head">
<tr class="noshow">
<td colspan="3"></td>
</tr>
<tr>
<td colspan="3">Active Health Check</td>
</tr>
</tbody>
<tbody>
<tr class="lmc-tr3">
<td>Health Check Type</td>
<td>
<select id="check-type">
<option selected value="none">None</option>
<option value="connection">TCP Connection</option>
<option value="http">HTTP Valid Status</option>
<option value="http_body">HTTP Body Regex</option>
</select>
</td>
<td class="info">Active health checks proactively check the health of the backend nodes. 'TCP Connection' requires a successful TCP handshake. 'HTTP Valid Status' requires a 2xx or 3xx response from the backend node. 'HTTP Body Regex' uses a regex to match against an expected result body.</td>
</tr>
<tr class="lmc-tr3 check-show check-show-connection check-show-http check-show-http_body">
<td>Check Interval</td>
<td><input id="check-interval" type="number" min="1" value="5" size="4" /></td>
<td class="info">Seconds between health check probes</td>
</tr>
<tr class="lmc-tr3 check-show check-show-connection check-show-http check-show-http_body">
<td>Check Timeout</td>
<td><input id="check-timeout" type="number" min="1" max="30" value="3" size="4" /></td>
<td class="info">Seconds to wait before considering the probe a failure. 1-30. Must be less than check interval.</td>
</tr>
<tr class="lmc-tr3 check-show check-show-connection check-show-http check-show-http_body">
<td>Check Attempts</td>
<td><input id="check-attempts" type="number" min="1" max="30" value="2" size="4" /></td>
<td class="info">Number of failed probes before taking a node out of rotation. 1-30</td>
</tr>
<tr class="lmc-tr3 check-show check-show-http check-show-http_body">
<td>Check HTTP Path</td>
<td><input id="check-path" type="text" value="/" size="24" /></td>
<td class="info">When check=http, the path to request</td>
</tr>
<tr class="lmc-tr3 check-show check-show-http_body">
<td>Expected HTTP Body</td>
<td><textarea id="check-body" rows="4" cols="40"></textarea></td>
<td class="info">When check=http, a regex to match within the first 16KB of the response body</td>
</tr>
</tbody>
<tbody class="lmc-tbody-head">
<tr class="noshow">
<td colspan="3"></td>
</tr>
<tr>
<td colspan="3">Passive Checks</td>
</tr>
</tbody>
<tbody>
<tr class="lmc-tr3">
<td>Enabled</td>
<td><input checked id="passive" type="checkbox" /></td>
<td class="info">Enable passive checks based on observing communication with backend nodes.</td>
</tr>
<tr class="lmc-tr3">
<td></td>
<td><button disabled id="save-button" type="button">Save Changes</button></td>
<td></td>
</tr>
</tbody>
</table>
</div>
</div>
</body>
</html>