12
Using NGINX as a stream proxy (lemmy.goblackcat.com)

Hello fellow self-hosters. Is it possible to use NGINX as a proxy for an IMAP service where the IMAP server is located on a different host? I have a cloud VPS running NGINX which is connected to my home network via a WireGuard tunnel. What I would like to do is run the IMAP server (Dovecot) in my own network and have NGINX proxy the connection. I have tried doing searches based on this but the examples don't show how to specify the IMAP server for the connection to be redirected to for the lack of a better phrase. I know streaming is possible. Would this be the way to do?

I would love an example to go on. Thanks very much!

you are viewing a single comment's thread
view the rest of the comments
[-] Zikeji@programming.dev 15 points 3 years ago

What you're looking for is a reverse proxy, or in this case, a TCP reverse proxy. I believe only NGINX plus (paid?) supports that. You're probably better off using haproxy.

I haven't done it so I can't help in that front, but I found this: https://www.linuxbabe.com/mail-server/smtp-imap-proxy-with-haproxy-debian-ubuntu-centos

Which is close to your scenario (I just looked at the first result). Otherwise the search term "haproxy imap" or "haproxy mail server" may help you find something, maybe throwing in wireguard or VPN.

[-] housepanther@lemmy.goblackcat.com 5 points 3 years ago

Thank you! It never occurred to me to consider haproxy to do something like this and I think it is exactly what I am looking for. It's definitely worth further exploration. My subscription for email service is about to run out and I'd rather not pay for something I don't have to.

[-] derin@lemmy.beru.co 5 points 3 years ago

Just so you know, running an email service isn't as easy as you think. You'll most likely deal with a lot of blocks from Gmail and the rest.

[-] housepanther@lemmy.goblackcat.com 2 points 3 years ago

I realize this could be a possibility. I don't think it is going to be easy but I'll give it a shot.

[-] kill_dash_nine@lemm.ee 3 points 3 years ago

You can do TCP proxying with nginx but many of the same features available in haproxy are behind the paywall. In nginx, layer 4 connections are dealt with through streams. You can do both TCP and UDP. I stick with haproxy for TCP streams with very few exceptions. HAproxy is most definitely more robust for situations where you have a pool of upstream servers. For single upstream instances, it’s not terrible. Most of the features I would use for better control of how the failover and balancing would work isn’t available in the open source nginx.

this post was submitted on 19 Jul 2023
12 points (61.5% liked)

Selfhosted

61877 readers
646 users here now

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!

founded 3 years ago
MODERATORS