# Managed by Ansible (roles/web-static). Do not edit by hand. # Access logs: JSON to stdout for Alloy → Loki (see dta_webapp/deploy/nginx-logging.conf). log_format observability escape=json '{' '"timestamp":"$time_iso8601",' '"level":"INFO",' '"service":"$obs_app",' '"app":"$obs_app",' '"env":"$obs_env",' '"message":"$request",' '"method":"$request_method",' '"status":$status,' '"bytes":$body_bytes_sent,' '"request_time":$request_time,' '"uri":"$request_uri",' '"remote_addr":"$remote_addr",' '"user_agent":"$http_user_agent"' '}'; {% for a in _static_apps %} server { listen {{ a.port }}; server_name _; set $obs_app "{{ a.name }}"; set $obs_env "{{ a.env }}"; access_log /dev/stdout observability; error_log /dev/stderr warn; root {{ (app_catalog[a.name].webroot_pattern | default(web_static_root ~ '/{env}_' ~ a.name)) | replace('{env}', a.env) }}; index index.html; location / { try_files $uri $uri/ /index.html; } location ~* \.(?:js|css|woff2?|png|jpg|jpeg|gif|svg|ico)$ { expires 7d; add_header Cache-Control "public"; } } {% endfor %}