michaelpb / michaelpb/omnic

Nginx for serving directly from cache

Open
#15 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Docker enhancement Performance Production
Dominant language
Python
Stars
16
Forks
1
PR merge metrics
No merged PRs in 30d

Description

Simple route (preferred): Softlinks + nginx rewrite rules

  • Rewrite static URL to serve directly from a softlinked nginx static cache

/var/tmp/omnic/nginx_cache/9f/2e/4f/..etc/9f2e4f -> /var/tmp/omnic/resource/.../file.jpg

Add complex rewrite rules that md5 the incoming URL or parts of it and then redirect to the nginx cache, which is populated at the end of every successful conversion step.

Complex route (if necesary) OpenResty

OpenResty script that uses same hashing algo as python to very quickly serve up files with nginx BEFORE they even hit Omnic servers

  • Don't worry about HMAC digests (although maybe 404 obviously bogus requests), since cache miss will happen anyway

  • Should be VERY short logic: Just take URL parameter, apply MD5 transformation, check cache location, if exists AND read-only, serve file, else fallback to omnic

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the successful conversion step that populates /var/tmp/omnic/nginx_cache/ and compare its Python hashing algorithm with the requested nginx rewrite approach. Evaluate the simple softlink and rewrite route before considering the OpenResty fallback. Done means valid cache hits are served directly and misses fall back to Omnic without changing conversion behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
nginx, python
Domain
backend, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.