Skip to main content

nginx Directive Map

Full reference mapping every nginx directive (open-source and nginx Plus) to its tinyproxy equivalent or an explanation of why it's not yet supported.

✅ = Fully converted ⚠️ = Partially converted ❌ = Unsupported (stubbed)

Core Server Directives​

nginx directivetinyproxyStatusNotes
server { }vhost block✅
server_namehostname key✅First name used; aliases dropped
listenport✅ssl flag detected
rootroot✅
proxy_pass (single)proxy_pass✅
proxy_pass (upstream ref)upstream { }✅Named upstream resolved
client_max_body_sizemax_body_size✅
gzip on/offcompression on/off✅brotli also enabled when on
index—❌
alias—❌Use root
autoindex—❌

SSL / TLS​

nginx directivetinyproxyStatusNotes
ssl_certificatessl { cert }✅
ssl_certificate_keyssl { key }✅
ssl_protocols—❌tinyproxy enforces TLS 1.2+ always
ssl_ciphers—❌Forward-secret ciphers enforced by default
ssl_session_cache—❌
ssl_session_timeout—❌
ssl_prefer_server_ciphers—❌

Security Headers​

nginx directivetinyproxyStatus
add_header X-Frame-Optionssecurity { frame_options }✅
add_header X-Content-Type-Optionssecurity { content_type }✅
add_header X-XSS-Protectionsecurity { xss_protection }✅
add_header Content-Security-Policysecurity { csp }✅
add_header Strict-Transport-Securitysecurity { hsts }✅
add_header (other)—❌

Rate Limiting​

nginx directivetinyproxyStatusNotes
limit_req_zone + limit_reqsecurity { rate_limit { } }✅Rate and window extracted from zone definition
limit_conn_zone + limit_conn—❌Connection limiting not yet supported
limit_req_status—❌

FastCGI​

nginx directivetinyproxyStatus
fastcgi_passfastcgi { pass }✅
fastcgi_indexfastcgi { index }✅
fastcgi_paramfastcgi { param }✅
fastcgi_read_timeout—❌
fastcgi_buffers—❌

Upstream / Load Balancing​

nginx directivetinyproxyStatusNotes
upstream { server … }upstream { backend … }✅
ip_hashupstream { strategy ip_hash }✅
least_connupstream { strategy least_conn }✅
randomupstream { strategy round_robin }⚠️Mapped to round_robin
server weight=Nbackend … weight N✅
server backup—⚠️Backup flag dropped
keepalive—⚠️Stubbed; keepalive not configurable

Caching​

nginx directivetinyproxyStatusNotes
proxy_cache_path—❌Path-based cache not supported
proxy_cachecache { enabled true }⚠️
proxy_cache_validcache { default_ttl }⚠️

URL Routing & Rewriting​

nginx directivetinyproxyStatusNotes
location (prefix)location /path/ { }✅Longest prefix wins
location = (exact)location = /path { }✅Wins immediately
location ~ (regex)location ~ pattern { }✅Case-sensitive; first declared wins
location ~* (regex, case-insensitive)location ~ pattern { }⚠️Mapped to ~; case-insensitivity dropped with comment
location ^~ (prefix, no-regex)location /path/ { }⚠️Mapped to plain prefix; priority semantics not preserved
return 3xx <url>redirect <code> <url>✅Inside location blocks; 3xx codes only
rewrite—❌
try_files—❌
return (non-redirect)—❌2xx/4xx/5xx return codes not supported
map—❌
if—❌

Proxy Headers & Timeouts​

nginx directivetinyproxyStatus
proxy_set_header—❌
proxy_hide_header—❌
proxy_read_timeout—❌
proxy_send_timeout—❌
proxy_connect_timeout—❌

Auth​

nginx directivetinyproxyStatus
auth_basic—❌
auth_basic_user_file—❌
auth_request—❌

Logging​

nginx directivetinyproxyStatus
access_log—❌
error_log—❌

nginx Plus Directives​

nginx Plus directivetinyproxyStatus
health_check (active)—❌
auth_jwt—❌
auth_jwt_key_file—❌
oidc—❌
resolver—❌
js_include / js_content (njs)—❌
Lua / OpenResty—❌

Block-Level Directives (Unsupported)​

nginx directivetinyproxyStatus
stream { }—❌
mail { }—❌
geo—❌
sub_filter—❌
mirror—❌
error_page—❌