# Entry-Point Runtime — Nginx ## Signals to gather - `argv0` equals `nginx`. - Config files: `/etc/nginx/nginx.conf`, `conf.d/*.conf`, `/usr/share/nginx/html`. - Environment (`NGINX_ENTRYPOINT_QUIET_LOGS`, `NGINX_PORT`, `NGINX_ENVSUBST_TEMPLATE`). - Listening sockets on 80/443 (dynamic mode) or `EXPOSE 80` (static). - Modules or scripts shipped with the official Docker entrypoint (`docker-entrypoint.sh` collapsing to `nginx -g "daemon off;"`). ## Implementation notes - Parse `nginx.conf` (basic directive traversal) to extract worker processes, include chains, upstream definitions. - Handle official entrypoint idioms (`envsubst` templating) via ShellFlow. - Distinguish pure reverse proxies from PHP-FPM combos; when both `nginx` and `php-fpm` run, classify container as `Supervisor`. - Record static web content presence (`/usr/share/nginx/html/index.html`). ## Evidence & scoring - Boost for confirmed config and workers. - Add evidence for templating features, env substitution, or modules. - Penalise if binary exists without config (likely not the entry point). ## Edge cases - Alpine images may place configs under `/etc/nginx/conf.d`; include both. - Custom builds might rename binary (`openresty`, `tengine`); consider aliases if common. - Windows Nginx not supported; fall back to `Other`.