yuqiquan opened a new issue, #9263:
URL: https://github.com/apache/apisix/issues/9263

   ### Description
   
   先将etcd集群在某一台apisix实例中配置一条路由,路由详情如下:
   ```
   {
     "uri": "*",
     "name": "etcd数据库",
     "methods": [
       "GET",
       "POST",
       "PUT",
       "DELETE",
       "PATCH",
       "HEAD",
       "OPTIONS",
       "CONNECT",
       "TRACE"
     ],
     "host": "yuqiquan.made-in-china.com",
     "upstream": {
       "nodes": [
         {
           "host": "10.110.3.50",
           "port": 2379,
           "weight": 1
         },
         {
           "host": "10.110.3.51",
           "port": 2379,
           "weight": 1
         },
         {
           "host": "10.110.3.52",
           "port": 2379,
           "weight": 1
         }
       ],
       "timeout": {
         "connect": 120,
         "send": 120,
         "read": 120
       },
       "type": "roundrobin",
       "scheme": "http",
       "pass_host": "pass",
       "keepalive_pool": {
         "idle_timeout": 60000000,
         "requests": 10000,
         "size": 320
       }
     },
     "status": 1
   }
   ```
   然后配置证书
   我能确保它http,https请求都是通的,正常的
   
![image](https://user-images.githubusercontent.com/44921350/230588326-63709ee8-c4ec-4531-8a2c-96d82c7e9af4.png)
   
![image](https://user-images.githubusercontent.com/44921350/230588378-8473488c-38ca-4c27-bc5b-af7dabda164e.png)
   
   
   之后我换了一台apisix实例机器,在这台实例apisix中,有关etcd配置如下:
   
   ```
   etcd:
     host:                          
       - "https://yuqiquan.made-in-china.com:443";   
     prefix: /test114                 # apisix configurations prefix
     timeout: 30                     # 30 seconds
     #resync_delay: 5                # when sync failed and a rest is needed, 
resync after the configured seconds plus 50% random jitter
     health_check_timeout: 10       # etcd retry the unhealthy nodes after the 
configured seconds
     health_check_retry: 2           # etcd retry time that only affects the 
health check, default 2
     user: fwd                     # root username for etcd
     password: fwd       # root password for etcd
     tls:
       cert: /usr/local/apisix/conf/server.crt       
       key: /usr/local/apisix/conf/server.key         
       verify: false                      
       sni: yuqiquan.made-in-china.com     
   ```          
   同时我将    ssl 的 ssl_trusted_certificate 注释掉
   
![image](https://user-images.githubusercontent.com/44921350/230589159-de2970ca-8a0d-4037-a2a5-b4798a2522e3.png)
    
   然后启动apisix ,发现启动以后 etcd里的数据 
apisix能够获取到,但是如果我在dashboard中修改了路由信息,数据并不能同步到apisix,这里我就觉得是监听出了状况,查看源码,知道监听机制的超时时间是30s。结合日志
  在这30秒内,发现修改数据监听不到。  相关etcd 访问日志如下:
   
![image](https://user-images.githubusercontent.com/44921350/230590014-78c2efc2-df7d-4bec-8daa-0f6b1244ba2b.png)
   
   而如果etcd host 配置成 http://yuqiquan.made-in-china.com:80  就是正常的
   
   etcd访问日志是这样
   
![image](https://user-images.githubusercontent.com/44921350/230590433-b58ebbcb-0073-49eb-85ad-f1001941bfdf.png)
   
   
   我分析了下lua 源码,发现在执行监听的时候  
   config_etcd.lua 中的
   
![image](https://user-images.githubusercontent.com/44921350/230590927-621b15d4-3e4c-4043-b9e0-4f26f499f8fc.png)
   会返回nil,timeout
   
   
   https的会出现timeout的异常,而http的没有
   
   想请教下这个问题该怎么解决
   
   
   
   
   
   
   
   
   
   
   
   
   ### Environment
   
   - APISIX version (run `apisix version`): 2.15.0
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to