Closed Cerothen closed 9 months ago
@Cerothen Love your idea! This changed how Zoraxy works from a reverse proxy design for serving one site to a system that serve multiple sites. However a few design I might need your elaboration, as here are a few items that confuses me on how they are suppose to work
I can certainly explain the intent for your questions. I tried to deploy zoraxy recently but hit few roadblocks in replicating my existing nginx proxy manager setup around customised virtual directories and some other small things. So I thought I'd I could find the time I would try to contribute to growing this project since I like the idea of a single binary reverse proxy.
All in all it does suggest some significant changes which I can appreciate could be a lot of work. I'm not all that familiar with golang but I have always been interested in learning (I have plenty of JavaScript experience since I mostly tackle web applications though nodejs or PHP). The intent was that the edit dialogs would be somewhat more descriptive and friendly while also expanding what the proxy is able to accomplish overall and get it to general feature parity with NPM.
Again it's not a requirement, I thought it would be interesting to try and contribute so that a competitor to NPM exists that's a single binary and doesn't need docker.
A few ultra quick table responsive mockups
@Cerothen I really like your idea. However as I am working on my Master thesis right now, I don't really have much free-time to work on big changes like this at the moment. I will keep this enhancement here and once I got the time, I will start working on this.
Again, thanks so much for your great ideas!
No problem at all. I have just been exploring the GoLang tooling around reverse proxies, that I can can better understand their structure.
Here are some updates
I decided to move virtual directory under each of the host (instead of a global one) as suggested by multiple issues.
For host, wildcard is also added so domains like *.foo.example.com can be used to provide shared router with multiple hosts. I still figuring out how to find which matching rule is best match, but currently I use longer-rule-first logic to handle scope overlap issues.
A lot of stuffs are still work-in progress, if anyone wanna take a look or help with the dev, please see the v3.0.0 branch (not backward compatible)
Is your feature request related to a problem? Please describe. "Virtual Directory" entries cant be defined per subdomain (as far as I can tell the virtual directories are always applied to the naked domain or perhaps every domain?)
Describe the solution you'd like I am willing to work on implementing the changes myself as needed or have some assistance on the back end components. I have mocked up an alternative to the webUI for the HTTP proxy listing. I wont bother continuing if this doesnt align with the direction you are interested in for the project.
The following code block is an example of the JSON that the API would serve.
Additional context This would likely involve some significant rework on the backend as well for how the proxies are setup, organized and executed. The below file shows the mockup presented in the above image
https://github.com/Cerothen/zoraxy/blob/c3054bbfaca6bc59963461a3eb309b5fe4efc78e/src/web/components/proxy_layer5_http.html