Apache Apisix配置路由转发

3 篇文章 0 订阅
1 篇文章 0 订阅

1. 前提

Docker

APISIX

本章节基于已经安装完成的 Apisix 做的操作,如果还未安装 Apisix 查看 [[Docker安装Apisix]] 章节即可!

2. 概念

本文说的路由转发,等同于 反向代理 ,将 Apisix 作为反向代理服务器,处理用户与目标服务器的请求,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。

此处多稍微赘述一番,将概念简单说了,为后续的操作和理解做一层铺垫。

reverse-proxy

3. 环境介绍

我开发环境安装 Apisix ,语言环境为中文,登录用户名和密码使用了默认的用户 admin ,在浏览器访问 Dashboard 模块,如果你将 Dashboard 的端口修改,请你使用更改后的端口,我用的是默认端口 http://192.168.147.128:9000/ ,特此说明下。

登录页

登录后

4. 配置

4.1. 目标

Apisix 服务 9080 端口中对 目标服务器 进行请求转发。 最终在用户方面效果如下:
http://192.168.147.128:9080/wea 满足的条件的请求被 转发到 http://192.168.147.128:19090/demo/asyn

4.2. 上游upstream

此处配置对应我们 反向代理 中的 目标服务器 ,左侧菜单栏中 上游 按钮。

我配置我的目标服务器资源,这是我开发环境的一个 Web 应用, URL 为 : http://192.168.147.128:19090/demo/asyn

目标服务器

  • 名称: 自定义即可,次数用 Local ,后面的 设置上游upstream 会用到
  • 目标节点和端口: 192.168.147.12819090

其他配置项如: 负载均衡算法 、 连接超时 、 发送超时 、 接收超时 ,默认即可!

20220821112032

配置完后 点击 下一步提交 ,两按钮显示顺序有一前一后,而且位置都在右下角。

20220821113910

至此,我们的 上游upstream 配置完成。

4.3. 路由列表

4.3.1. 基本配置

此处配置对应我们 反向代理 中的 反向代理服务器 ,左侧菜单栏中 路由列表 按钮。

点击 新增 即可。

20220821114037

20220821114246

  • 名称: 自定义
  • 路径: /wea*
  • 请求改写中这里我用 正则改写 ,将 匹配正则表达式 中的 /wea*转发路径模版 中转换为 目标服务器 中的 /demo/asyn
  • 其他参数默认即可!

配置完后 点击 下一步

4.3.2. 设置上游upstream

下拉 选择上游服务 ,选中我们在 上游upstream 设置的 Local

20220821115233

点击 下一步 ,此处插件设置,不做选择,默认即可!

20220821115454

在路由列表中,即可看到我们新增的路由信息。

效果图

5. 演示

Apisix 服务 9080 我们用 http://192.168.147.128:9080/wea

20220821121309

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
要在Kubernetes中配置API Gateway,可以使用Apache APISIX。以下是在Kubernetes中配置Apache APISIX的步骤。 1. 首先,需要创建一个Kubernetes Service和Deployment来托管Apache APISIX。使用以下YAML文件: ``` apiVersion: v1 kind: Service metadata: name: apisix annotations: service.beta.kubernetes.io/aws-load-balancer-type: "nlb" spec: selector: app: apisix ports: - protocol: TCP port: 9080 targetPort: 9080 - protocol: TCP port: 9443 targetPort: 9443 --- apiVersion: apps/v1 kind: Deployment metadata: name: apisix spec: replicas: 1 selector: matchLabels: app: apisix template: metadata: labels: app: apisix spec: containers: - name: apisix image: "apache/apisix:2.9-alpine" imagePullPolicy: Always ports: - containerPort: 9080 - containerPort: 9443 name: https volumeMounts: - name: conf mountPath: /usr/local/apisix/conf/ - name: logs mountPath: /usr/local/apisix/logs/ volumes: - name: conf configMap: name: apisix-config - name: logs emptyDir: {} ``` 2. 接下来,需要创建一个ConfigMap来管理Apache APISIX的配置文件。您可以在ConfigMap中指定API Gateway的路由规则和其他配置。以下是示例YAML文件: ``` apiVersion: v1 kind: ConfigMap metadata: name: apisix-config data: config.yaml: | node_listen: - 0.0.0.0:9080 - 0.0.0.0:9443 ssl http2 log: level: debug plugins: - "cors" - "prometheus" - "jwt-auth" stream_log: enable: true log_dir: logs/stream_log/ http_log: enable: true log_dir: logs/http_log/ ssl: cert: conf/apisix.crt key: conf/apisix.key admin: enable_admin: true https_cert: conf/apisix.crt https_key: conf/apisix.key listen_address: 0.0.0.0:9180 auth: basic_auth_user_file: conf/admin plugins_config: prometheus: enable: true listen: 0.0.0.0:9145 jwt-auth: enable: true key: "apisix_secret" cors: enable: true limit-count: enable: true count: 10 time_window: 60 limit-conn: enable: true conn: 100 error-log: enable: true level: error ``` 3. 完成上述步骤后,您可以使用Kubernetes Ingress对象配置Apache APISIX的路由规则。以下是示例YAML文件: ``` apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: apisix-ingress annotations: kubernetes.io/ingress.class: "nginx" nginx.ingress.kubernetes.io/rewrite-target: / spec: rules: - host: apisix.example.com http: paths: - path: /hello backend: serviceName: helloworld servicePort: 80 ``` 在上面的示例中,我们使用Ingress对象将/apisix/hello路径映射到名为helloworld的Kubernetes Service。 4. 最后,您需要在Kubernetes中创建一个Secret对象,其中包含Apache APISIX的SSL证书和密钥。以下是示例YAML文件: ``` apiVersion: v1 kind: Secret metadata: name: apisix-secret type: kubernetes.io/tls data: tls.crt: <base64-encoded-certificate> tls.key: <base64-encoded-private-key> ``` 在上面的示例中,我们将证书和密钥存储为Secret对象的数据字段。 完成上述步骤后,您现在可以通过访问Ingress对象的公共IP地址或域名来测试API Gateway。请确保将SSL证书和密钥正确配置,并使用有效的路由规则。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王老邪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值