Creating a bridge between two different pubsub+ instances results in 404.

I have deployed two instances of PubSub+ on separate Kubernetes clusters, both accessible via domain names, and I can successfully log in through the portal. My goal is to connect these instances using a Message VPN bridge. However, when attempting to establish this connection, I encounter a 404 unsuccessful HTTP response.

The Kubernetes pod logs reveal that the URL is being redirected by prepending "/proxy/" to it. Upon examining the image's files, I noticed the following NGINX rewrite rules:

What concerns me is the "return 400;" rule preceding the proxy rewrites. If my understanding of this file is correct, it seems that it will always attempt to return a 400 error before the URL can be correctly rewritten to the desired path.

Both environments are running version 10.9.1.119. Can someone assist with this issue?

Answers

  • Aaron
    Aaron Member, Administrator, Moderator, Employee Posts: 644 admin
    edited November 28 #2

    Hi @Unscented9907, welcome to the Community. What port did you use for the URL in the click-to-connect wizard?

    I can successfully log in through the portal

    Which "portal" is that? Not the Event Portal I think? You're running this locally on Kubernetes? You can access both PubSub+ Manager GUIs, but I'm wondering if the brokers can see each other..?

    There's a ping command in CLI, and I'm pretty sure it works between software brokers. Won't work for Solace Cloud though. Do you know how to get into CLI? ssh to port 22. Once you've logged, try to ping the hostname/IP address of the other broker. No port.

    Let us know if that works. I think the "proxy" and rewrite rules you're poking around seeing in the NGINX config are red herrings.

  • uherbst
    uherbst Member, Employee Posts: 130 Solace Employee

    Hi @Unscented9907 ,

    let me understand:
    1. You have 2 selfdeployed brokers in 2 separate k8s clusters.

    2. You login via WebUI (= PubSub+ Manager GUI) to broker A.
    3. You want to create a static bridge between Broker A and Broker B, using the wizard in the PubSub+ Manager GUI.

    What happens there is:
    1. Your browser there talks to Broker A (on the SEMP port - that is the port, where both SEMP and the PubSub+ Manager GUI is available)
    2. Your browser session has questions to Broker B, they will be executed via Broker A (that is browser → Broker A → Proxy request to Broker B)
    3. For some reason, the request to BrokerB is not successful and it retuns HTTP/404.

    If you ask: Why does Solace use a proxy connection between Broker A and Broker B (step 2 from list above) ? That's because your browser/javascript can only open a connection to ONE target. If not, you would be impacted by cross-site-scripting attacks.

    Back to your question:
    Before receiving the HTTP/404, you filled in a few details about broker B (something like SEMP url, credentials,..). You're sure, that they are correct ?

    Uli