Botpress支持Nginx反向代理

时间:2019-11-27 08:54:54

标签: kubernetes reverse-proxy nginx-reverse-proxy nginx-ingress botpress

我正在考虑在容器化平台中设置多个聊天机器人,比如说docker或Kubernetes,我希望能够通过反向代理(例如Nginx)访问这些聊天机器人。任何帮助表示赞赏。

我的示例场景

我有多个聊天机器人,可以叫他们 Bravo,Charlie,Delta

  • Bravo的IP地址和端口为10.0.0.2:8080
  • 查理的IP:10.0.0.3:8080
  • Delta的IP:10.0.0.4:8080

所有这些漫游器都生活在Nginx代理后面的容器中。 现在,如果我想访问这些聊天机器人,则可以使用10.0.0.2:8080进入浏览器并使用聊天机器人

如果我可以设置域(alpha,org)并想以alpha,com / bravo或alpha,com / charlie和alpha,com / delta的身份访问这些聊天机器人能够做到这一点??

Proxy pass指令仅适用于index_html,并且chatbot应用程序似乎具有某种我无法确定的基本url路径。 如果我检查流量,nginx将返回空白页。帮我调试一下。

1 个答案:

答案 0 :(得分:2)

您可以将nginx-ingress控制器与该入口定义一起使用:(但是首先您需要在集群上部署nginx-ingress控制器,您可以使用此link

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: alpha-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: alpha.com
    http:
      paths:
      - path: /bravo
        backend:
          serviceName: BravoService
          servicePort: 80
      - path: /charlie
        backend:
          serviceName: CharlieService
          servicePort: 80
      - path: /delta
        backend:
          serviceName: DeltaService
          servicePort: 80 # You could also use named ports if you already named the port in the service like bravo-http-port

这希望您已经定义了服务并将其与关联的部署一起部署。例如:

apiVersion: v1
kind: Service
metadata:
  name: BravoService
  labels:
    app: bravo
spec:
  type: NodePort
  selector:
    app: bravo
  ports:
    - name: bravo-http-port
      protocol: TCP
      port: 80
      targetPort: bravo-port
      nodePort: 8080

---

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: bravo-deployment
  labels:
    app: bravo
spec:
  # init with 3 replicas
  replicas: 1
  selector:
    matchLabels:
      app: bravo
  template:
    metadata:
      labels:
        app: bravo
    spec:
      containers:
      - name: bravo-container
        image: my-docker-repo/project:1.0
        ports:
        - name: bravo-port
          containerPort: 8080

如果您对此还有其他疑问,请不要犹豫。