Kubernetes Nginx反向代理后的Botpress
我正在考虑在集装箱化平台(比如docker或Kubernetes)中设置多个聊天机器人,我希望能够通过反向代理(如Nginx)访问这些聊天机器人。感谢您的帮助 我的示例场景 我有多个聊天机器人,让我们叫它们Bravo、Charlie、DeltaKubernetes Nginx反向代理后的Botpress,kubernetes,reverse-proxy,nginx-reverse-proxy,nginx-ingress,botpress,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 德尔塔的IP:10.0.0.4:8080 所有这些机器人都生活在nginx代理后面的容器中。 现在如果我想访问这些聊天机器人,我可以使用10.0.0.2:
- Bravo的IP地址和端口为10.0.0.2:8080
- 查理的IP:10.0.0.3:8080
- 德尔塔的IP:10.0.0.4:8080
如果我检查流量,nginx将返回一个空白页。帮我调试这个 您可以使用具有此入口定义的nginx入口控制器:(但首先您需要在集群上部署nginx入口控制器,您可以使用此) 这要求您已经定义并部署了具有关联部署的服务。例如:
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
如果您对此有更多问题,请不要犹豫。您可以使用具有此入口定义的nginx入口控制器:(但首先您需要在集群上部署nginx入口控制器,您可以使用此) 这要求您已经定义并部署了具有关联部署的服务。例如:
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
如果您对此有更多问题,请不要犹豫。感谢@alireza david的回复,正如您所提到的,我已经尝试过这种基于路径的路由。但当我这样做时,我无法获取网页的内容。与css文件一样,前端的JS脚本也没有加载。我在url路径中得到一个404。如果您能够帮助剥离URI,将请求转发到容器,这将是非常棒的。哦,我必须提到,您可以使用这个重写注释。我也更新了答案。注释:nginx.ingres.kubernetes.io/rewrite-target:/感谢@alireza david的响应,正如您所提到的,我已经尝试了这种基于路径的路由。但当我这样做时,我无法获取网页的内容。与css文件一样,前端的JS脚本也没有加载。我在url路径中得到一个404。如果您能够帮助剥离URI,将请求转发到容器,这将是非常棒的。哦,我必须提到,您可以使用这个重写注释。我也更新了答案。注释:nginx.ingres.kubernetes.io/rewrite-target:/