本文共 6343 字,大约阅读时间需要 21 分钟。
将eShopOnContainers-dev克隆至本地环境,提取src/ApiGateways/Envoy/config/mobileshopping/envoy.yaml
文件并修改配置:
80
端口改为86
。8001
改为9901
,避免端口冲突。/application/envoyconfig/envoy.yaml
。cd /application/envoyconfigenvoy -c envoy.yaml --mode validate
envoy -c envoy.yaml --bootstrap-version 2 --log-path logs/custom2.log
firewall-cmd --zone=public --add-port=9901/tcp --permanentfirewall-cmd --zone=public --add-port=86/tcp --permanentfirewall-cmd --reload
创建一个新的NetCore项目,命名为Ali.Mi.Demo
,并添加以下控制器:
CatalogApiController
:定义API端点,访问地址为https://localhost:5008/catalog-api/catalogs
。BasketController
:处理购物 basket逻辑。OrderingController
:实现订单管理功能。修改envoy.yaml
文件,添加以下路由配置:
admin: access_log_path: "/dev/null" address: socket_address: address: 0.0.0.0 port_value: 9901static_resources: listeners: - address: socket_address: address: 0.0.0.0 port_value: 86 filter_chains: - filters: - name: envoy.http_connection_manager config: codec_type: auto stat_prefix: ingress_http route_config: name: eshop_backend_route virtual_hosts: - name: eshop_backend domains: - "*" routes: - name: c-short match: prefix: "/c/" route: auto_host_rewrite: true prefix_rewrite: "/catalog-api/" cluster: catalog - name: c-long match: prefix: "/catalog-api/" route: auto_host_rewrite: true cluster: catalog - name: o-short match: prefix: "/o/" route: auto_host_rewrite: true prefix_rewrite: "/ordering-api/" cluster: ordering - name: o-long match: prefix: "/ordering-api/" route: auto_host_rewrite: true cluster: ordering - name: h-long match: prefix: "/hub/notificationhub" route: auto_host_rewrite: true cluster: signalr-hub timeout: 300s - name: b-short match: prefix: "/b/" route: auto_host_rewrite: true prefix_rewrite: "/basket-api/" cluster: basket - name: b-long match: prefix: "/basket-api/" route: auto_host_rewrite: true cluster: basket - name: agg match: prefix: "/" route: auto_host_rewrite: true prefix_rewrite: "/" cluster: shoppingagg http_filters: - name: envoy.router access_log: - name: envoy.file_access_log filter: not_health_check_filter: {} config: json_format: time: "%START_TIME%" protocol: "%PROTOCOL%" duration: "%DURATION%" request_method: "%REQ(:METHOD)%" request_host: "%REQ(HOST)%" path: "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%" response_flags: "%RESPONSE_FLAGS%" route_name: "%ROUTE_NAME%" upstream_host: "%UPSTREAM_HOST%" upstream_cluster: "%UPSTREAM_CLUSTER%" upstream_local_address: "%UPSTREAM_LOCAL_ADDRESS%" path: "/tmp/access.log" clusters: - name: shoppingagg connect_timeout: 0.25s type: strict_dns lb_policy: round_robin hosts: - socket_address: address: webshoppingagg port_value: 86 - name: catalog connect_timeout: 0.25s type: strict_dns lb_policy: round_robin hosts: - socket_address: address: 192.168.1.106 port_value: 5008 - name: basket connect_timeout: 0.25s type: strict_dns lb_policy: round_robin hosts: - socket_address: address: basket-api port_value: 86 - name: ordering connect_timeout: 0.25s type: strict_dns lb_policy: round_robin hosts: - socket_address: address: ordering-api port_value: 86 - name: signalr-hub connect_timeout: 0.25s type: strict_dns lb_policy: round_robin hosts: - socket_address: address: ordering-signalrhub port_value: 86
cd /data/wwwroot/Ali.Mi.Demo
dotnet Ali.Mi.Demo.dll --urls="http://*:5008"
确保防火墙允许以下端口:
firewall-cmd --zone=public --add-port=5008/tcp --permanentfirewall-cmd --reload
访问地址:http://192.168.1.106:5008/catalog-api/catalogs
访问地址:http://192.168.1.106:86/c/catalogs
转载地址:http://hwuwz.baihongyu.com/