Need some nginx magic

3 years ago by Behohippy to c/selfhosted

I host a ton of services running behind my nginx reverse proxy (basic auth + lets encrypt). On the whole it works really well with nearly everything I throw at it. Lately, there's been a lot of gradio/websocket/python stuff coming from the AI community like the local llama and stable diffusion stuff. Not sure what's causing it but there's always weird issues when I try to reverse proxy them.

Does anyone have some magic settings that "just work" with these weirdo web apps?

flimsyberry 5 points 3 years ago

I'm pretty sure there might be some arcane scripts for you that would help you. But you should clarify query a bit. What are the weird issues you're running into? Alternatively, if you're managing nginx and letsencrypt manually you could try:

  • Caddy
  • Traefik
  • NGINX Proxy Manager
path: 0 438679, hotness: undefined, score: 5, children: 3
behohippy 3 points 3 years ago

I hear good things about Traefik. Basically all I need is a reverse proxy that will handle re-writing URLs and websockets and slapping some ssl and auth on it. If something is easier for that, I'm all ears.

path: 0 438679 439602, hotness: undefined, score: 3, children: 1
flimsyberry 2 points 3 years ago

All three options should cover those requirements. You should take a look at them and decide which suit you best.

path: 0 438679 439602 440839, hotness: undefined, score: 2, children: 0
cow 1 point 3 years ago

I am using caddy and it is really nice. It automatically does lets encrypt, https redirection, reverse proxy headers and there is much less boilerplate and repetition in the config file.

path: 0 438679 444418, hotness: undefined, score: 1, children: 0
terribleplan 2 points 3 years ago

Can't talk about anything but SD (using various UIs, mostly AUTOMATIC1111's and other variants of the official) but they "just work" behind traefik. Traefik does the SSL termination and figures out which service (ip + port) to talk to based on its config. By default it does ACME (Let's Encrypt) for you and handles passing websockets without the special config lines like you need in nginx (though that should be as easy as this). As long as the application is well written (which is not always the case in the ML world, haha) and uses relative URLs for links, most everything should "just work" behind a reverse proxy, or need a config flag or two telling them they can trust the proxied SSL/IP and stuff like that.

path: 0 455633, hotness: undefined, score: 2, children: 1
gaurhoth 1 point 3 years ago

+1 for Traefik. I got tired of all of nginx's quirks. It's really powerful and I'm sure the combinations of achievable results are infinite with nginx... so for some use cases it makes sense. But seriously... almost every container I'm likely to deploy follows a fairly simple model and traefik to just "works" with everything I've tried so far. I have ALL the traefik config in docker compose labels so every single configuration element I need to spin up a container a second time or on a new host is in ONE place.

path: 0 455633 458943, hotness: undefined, score: 1, children: 0
anonion 2 points 3 years ago

Not quite sure what your issues are but you do have to make sure websocket proxying is configured if the app uses it https://www.nginx.com/blog/websocket-nginx/

I also switched over to Caddy about a year ago. Got tired of messing around with scripts to make letsencrypt work. Caddy has a lot of good defaults so you don't have to worry about setting the right headers or any websocket configurations. Its really just as simple as specifying the hostname & the reverse_proxy directive

path: 0 445743, hotness: undefined, score: 2, children: 0
chaddy 1 point 3 years ago

You should elaborate on the weird issues you're having. It would also help to know which specific services you want to host and maybe some cleaned up (= generalized, with no personal information or hostname) logs to pin down the various issues.

For most services there seems to be at least a basic apache or nginx config available. From there you can see what you probably have to adapt to your own config.

path: 0 442892, hotness: undefined, score: 1, children: 0
selfhosted
selfhosted

@lemmy.world

login for more options
63081
6830
6313

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

Detailed Rules Post

  1. Be civil.

  2. No spam.

  3. Posts are to be related to self-hosting.

  4. Don't duplicate the full text of your blog or readme if you're providing a link.

  5. Submission headline should match the article title.

  6. No trolling.

  7. Promotion posts require active participation, with an account that is at least 30 days old. F/LOSS without a paywall has exceptions, with requirements. See the rules link for details. Tags [CBH] or [AIP] are required, see the links in Rule 8 for details.

  8. AI-related discussions and AI-involved promotional posts have additional requirements for tagging, as noted in Rule 7 and the AI & Promotional Post Expanded Rules post, and find example disclosures here.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

go to feed...