我正在考虑设置多个聊天机器人,就像在一个容器化平台中,让我们比如说码头或Kubernetes,并且我希望能够通过反向代理(如Nginx )访问这些聊天机器人。任何帮助都是非常感谢的。
我的示例场景
我有一个多个聊天机器人,叫它们Bravo,Charlie,Delta
所有这些机器人都生活在nginx代理后面的容器中。现在,如果我想访问这些聊天机器人,我可以用10.0.0.2:8080访问浏览器并使用聊天机器人,
如果我可以设置一个域(alpha,org),并希望以alpha、com/bravo或alpha、com/charlie和alpha、com/delta的形式访问这些聊天机器人,那么如何才能实现这一点呢。
代理pass指令只适用于index_html,而chatbot应用程序似乎有某种基本url路径,我无法弄清楚。如果我检查流量,nginx将返回一个空白页。帮我调试一下这个。
发布于 2019-11-27 09:17:02
您可以用这个入口定义使用nginx-ingress控制器:(但是首先您需要在集群上部署nginx-ingress控制器,您可以使用这个链接)
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如果你对此有更多的疑问,请不要犹豫。
https://stackoverflow.com/questions/59066393
复制相似问题