The Web Traffic Manager (WTM) routes Internet traffic to multiple services based on the request. WTM allows configuration and code changes to be performed with zero down time. This enables a significant amount of flexibility when providing multiple web services on one domain.
- Route one domain name to multiple web servers (reverse proxy).
- Load balance over multiple backend web servers.
- Automatically reject excessive connections or requests from an IP address (DoS).
- Make an external service appear as part of your domain.
- Use your own SSL certificate to secure services (SSL offloading).
- Improve performance by connection caching.
- Marshal many client connections to few backend connections with keep-alive.
- Provide HTTP/1.1 and SSL to older web services.
- Add and remove backend web servers without downtime.
- Configure redirects to other pages and servers.
- Modify headers and content on the fly using custom filters.
- Generate content using custom handlers (lightweight, stream level HttpServlets).
- Create and run basic HttpServlets (more support soon).
- Add and modify routes, filters and handlers without a restart.
- RESTful interface for changing settings and routes.
- Automatically retry when internal connection errors occur.
- Use as HTTP and SSL proxy for routing internal traffic out of a firewall.
- Support for SMTP relay and custom mail handlers.
- Automatically phase in code changes without dropping connections.
Web Traffic Manager is distributed as a core jar file with additional jars for each protocol.
To launch, issue the following command:
java -jar wtm-core.jar -cp wtm-http.jar:wtm-smtp.jar -http 8080 -smtp 8025
This will start WTM listening for HTTP connections on port 8080 and SMTP connections on port 8025. Please note, adding a classpath after the core jar means classes can be reloaded without a restart by touching the corresponding routes or filters file or updating the configuration by internal interfaces.
Upon first launch WTM will create the following files:
- http_routes.txt - Used to specify routes for HTTP services (based on path).
- smtp_routes.txt - Used to specify routes for SMTP services (based on email).
- http_filters.txt - Used to specify classes that modify requests and response data.
- smtp_filters.txt - Used to specify classes that modify commands and actions.
- settings.properties - Used to customise how WTM runs and the features enabled.
Routes and settings are automatically loaded and used without a restart within 5 seconds of modification.
To start as an SSL service:
java -jar -Djavax.net.ssl.keyStore=mykeystore -Djavax.net.ssl.keyStorePassword=mykeypass wtm.jar -cp wtm-http.jar:wtm-example.jar -https 8443
You will need to provide a Java key store containing your domain's certificate.
Web Traffic Manager is designed to be very fast.
Running WTM on a low-end, 2GHz dual core machine with 50 concurrent requests yields the following results:
Over 12,000 requests per second when returning small responses. (ab results
Over 400 Mbytes/sec data transfer per second when returning large responses. (ab results
Graphical User Interface
A web-based configuration system is now available. More details soon.
Status and Licencing
Please Contact JADS Limited