Astral 360 WSA — Website Accelerator

Cache Configuration

Per-zone settings (Dynamic, CSS/JS, Media) and server-wide bypass lists.

The Cache Configuration page gathers all cache settings that apply zone by zone: memory expiration duration, max size per zone, and bypass lists (URI and cookies) applied globally to all sites.

Access: Sidebar → Cache Configuration.

💡 The zones' maximum sizes (Dynamic, CSS/JS, Media) are settable here and on the Module Configuration page. Both pages stay synchronized — modifying one updates the other.

💡 Per-account settings (which domain uses what) are managed from cPanel by each customer (simple or advanced mode). The WHM page described here provides the default server values.

Cache Configuration page in WHM


1. Tab organization

The page is divided into 4 tabs:

   [ All | Dynamic | CSS / JS | Media ]
Tab Content
All Shows settings of all 3 zones at the same time.
Dynamic Cache settings for generated content (PHP/HTML, JSON, API).
CSS / JS Settings for stylesheets and scripts.
Media Settings for images, fonts, videos.

Each zone tab (Dynamic, CSS/JS, Media) contains the same 4 types of settings:

  1. Inactive — duration before an unrequested entry is evicted.
  2. Max size — maximum disk size of the zone.
  3. Bypass URI — URLs that always bypass this zone.
  4. Bypass Cookie — cookies that always bypass this zone (Dynamic only).

For each field, the user sees:

  • The option's title.
  • The current value.
  • The default value indicated next to it.
  • A ↺ undo button if the value differs from default.
  • A help tooltip for non-obvious concepts.

2. Dynamic tab

Settings for the Dynamic zone — PHP/HTML pages, JSON, API responses. This is the zone that most impacts the perceived speed of sites for visitors.

2.1 dyn_proxy_cache_inactive

   Inactive timeout                       (Default: 60m)
   Time before an unrequested cache entry is dropped.
                                              [ 60m ]  ↺

Type: duration (60m, 1h, 1d, etc.) Default: 60m

Duration nginx keeps a response in the zone even if it's not requested. Beyond, the entry is evicted to free space.

⚠️ Not to be confused with cache TTL (duration during which nginx considers the response fresh to serve directly). TTL is defined:

  • Globally by cPanel customer (simple mode: pre-defined profile; advanced mode: per domain).
  • Or by server default (configured in the default.conf file).

The inactive is the maximum limit: even if you have a 1-day TTL but no one requests the page for 60 minutes, the entry is evicted.

Recommendations:

Site profile Recommended inactive
Constant traffic (always someone) 60m (default)
Burst traffic (rarely visited outside events) 3h to 6h
Rarely visited sites 12h to 24h

2.2 dyn_proxy_cache_path_max_size

   Maximum cache size                    (Default: 512m)
   Total disk space allocated to this cache zone.
                                            [ 512m ]  ↺

Type: size (512m, 1g, etc.) Default: 512m

Maximum size of the zone on disk. When reached, nginx evicts the least recently used entries (LRU) to free space.

This value is also exposed on the Module Configuration page. Modifying here updates both locations.

2.3 Bypass URI list

Multi-line textarea, one URI per line.

Any request whose path matches one of these entries automatically bypasses the Dynamic cache. The response is served directly by Apache and is not stored.

Format: path as it appears in the URL, without the domain. Wildcards * and query strings are supported.

Example content:

/wp-admin
/wp-login.php
/administrator
/admin
/cart
/checkout
/my-account
/cpanel
/whm
?nocache=1

Recommendation: the shipped list covers sensitive URIs of popular CMS. Add your own specific URIs above this list (e.g., a preview page /?preview=true).

Cookie bypass list editor — popup view

Multi-line textarea, one cookie name per line.

Any request containing one of these cookies automatically bypasses the Dynamic cache. This is the main mechanism that prevents logged-in users from seeing another user's cache.

Format: cookie name as it appears in the Cookie: HTTP header. Trailing wildcard * is supported.

Example content:

wordpress_logged_in_*
wp-postpass_*
comment_author_*
woocommerce_cart_hash
woocommerce_items_in_cart
PHPSESSID
member_*
edd_items_in_cart

Recommendation: don't shorten this list. The shipped list is the result of years of operational feedback — each entry exists because a customer case was encountered.


3. CSS / JS tab

Settings for the CSS/JS zone — stylesheets and scripts. Simpler than Dynamic: no cookie bypass (scripts and styles don't depend on cookies).

3.1 cssjs_proxy_cache_inactive

Default: 7d

Inactive timeout before eviction. Longer than Dynamic because CSS/JS files rarely change.

3.2 cssjs_proxy_cache_path_max_size

Default: 512m

Maximum zone size. See Module Configuration for recommendations.

3.3 Bypass URI list

Textarea list. Rarely used for CSS/JS.

Typical cases:

/dev/app.js
/dist/unversioned.css

To use when a dev build serves files at fixed URLs that are rewritten on each deploy.


4. Media tab

Settings for the Media zone — images, fonts, videos, PDFs, ZIPs, and all binary files.

4.1 static_proxy_cache_inactive

Default: 7d

Same as CSS/JS — media rarely changes.

4.2 static_proxy_cache_path_max_size

Default: 1024m

Maximum size. This zone is usually the largest because media represents most of the weight of web pages.

4.3 Bypass URI list

Textarea list, rarely modified.

Typical cases:

/avatars/*
/charts/live/*
/downloads/signed/*

For URLs where content changes even though filename doesn't change.


5. Save behavior

5.1 Per-item validation

For lists (URI and Cookie), each entry is validated individually:

  • URI: regex ^[A-Za-z0-9._~/?&=%*\-]{1,256}$.
  • Cookie: regex ^[A-Za-z0-9_*\-]{1,128}$.

Partial-save policy: if some entries are invalid, the valid ones are still saved. A yellow banner lists the rejected entries with an explanation of the expected format.

5.2 Automatic nginx rebuild

Any modification to sizes or lists requires an nginx rebuild to be effective. WSA automatically triggers a wsa --rebuild-forced --verbose after save, with streamed output.

5.3 Impact on running sites

Visitors currently browsing are not affected:

  • Newly added bypass lists apply from the next request.
  • Size modifications rebuild the zone (existing memory entries remain valid).
  • No service interruption window.

6. Further reading