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_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; }