Skip to content

Public static web site

Amy Farrell edited this page Dec 30, 2024 · 3 revisions

Part of USAGov Architecture patterns

www.usa.gov, or "www," is a static web site behind a CDN. (The dev environment lacks the CDN, because the dev servers reject traffic from outside the GSA network.)

C4Context
  title Public static website
  Boundary(internet, "Internet", "the web") {
    Person(publicUser, "Public web user")
    System(ExtSvc, "external service", "examples include GA, tag manager, chat")
    Boundary(cloud_gov_boundary, "Cloud.gov", "") {
      System(CDN, "CloudFront CDN (except in Dev)", "cache, distribution")
      Boundary(usagov_boundary, "USAgov org boundary", "") {
        Container(www_app, "WWW", "nginx", "reverse proxy", "")
        ContainerDb(s3_storage, "S3 storage", "static web assets")
      }
    }
  }
  Rel(publicUser, CDN, "HTTPS", "GET,HEAD")
  Rel(CDN, www_app, "HTTPS")
  Rel(www_app, s3_storage, "HTTPS", "GET,HEAD")
  Rel(publicUser, ExtSvc, "HTTPS", "fetch/xhr")
  UpdateElementStyle(s3_storage, $bgColor="yellow", $fontColor="black")
Loading

The WWW app includes

  • nginx
  • s6 overlay (process supervision)

Nginx configuration handles retrieving the s3 objects to serve web requests, serving language-specific 404 pages, normalizing paths, and many internal redirects.

Key connections to other systems

  • S3 storage is the same as the S3 storage used by the Drupal CMS app. The CMS app writes to this S3 bucket and the WWW app reads from it.
  • The WAF app sits between the public internet and the WWW app.
  • A log drain connects the WWW app to the Log shipper.