Which vService type should I choose for my application?
Short answer
The choice is made according to the protocol of the traffic: if the traffic is HTTP or HTTPS, HTTP; if it is a non-HTTP TCP application (database, RDP, LDAP, SMTP…), L7 TCP; if UDP, IP protocols without a port concept or responses bypassing TR7 (Direct Server Return) are required, Network is selected. The type is selected from the Type field when the vService is created and cannot be changed later; for this reason, the choice must be made correctly from the start.
How Does It Work?
The decision is made with three questions:
- Is the traffic HTTP? Website, REST API, gRPC, WebSocket → HTTP. In this type, WAF, AGS, Cache, Compression, Actions that edit headers and path-based routing (Conditional Backend Services) can be used.
- If it is not HTTP, is it TCP? TCP applications that work at the connection level → L7 TCP. TLS termination (TCP + TLS), SNI-based routing and L7 DDoS & Threat Protection also exist in this type.
- UDP, IP traffic without a port concept or distribution at the L3/L4 level? DNS, NTP, Syslog, SIP, RADIUS, ICMP/GRE; responses bypassing TR7 (Direct Server Return) → Network.
Selection Table
| Application | Recommended type |
|---|---|
| Website, web application, REST API (HTTP / HTTPS / HTTP/2 / HTTP/3) | HTTP |
| WebSocket, gRPC | HTTP |
| SQL Server, Oracle, MySQL, PostgreSQL | L7 TCP |
| RDP server farm | L7 TCP |
| LDAP / Active Directory, SMTP | L7 TCP |
| MQTT, AMQP, FIX | L7 TCP |
| FTP (control channel), SFTP | L7 TCP |
| DNS, NTP, Syslog, RADIUS, SNMP | Network (UDP - L4) |
| SIP, RTP | Network |
| Protocols without a port concept, such as ICMP and GRE | Network (ANY - L3) |
| High-volume traffic whose responses must bypass TR7 | Network (LB Mode: Direct Server Return) |
Protocol groups and the types used are also listed in the docs: vService · Supported Protocols.
In TR7
- The type is selected from the Type field in the form opened with Load Balancer → Load Balancer vService List → Add; the default is HTTP. While an existing vService is being edited, the Type field is locked.
- The selected type determines which fields appear in the form. For example, Virtual Hosting, WAF and Cache appear only in HTTP; Protocol (TCP - L4 / UDP - L4 / ANY - L3), LB Mode and Port Range appear only in Network.
- Feature differences of the types: What are the feature differences between HTTP, L7 TCP and Network vServices?
Common Misconceptions
- "Since HTTPS traffic is encrypted, L7 TCP should be selected." The HTTP type terminates TLS on TR7 and offers all HTTP features with HTTPS as well; HTTP is selected for web traffic (Should I use an HTTP vService or an L7 TCP vService for my HTTPS site?).
- "Network should always be preferred, because it is the lightest." Since Network does not read the content, its processing load is low, but it does not include TLS termination, content-based routing, Actions and profiles.
- "If I select the wrong type, I'll fix it later." The type cannot be changed; a new vService must be created (Can I change the type of a vService later?).
How it is done in the documentation
