使用代理

时间:2018-06-08 18:03:53

标签: google-cloud-platform google-cloud-iot google-cloud-networking

我为VPC启用了Private Google API access,并使用此HTTP proxy solution将我的异地数据中心连接到Google Cloud后端。

使用该解决方案,我已通过使用gsutil在异地网络中移动文件来验证Google对象存储API是否正常工作。

但是我无法连接到云IOT所需的mqtt.googleapis.com。

我认为这是因为在mqtt.googleapis.com上运行的MQTT代理无法通过专用网络访问,除非它的代理方式与上述HTTP代理解决方案类似。

同时实际的gsutil IOT命令工作正常,因为我认为它们正在运行Google HTTP API。

为了解决这个问题,我发现我们需要下面的任何一个,除非有人有不同的方法来做到这一点?

  1. 在私有VPC中运行MQTT代理代理,并将MQTT数据包路由到mqtt.googleapis.com。在这种情况下我们可以使用合适的MQTT代理代理吗?

  2. 如果我们获得了mqtt网桥(mqtt.googleapis.com)正在运行的一系列公共IP,那么我们可以简单地为这一个用例构建网络路由。可以吗?

2 个答案:

答案 0 :(得分:0)

它是否可以通过物联网核心中的HTTP协议桥接工作?使用HTTP而不是MQTT是一个选项吗?

答案 1 :(得分:0)

我设法使用NGINX作为反向代理,并将TCP流量直接流式传输到mqtt.googleapis.com。以下是实现此目的的步骤

  1. 使用--with-stream配置标志安装Nginx。这使用TCP流代理的功能构建Nginx
  2. 我的Nginx配置文件包含以下内容,指向Google的经纪人。 Nginx服务器正在VPC中的实例中运行
  3.   

    /etc/nginx/nginx.conf

     stream {
        upstream google_mqtt {
                server mqtt.googleapis.com:8883;
        }
        server {
                listen 8883;
                proxy_pass google_mqtt;
        }
    }
    
    1. 内部私有VPC有一个DNS服务器,可以将mqtt.googleapis.com解析为Nginx服务器的IP