1import{M as i}from"./index-DP6jQfmA.js";import{b as n,m as a}from"./web-BP1PS1fb.js";function t(o){const e=Object.assign({p:"p",h2:"h2",h3:"h3",h4:"h4",h5:"h5",code:"code"},i(),o.components);return[n(e.p,{children:`In the config tab there is a subitem "Ports". Here you 2can configure the ports for your stackitems.`}),` 3`,n(e.h2,{children:"Standard options"}),` 4`,n(e.h3,{children:"Protocol"}),` 5`,n(e.p,{children:"Determines what network protocol a service will use."}),` 6`,n(e.h4,{children:"HTTP"}),` 7`,n(e.p,{children:`This protocol is implemented as a "layer 7" connection handler 8to manage incoming connections on port 80 and 443 (if HTTPS is 9enabled).`}),` 10`,n(e.p,{children:`It supports HTTP 1.1 and HTTP/2 connections. You need to choose this 11protocol to enable SSL management (Certificates and 12Let's Encrypt) via the Platform.`}),` 13`,n(e.p,{children:`Incoming connections are enriched with additional headers such as 14X-Forwarded-For, X-Forwarded-Proto, X-REAL-IP, X-Country (Country 15ISO code).`}),` 16`,n(e.h5,{children:"Load balancing modes"}),` 17`,n(e.p,{get children(){return n(e.code,{children:"SINGLE, RANDOM, COOKIE, SOURCE"})}}),` 18`,n(e.h4,{children:"TCP"}),` 19`,n(e.p,{children:`This protocol is implemented as a "layer 4" connection handler 20and manages incoming connections on TCP level.`}),` 21`,n(e.p,{children:`TCP connections are "Stateful" meaning that for each connection 22created, a socket is assigned to your application.`}),` 23`,n(e.p,{children:`Your application needs to be scaled to handle al concurrent 24connections. Incoming connections can be load balanced over multiple 25application instances deployed on the Platform. 26Incoming connections are not enriched by the Platform and are directly 27forwarded to the application.`}),` 28`,n(e.h5,{children:"Load balancing modes"}),` 29`,n(e.p,{get children(){return n(e.code,{children:"SINGLE, RANDOM, SOURCE"})}}),` 30`,n(e.h4,{children:"UDP"}),` 31`,n(e.p,{children:`This protocol is implemented as a "layer 4" connection handler 32and manages incoming connections on TCP level. UDP connections are 33"Stateless" meaning that it does not require to establish a socket 34for each incoming connection to your application.`}),` 35`,n(e.p,{children:`Incoming connections are not enriched by the Platform and are directly 36forwarded to the application.`}),` 37`,n(e.p,{children:`In contrast to TCP, UDP can not be load balanced and connections are 38delivered to a single instance of your application. Your application 39will also be configured in "Routed" mode via Port Natting on the 40Platform gateway (TEP)`}),` 41`,n(e.h5,{children:"Load balancing modes"}),` 42`,n(e.p,{get children(){return n(e.code,{children:"NONE"})}}),` 43`,n(e.h3,{children:"Service"}),` 44`,n(e.p,{children:`The port a service will use inside it's own container. The services are 45setup as network interfaces listening on 127.0.0.1`}),` 46`,n(e.p,{children:`REMARK: Don't use 47localhost in your configuration, always use 127.0.0.1 with the 48internal port.`}),` 49`,n(e.h3,{children:"Public"}),` 50`,n(e.p,{children:"Whether or not to allow external access to a service."}),` 51`,n(e.h3,{children:"Public Port"}),` 52`,n(e.p,{children:`The external port your service will be available on, if it's made 53public.`}),` 54`,n(e.h2,{children:"Advanced options"}),` 55`,n(e.h3,{children:"WebSocket"}),` 56`,n(e.p,{children:`Use HTTP(S) to handle Websocket connections to be routed to the 57appointed websocket service. Allowing to connect in a secure way to 58the websocket service without exposing it directly over a less secure 59TCP port.`}),` 60`,n(e.p,{children:`Since websockets are not compatible with HTTP/2, HTTP/2 will be 61disabledwhen this option is enabled.`}),` 62`,n(e.h3,{children:"SSL Mode"}),` 63`,n(e.p,{children:`The SSL mode for a configured port defines the behaviour of SSL enabled 64ports, both publicly and internally. SSL modes that use SSL offloading 65on the gateway can only be chosen after having enabled HTTPS & SSL 66using the corresponding menu on the left.`}),` 67`,n(e.h4,{children:"DIRECT"}),` 68`,n(e.p,{children:`No SSL offloading on the gateway. This is the default mode 69when no SSL certificates are attached to any of the application 70URLs. For a TCP port, this will allow you to expose the internally 71configured certificate publicly.`}),` 72`,n(e.h4,{children:"OFFLOAD"}),` 73`,n(e.p,{children:`SSL offloading on the gateway with a valid certificate, the 74backend uses a plain TCP port without SSL. This mode is selected by 75default for an HTTP port when an SSL certificate is available for at 76least one application URL.`}),` 77`,n(e.h4,{children:"TRANSPARENT"}),` 78`,n(e.p,{children:`SSL offloading on the gateway with a valid certificate, 79the backend uses a TCP port with SSL enabled. Use this to serve a
80valid certificate to the public while the backend service can use an 81invalid certificate (e.g. self-signed).`}),` 82`,n(e.h4,{children:"STRIP"}),` 83`,n(e.p,{children:`No SSL offloading on the gateway, the backend uses a TCP port 84with SSL enabled. The public port will have no SSL enabled. Warning: 85This makes the public port insecure, protect this service with 86allowed IPs.`}),` 87`,n(e.h3,{children:"Load balancing mode"}),` 88`,n(e.p,{children:`When multiple instances of a stack item are running, the load balancing 89handles the dispatching of the connections to the different instances 90based on the selected mode.`}),` 91`,n(e.h4,{children:"SINGLE"}),` 92`,n(e.p,{children:`All connections are delivered to 1 single instance . When the 93instance becomes unavailable, a new instance is selected to handle 94all new connections.`}),` 95`,n(e.h4,{children:"RANDOM"}),` 96`,n(e.p,{children:`Incoming connections are spread randomly over all running 97instances.`}),` 98`,n(e.h4,{children:"COOKIE"}),` 99`,n(e.p,{children:`When selecting protocol HTTP, a cookie is injected in the 100request by the load balancer. An instance is chosen based on the 101cookie value. A new instance is selected when the previous instances 102becomes unavailable. An instance is chosen based on 103the source ip address of the requester.`})]}function l(o={}){const{wrapper:e}=Object.assign({},i(),o.components);return e?n(e,a(o,{get children(){return n(t,o)}})):t(o)}export{l as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.