ITADN

Add `no_proxy` support for selective proxy bypass

#2119Openttramb 创建于 2025-11-19
server
T
ttrambcommented
## Feature Request Add `no_proxy` support for selective proxy bypass ### Motivation Currently, when `SVIX_PROXY_ADDR` is configured, **all** outbound webhook requests are routed through the proxy. There's no way to configure exceptions for specific domains or IP ranges that should bypass the proxy. This feature would align Svix with standard HTTP client proxy behavior and is commonly supported by tools like curl, wget, and most HTTP libraries through `NO_PROXY` environment variable support. #### Use Case It is common to use internal connection between components. We may need to use svix webhook for an internal service hosted on the same k8s cluster where svix-server is running. ### Proposal Add support for a `no_proxy` configuration that allows specifying domains, IP addresses, or CIDR ranges that should bypass the proxy, similar to the standard `NO_PROXY` environment variable used by many HTTP clients. **Environment variable:** ```bash SVIX_PROXY_ADDR="http://proxy.example.com:8080" SVIX_NO_PROXY="localhost,127.0.0.1,10.0.0.0/8,internal.company.com" ``` **Configuration file:** ```toml [proxy_config] proxy_addr = "http://proxy.example.com:8080" no_proxy = ["localhost", "127.0.0.1", "10.0.0.0/8", "internal.company.com", "*.internal"] ``` #### Expected Behavior - Requests to URLs matching `no_proxy` patterns should connect directly - Requests to other URLs should continue using the configured proxy - Support for: - Exact domain matches (`internal.company.com`) - Wildcard domain matches (`*.internal`) - IP addresses (`127.0.0.1`) - CIDR ranges (`10.0.0.0/8`, `192.168.0.0/16`) - Port-specific matches (`localhost:8080`) ### Alternatives So far to by pass the proxy we need to use non standard way that may introduce infrastructure complexity: - Configure proxy server itself to handle no_proxy rules - Use network-level routing - Run multiple Svix instances (one with proxy, one without)
1 条评论