dpl/gateway-protect.conf

28 lines
1.2 KiB
Plaintext

location ^~ /api/v1/client/subscribe {
if ($is_cloud_ip = 1) { set $block_reason "cloud"; }
if ($bad_subscribe_ua = 1) { set $block_reason "ua"; }
if ($is_custom_bad_ua = 1) { set $block_reason "ua"; }
if ($is_ua_whitelisted = 1) { set $block_reason ""; }
if ($whitelist_ip = 1) { set $block_reason ""; }
if ($block_reason = "cloud") { return 403 "Forbidden: Cloud IP"; }
if ($block_reason = "ua") { return 403 "Forbidden: Invalid Client"; }
limit_req zone=subscribe_limit burst=5 nodelay;
limit_req_status 429;
set $upstream_backend ${V2B_BACKEND};
proxy_pass $upstream_backend;
proxy_set_header Host ${V2B_HOST};
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_ssl_server_name on;
proxy_ssl_name ${V2B_HOST};
proxy_ssl_verify on;
proxy_ssl_verify_depth 3;
proxy_ssl_trusted_certificate /etc/ssl/certs/ca-certificates.crt;
proxy_http_version 1.1;
proxy_connect_timeout 10s;
proxy_read_timeout 60s;
add_header Cache-Control "private, no-store" always;
add_header X-Subscribe-Filter "active" always;
}