Information Systems:WebSmart Apache Instances on Bart
Overview
This page discusses the Apache HTTP server instances associated with WebSmart on Bart.
Outline of our (unique) configuration
There are 3 WebSmart Apache instances on Bart, designated as Web Orders, Infonet, and Web Test. As explained in this article, these designations are slightly misleading. To explain why, it is important to emphasize the difference between an Apache instance and a website. An Apache instance is a web server, communicating over an IP and a port (or multiple IPs and/or multiple ports), and serving out the files (web pages) in a directory. A website must obviously involve an Apache instance (for it to be served), but more specifically, a website also describes the folders, libraries, and files that make up the web pages (HTML files, CGI programs etc.). To elaborate:
Apache instances:
| Apache instance | Listening on | Intended Use |
|---|---|---|
| WEBSMART | 172.30.18.10:80, 172.30.18.10:443, 172.30.18.10:8150 | Web Orders |
| WEBINTER | 172.30.18.5:80, 172.30.18.5:443 | Infonet |
| WEBTEST | 172.30.18.10:8151 | Test Environment |
Websites:
| Website | Library (CGI programs,data) | IFS Path (static files) | Purpose |
|---|---|---|---|
| Web Orders (Production) | WEBPRDP,WEBPRDD | /unipharm/Version2 | Web Orders Production Programs |
| Infonet (Production) | WEBPRDP,WEBPRDD | /unipharm/internal | Corporate Intranet Production Programs |
| Web Orders (Development) | WEBDEVP,WEBDEVD | /unidev/Version2 | Web Orders Development/Test Programs |
| Infonet (Development) | WEBDEVP,WEBDEVD | /unidev/internal | Corporate Intranet Development/Test Programs |
| IN2 (Development) | WEBDEVP,WEBDEVD | /unipharm/in2 | New-style Infonet programs |
These tables depict a unique setup. First, the Infonet and WebSmart instances are identically accessible; they both allow access to Web Orders and Infonet. Thus, the 'Web Orders' instance doesn't necessarily just serve Web Orders; you can access Infonet through it, and vice versa. Second, the production and development websites are accessible through the same Apache instance (just have to specify /unipharm or /unidev). This all means that the Web Test instance is not actually used for code-testing that can be done through production instances. It currently sits unused, but is started/stopped everyday by the system (and it's up all day).
This can all be tidied up in the future, but for now, everything works (security issues aside).
Web Test instance reconfiguration
As per above, the Web Test Apache instance is practically idle/unused. It is also not open to the public. To make it a proper testing instance that is accessible by scripts from the outside, it has been configured as such:
* External IP: 207.102.139.110
* Firewall rules: DNAT - 207.102.139.110 HTTP 80 --> 172.30.18.10 TCP 8151
* DNS Hostname: dev.unipharm.com
* Internal IP/port: 172.30.18.10:8151
* Apache instance name: WEBTEST
* Notable Apache settings:
Header set Access-Control-Allow-Origin "http://unipharm.com"
Header set Access-Control-Allow-Origin "http://unipharm.exwaresolutions.com"
Header set Access-Control-Allow-Methods "OPTIONS, GET, PUT, POST, DELETE, HEAD"
Header set Access-Control-Max-Age "1800"
Header set Access-Control-Allow-Headers "X-Requested-With, Authorization"
Header set Access-Control-Allow-Credentials: "true"