# Discourse with reverse proxy manager

**URL:** https://meta.discourse.org/t/discourse-with-reverse-proxy-manager/387730
**Category:** Self-hosting
**Created:** [November 5, 2025, 11:09pm UTC](https://meta.discourse.org/t/discourse-with-reverse-proxy-manager/387730 "2025-11-05T23:09:58Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![Jonathan\_Candler](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jonathan_candler/32/528393_2.png) [@Jonathan\_Candler](https://meta.discourse.org/u/Jonathan_Candler)
#### Post date: [November 5, 2025, 11:09pm UTC](https://meta.discourse.org/t/discourse-with-reverse-proxy-manager/387730/1 "2025-11-05T23:09:58Z")

</div>

Hello there, trying to setup discourse with reverse proxy manager on nginx on one machine. Everything is accessible through my dns using default ports on the box but when setting up with reverse proxy to route traffic through my sub domain with ssl forced, it, simply does not work. I get a 502. I’m running multiple containers. proxy manager being isolated and everything discourse in another. I’ve looked through pretty much every guide I can find and nothing, works. There’s gotta be a way to successfully do this in 2025! I’ve got one site running with proxy manager and that all checks out. Do I need to hand over fpm network to discourse containers as that’s the default network that proxy manager uses to make discourse containers accessible to proxy manager? If so, where do I need to go to put that in as I cannot find any info. People say to put it in their setups but not knowing exactly where. ? I do not wanna have to change setups. I’ve seen some guides saying to not expose ports and let proxy manager do the rest, done that. I’ve seen guides saying to try and use web.socketed templates.yml in discourse/templates dir but that don’t work neither. I’ve seen people getting this to work with and with out exposing ports on discourse. Nothing seems to be consistent here. What works, and what works well nowadays. Remember ,I’m only running off of one, box.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [November 7, 2025, 8:12pm UTC](https://meta.discourse.org/t/discourse-with-reverse-proxy-manager/387730/2 "2025-11-07T20:12:25Z")

</div>

My guess is that the proxy manager is working perfectly and that 502 error is from discourse because it’s not configured correctly.

Did you comment out the let’s encrypt and ssl templates in your yml file?

---

<div class="post-metadata">

### Author: ![Ethsim2](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ethsim2/32/522255_2.png) [@Ethsim2](https://meta.discourse.org/u/Ethsim2)
#### Post date: [November 8, 2025, 8:37am UTC](https://meta.discourse.org/t/discourse-with-reverse-proxy-manager/387730/3 "2025-11-08T08:37:46Z")

</div>

Good news - nothing looks “broken.” yet. That 502 was almost certainly a **first-boot race** : Nginx tried your `/srv/status` before Unicorn was ready. If your logs show:

- `unicorn: run` ✅
- Rails booted ✅
- Nginx error at HH:MM:SS “connection refused” (likely _before_ Unicorn finished)

Let’s clear it up quickly.

> 

1. Try the status again (host → app2)

```plaintext
curl -sSI http://127.0.0.1:8002/srv/status

```

1. If it still shows 502, just restart Nginx in app2 and test from _inside_ the container:

```plaintext
docker exec -it app2 bash -lc 'sv restart nginx && sleep 2 && curl -sSI http://127.0.0.1/srv/status'

```

```plaintext
curl -sSI http://127.0.0.1:8002/srv/status

```

You should see `HTTP/1.1 200 OK`.

* * *

---

<div class="post-metadata">

### Author: ![Jonathan\_Candler](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jonathan_candler/32/528393_2.png) [@Jonathan\_Candler](https://meta.discourse.org/u/Jonathan_Candler)
#### Post date: [November 8, 2025, 11:02am UTC](https://meta.discourse.org/t/discourse-with-reverse-proxy-manager/387730/4 "2025-11-08T11:02:00Z")

</div>

I got it to work. As I’m running in 2 docker containers I had to allow access to get them to see each other through a network. no ports are exposed through discourse as it’s running on internal docker ports. Plus it’s more secure.

Jonnyboy! Iphones rock!

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [November 8, 2025, 12:41pm UTC](https://meta.discourse.org/t/discourse-with-reverse-proxy-manager/387730/5 "2025-11-08T12:41:02Z")

</div>

So that’s what some AI told you. Did it work?

---

<div class="post-metadata">

### Author: ![Ethsim2](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ethsim2/32/522255_2.png) [@Ethsim2](https://meta.discourse.org/u/Ethsim2)
#### Post date: [November 8, 2025, 12:42pm UTC](https://meta.discourse.org/t/discourse-with-reverse-proxy-manager/387730/6 "2025-11-08T12:42:45Z")

</div>

yes it worked, and then i announced the result in the following topic;

> [@Transient 503s after ./launcher rebuild appN when they’re fronted by HAProxy](https://meta.discourse.org/t/transient-503s-after-launcher-rebuild-appn-when-they-re-fronted-by-haproxy/383179):
>
> I had created a test forum with two web\_only containers, the mail-receiver container, Postgres and Redis on a Docker network. The two web containers nginx’s were fronted by HAProxy. They worked well, but i found on rebuilding one of the two web containers there was always a small amount of downtime where 503 was returned. Fortunately, i found a mitigating workaround, but nothing perfect; before rebuilding app1, run echo "disable server be\_discourse/app1" | socat stdio /run/haproxy/admin.sock …
