Document cross-host proxy gRPC routing for multi-proxy deployments#728
Document cross-host proxy gRPC routing for multi-proxy deployments#728
Conversation
|
Can confirm that this clarifies my issue/documentation and works. One thing that would be nice to add is a little "note" next to this line: Many people, including me might only copy last part Unsure if the CrowdSec integration should also be a part of this documentation/if it even supports multi-proxy instances, but would be nice to see that getting added as well. |
|
@xRedCrystalx I added the warning you mentioned. I'll look into crowdsec with this setup to test for issues once time allows. Thanks for reporting this! |
Summary
Adds the missing Traefik routing steps that remote NetBird proxy instances need to reach the management server's gRPC services, fixing the silent
transport: received unexpected content-type "text/html"failure that users hit when adding a second proxy host. Also fixes a layout bug where wide content (like Traefik rules) inside<Note>/<Warning>/<Success>alerts pushed past the content column instead of scrolling.Resolves netbirdio/netbird#6051. Confirmed working by xRedCrystalx, who also flagged the parenthesis pitfall now called out in a Warning callout.
Description of changes
src/pages/selfhosted/maintenance/scaling/multiple-proxy-instances.mdxAdded a new "Prepare the management server for cross-host proxies" section to the prerequisites, covering the three management-side changes that are required before a remote proxy can connect:
PathPrefix(/management.ProxyService/)to thenetbird-grpcTraefik router rule, alongside the existingSignalExchangeandManagementServicepaths. Without this, Traefik falls back to the dashboard router and returns HTML, producing thecode = Unimplemented ... 404 (Not Found)error users were hitting.websecureentrypoint so the long-lived gRPC streams between proxy and management aren't cut off.A
<Warning>callout sits next to the rule snippet to flag a copy-paste pitfall that xRedCrystalx (and likely others) ran into: appending only the newPathPrefix(...)clause to the end of an existing rule pushes it outside the existing))group, breaking the OR logic and reproducing the sametext/htmlerror. The callout shows a side-by-side example with a^pointer at the offending paren so readers can visually compare against their existing rule.A second
<Warning>at the end of the section reminds readers that all three changes are made on the management server, not the proxy hosts — this is the most common cause ofmanagement connection failed ... 404 (Not Found)reports when adding a remote instance.src/components/mdx.jsxAdded
min-w-0 flex-1to the inner content div inNote,Warning, andSuccess. These three alert components share the same flex layout, and the inner div previously had nomin-width: 0. Because flex children default tomin-width: auto(their intrinsic content width), a<pre>with a long unbreakable line forced the inner div — and therefore the entire alert — to expand past the content column, even though the project's<pre>already hasoverflow-x-auto.min-w-0lets the flex child shrink below its intrinsic content width, which lets the existing horizontal scroll on<pre>engage as intended.flex-1makes the inner div consistently take the remaining width regardless of content. This is a cosmetic fix only — no alert content changes — but it applies site-wide to every existing<Note>/<Warning>/<Success>that contains code blocks or other wide content.