Files
proxy/ops/nginx_conf/nginx.conf
T
wmantly 286b50b09b Raise default response-cache TTL to 48h
Bump proxy_cache_valid from 10m to 48h and match proxy_cache_path
`inactive` (must be >= the TTL or entries evict before expiring).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-10 22:19:25 -04:00

101 lines
2.3 KiB
Nginx Configuration File

#user nobody;
worker_processes 8;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
client_max_body_size 4g;
lua_shared_dict auto_ssl 100m;
lua_shared_dict auto_ssl_settings 64k;
# Per-host rate limiting (resty.limit.req) counter storage.
lua_shared_dict ratelimit 10m;
# Per-host response cache. Enabled per request via $skip_cache in proxy.conf;
# 48h is the default TTL when the upstream doesn't send its own Cache-Control.
# `inactive` must be >= the TTL or entries get evicted before they expire.
proxy_cache_path /var/cache/nginx/proxy levels=1:2 keys_zone=proxycache:100m
max_size=2g inactive=48h use_temp_path=off;
proxy_cache_valid 200 301 302 48h;
resolver 8.8.4.4 8.8.8.8;
init_by_lua_block {
auto_ssl = (require "resty.auto-ssl").new()
auto_ssl:set("storage_adapter", "resty.auto-ssl.storage_adapters.redis")
local targetInfo = require "targetinfo"
auto_ssl:set("allow_domain", function(domain)
return ngx.ctx.toAllow
end)
auto_ssl:set("request_domain", function(ssl, ssl_options)
local domain, err = ssl.server_name()
local res = targetInfo.get(ngx, domain, ngx.ctx.targetInfo)
if res['wildcard_parent'] then
return res['wildcard_parent'], err
end
return domain, err
end)
auto_ssl:init()
}
init_worker_by_lua_block {
auto_ssl:init_worker()
}
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
server {
listen 127.0.0.1:8999;
# Increase the body buffer size, to ensure the internal POSTs can always
# parse the full POST contents into memory.
client_body_buffer_size 128k;
client_max_body_size 128k;
location / {
content_by_lua_block {
auto_ssl:hook_server()
}
}
}
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;
include sites-enabled/*;
}