-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Feature Addition: Enhance reverse_proxy module with support for a specified transport proxy #6111
Comments
In case you didn't realize, you can use the |
I've ran into situations where particular modules need to use distinct HTTP proxies. Is this possible with |
You mean different proxies per Thinking back, I think ~1 year ago+ @mohammed90 @mholt and I had a discussion about this stuff... I think one problem is that we have HTTP clients all over Caddy in different places, like the ACME client, reverse proxy, etc which means we'd probably want a centralized place to configure all of them. But it would be complicated to have to push down that config to relevant places. The question is whether we want to only have a URL as config, or if we might want to make it modular (i.e. allow plugins to choose the proxy). I don't know what kind of usecases there would be to having it modular though, I've never needed a forward proxy myself. |
Yes, that's what I've been coming up against. There has been at least one other discussion where someone was trying to achieve the same but it seems the discussion died. My use case is being able to reverse engineer applications during penetration tests. I've found it useful to be able to send the entire request chain through Burp for inspection/analysis. While flowchart
ua["User Agent"] --> burp[Burp] --> caddy["Caddy (Reverse Proxy)"] --> burp --> inscope[In-Scope Wapp]
Admittedly this isn't a common use case, but I decided to propose the change after seeing that at least one other person had a similar issue. IMVHO, allowing modules to take precedent over |
For the
http.reverse_proxy
module, having the option of specifying a HTTP/SOCKS proxy for thehttp.Transport
of the reverse proxy client in the configuration file would be ideal. It's currently configurable only viahttp.ProxyFromEnvironment
and may impact functionality of other modules.I've implemented the proposed changes and they seem to work well but I'm new to contributing to the project so there's a chance that they're naive. I'll submit a PR for review.
P.S. Caddy is amazing. It's become a critical component in so many of my projects and I'm very grateful for all the thoughtful hard work. ❤️
The text was updated successfully, but these errors were encountered: