lizhouyang commented on issue #5834:
URL: https://github.com/apache/apisix/issues/5834#issuecomment-997608346


   还是不行,贴一下我的思路,您帮我看下:
   
   1. 建一个服务,提供OAuth的访问
   ```JSON
   {
     "name": "oauth",
     "upstream_id": "386066599586562754",
     "plugins": {
       "openid-connect": {
         "client_id": "login-client",
         "client_secret": "{noop}openid-connect",
         "disable": false,
         "discovery": 
"http://auth-server:9999/.well-known/openid-configuration";,
         "redirect_uri": "http://lizhouyang.cn:9080/web1/";
       }
     }
   }
   ```
   2. 新建一个路由,将上面的服务关联到路由上。路由配置如下:
   ```JSON
   {
     "uri": "/web1/*",
     "name": "web1",
     "methods": [
       "GET",
       "POST",
       "PUT",
       "DELETE",
       "PATCH",
       "HEAD",
       "OPTIONS",
       "CONNECT",
       "TRACE"
     ],
     "plugins": {
       "proxy-rewrite": {
         "regex_uri": [
           "^/web1/*",
           "/*"
         ]
       }
     },
     "service_id": "386068954721813186",
     "upstream_id": "386066599586562754",
     "labels": {
       "API_VERSION": "1.0"
     },
     "status": 1
   }
   ```
   3. 浏览器访问`http://lizhouyang.cn:9080/web1/' 出现500错误。不跳转,如下图。域名已经映射到我个人MAC。
   <img width="809" alt="企业微信截图_73fb9a73-b919-49a2-a924-ac2b569b530e" 
src="https://user-images.githubusercontent.com/6194509/146715410-c59b50c9-526e-40e7-a872-b784d8f2fa2f.png";>
   
   ---------------------------
   PS:补充一些材料
   1. 
apisix采用docker部署,采用example文件中的docker-compose.yml,只是加了HOSTS域名映射,修改了端口映射,yml如下:
   ```yml
   version: "3"
   
   services:
     apisix-dashboard:
       image: apache/apisix-dashboard:2.9.0
       restart: always
       volumes:
       - ./dashboard_conf/conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml
       ports:
       - "9000:9000"
       networks:
         apisix:
   
     apisix:
       image: apache/apisix:2.10.0-alpine
       restart: always
       volumes:
         - ./apisix_log:/usr/local/apisix/logs
         - ./apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml:ro
       depends_on:
         - etcd
       ##network_mode: host
       ports:
         - "9080:9080/tcp"
         - "9081:9091/tcp"
         - "9082:9443/tcp"
         - "9083:9092/tcp"
       extra_hosts:
         - "auth-server:192.168.65.2"
       networks:
         apisix:
   
     etcd:
       image: bitnami/etcd:3.4.15
       restart: always
       volumes:
         - etcd_data:/bitnami/etcd
       environment:
         ETCD_ENABLE_V2: "true"
         ALLOW_NONE_AUTHENTICATION: "yes"
         ETCD_ADVERTISE_CLIENT_URLS: "http://0.0.0.0:2379";
         ETCD_LISTEN_CLIENT_URLS: "http://0.0.0.0:2379";
       ports:
         - "9084:2379/tcp"
       networks:
         apisix:
   
     web1:
       image: nginx:1.19.0-alpine
       restart: always
       volumes:
         - ./upstream/web1.conf:/etc/nginx/nginx.conf
       ports:
         - "9085:80/tcp"
       environment:
         - NGINX_PORT=80
       networks:
         apisix:
   
     web2:
       image: nginx:1.19.0-alpine
       restart: always
       volumes:
         - ./upstream/web2.conf:/etc/nginx/nginx.conf
       ports:
         - "9086:80/tcp"
       environment:
         - NGINX_PORT=80
       networks:
         apisix:
   
     prometheus:
       image: prom/prometheus:v2.25.0
       restart: always
       volumes:
         - ./prometheus_conf/prometheus.yml:/etc/prometheus/prometheus.yml
       ports:
         - "9087:9090"
       networks:
         apisix:
   
     grafana:
       image: grafana/grafana:7.3.7
       restart: always
       ports:
         - "9088:3000"
       volumes:
         - "./grafana_conf/provisioning:/etc/grafana/provisioning"
         - "./grafana_conf/dashboards:/var/lib/grafana/dashboards"
         - "./grafana_conf/config/grafana.ini:/etc/grafana/grafana.ini"
       networks:
         apisix:
   
   networks:
     apisix:
       driver: bridge
   
   volumes:
     etcd_data:
       driver: local
   ```
   2. 在容器中可以访问.well-known文件,如下:
   <img width="1600" alt="docker内部可以访问auth-server" 
src="https://user-images.githubusercontent.com/6194509/146715780-9dc0d246-bfe4-423c-9dc5-5315b4153676.png";>
   2. OpenID服务采用 
spring-authorization-server服务,回调地址加了`http://lizhouyang.cn:9080/web1/`。自己写的client端可以正常登录。
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscr...@apisix.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to