computer-playbook/roles/native-nginx-docker-proxy/templates/proxy_pass.conf.j2

56 lines
1.6 KiB
Django/Jinja

location /
{
{% if https_port is defined %}
proxy_pass https://127.0.0.1:{{https_port}}/;
{% else %}
proxy_pass http://127.0.0.1:{{http_port}}/;
{% endif %}
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
# timeouts
proxy_connect_timeout 1s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
send_timeout 300s;
# general caching
proxy_cache cache;
proxy_cache_key $host$uri$is_args$args;
proxy_cache_revalidate on;
proxy_cache_min_uses 1;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
proxy_cache_lock on;
proxy_cache_background_update on;
proxy_cache_valid any 5m;
expires 5m;
# cache media files
location ~* \.(gif|ico|jpg|jpeg|png|svg|mp4|mp3|pdf)$ {
proxy_cache cache;
proxy_cache_key $host$uri$is_args$args;
proxy_cache_valid 200 301 302 365d;
expires 365d;
{% if https_port is defined %}
proxy_pass https://127.0.0.1:{{https_port}};
{% else %}
proxy_pass http://127.0.0.1:{{http_port}};
{% endif %}
}
# cache content
location ~* \.(html|css|js)$ {
proxy_cache cache;
proxy_cache_key $host$uri$is_args$args;
proxy_cache_valid 200 301 302 30m;
expires 30m;
{% if https_port is defined %}
proxy_pass https://127.0.0.1:{{https_port}};
{% else %}
proxy_pass http://127.0.0.1:{{http_port}};
{% endif %}
}
}