Enterprise open source portal built by and for the higher education community.
This project is maintained by uPortal-Project
F5’s BIG-IP Platform (commonly called F5) is a popular solution for a dedicated load balancer. It is feature-rich with many options. Here is one approach used at University of California, Merced.
This F5 installation has one Global Traffic Manager (GTM) and two Local Traffic Managers (LTMs). The GTM manages DNS and initial traffic, redirecting to an LTM based on configuration. The LTMs actually perform much of the processing of the network packets before passing them on to uPortal. In addition, F5 will handle SSL encryption.
In this example, the main DNS service is configured to alias the uPortal service to the F5 GTM.
You will need to coordinate a few IP/DNS changes up front with your network team.
Item | Example value for this install |
---|---|
CNAME of uPortal URL to F5 managed A record | my.ucmerced.edu -> my.gl.ucmerced.edu |
CNAME of F5 managed A record in DNS as external | my.gl.ucmerced.edu -> F5 DNS services |
uPortal Virtual IPs (one per LTM) | 169.236.5.27, 169.236.79.27 |
SSL key and certificate | my.key, my.cert |
String to grep from the landing page of the tomcats | “portal” |
Details for setting up F5 are beyond this document. These items are for setting up a new uPortal service.
The first systems to configure are the LTMs.
Log into each LTM web client (requires admin access).
This step makes available the key and certificate for the uPortal web service. This is similar to configuring Apache to front uPortal and handle SSL traffic. The key and certificate files are the same as those expected by Apache for SSL.
A monitor checks uPortal servers for availability. It essentially polls each server, looking for a specific response, to confirm it is operational.
GET / HTTP/1.1\r\nHost: \r\n\r\n
A pool is a list of the servers that form this uPortal service for an LTM. A common approach is to house an LTM and each data center. The pool would then consist of the uPortal servers in that data center.
The SSL Profile connects the SSL key and certificate with the uPortal pool(s).
This step creates a redirect for traffic on the uPortal virtual IP, port 80, to HTTPS (port 443).
This step routes incoming traffic on the virtual IP for uPortal to the uPortal servers.
Once the LTMs are configured, we can configure the GTM. GTM configure is much easier. Also, configuring the GTM from one LTM web client is sufficient as they all point to a single GTM.
Log into the GTM (requires admin access) web client.
The pool is the definitive list of the uPortal virtual IPs pointing to all active LTMs.
This step assumes that DNS is set up correctly both on the global DNS and the GTM DNS service.
The following changes are done in
To support decryption at the F5, some additional attributes need to be set for the connector(s) receiving traffic from the F5. This change configures Tomcat to accept unencrypted packets but consider them secure.
<Connector port="8080" protocol="HTTP/1.1"
...
proxyPort="443"
emptySessionPath="true"
scheme="https"
secure="true"
/>
Remote IP Valve
for Logging and Session ID GenerationIt is important that Tomcat and uPortal receive the user IPs rather than the load-balancer IPs. It is used for logging and also generating the user session key. uPortal will use IP plus a small random number to create session keys. So without this valve, there will be high likelyhood of users inadvertantly sharing sessions. Add the remote IP valve next to the other valves near the bottom of the server.xml
file:
<Valve className="org.apache.catalina.valves.RemoteIpValve"
internalProxies="10\.22\.1\.196, 10\.22\.2\.252"
remoteIpHeader="x-forwarded-for"
remoteIpProxiesHeader="X-Forwarded-For"
protocolHeader="x-forwarded-proto" />
Adjust the IPs to match the ones for your load balancer(s).
See BIG-IP Platform