You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by GitBox <gi...@apache.org> on 2021/03/04 02:02:49 UTC
[GitHub] [apisix] simeon49 opened a new issue #3744: bug: "could not be resolved (3: Host not found)" error in docker-compose env
simeon49 opened a new issue #3744:
URL: https://github.com/apache/apisix/issues/3744
### Issue description
最近在使用APISIX 的服务比较频繁的报 "{'http_status_code': 500, 'content': {'error_msg': 'etcd-node2 could not be resolved (3: Host not found)'}}" 错误, 我们的环境是通过docker-compose 启动, 注意: 这个在服务运行过程中不是一直包错, 而是比较频繁报这个错误
### Environment
* apisix version (cmd: `apisix version`): apisix 2.0 (docker image)
* OS (cmd: `uname -a`): Ubuntu 18.04
* OpenResty / Nginx version (cmd: `nginx -V` or `openresty -V`): openresty/1.19.3.1
* etcd version, if have (cmd: run `curl http://127.0.0.1:9090/v1/server_info` to get the info from server-info API): etcd:3.4.9
* apisix-dashboard version, if have:
### docker-compose 配置:
```yaml
version: '3'
networks:
default:
external:
name: dev-network
services:
# --- API网关 ---
apisix:
container_name: apisix
image: apisix:2.0
restart: always
volumes:
- ./configs/apisix/config/config.yaml:/usr/local/apisix/conf/config.yaml:ro
- /data/apisix_log:/usr/local/apisix/logs
depends_on:
- etcd
ports:
- '8080:9080/tcp'
- '8443:9443/tcp'
# --- etcd ---
etcd:
container_name: etcd
image: bitnami/etcd:3.4.9
user: root
restart: always
volumes:
- /data/etcd_data:/etcd_data
environment:
ETCD_DATA_DIR: /etcd_data
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:
- '2379:2379/tcp'
networks:
default:
aliases:
- etcd
# ...other services ....
```
### config.yaml
```yaml
apisix:
node_listen: 9080 # APISIX listening port
enable_heartbeat: true
enable_admin: true
enable_admin_cors: true # Admin API support CORS response headers.
enable_debug: false
enable_dev_mode: false # Sets nginx worker_processes to 1 if set to true
enable_reuseport: true # Enable nginx SO_REUSEPORT switch if set to true.
enable_ipv6: true
config_center: etcd # etcd: use etcd to store the config value
# yaml: fetch the config value from local yaml file `/your_path/conf/apisix.yaml`
#proxy_protocol: # Proxy Protocol configuration
# listen_http_port: 9181 # The port with proxy protocol for http, it differs from node_listen and port_admin.
# This port can only receive http request with proxy protocol, but node_listen & port_admin
# can only receive http request. If you enable proxy protocol, you must use this port to
# receive http request with proxy protocol
# listen_https_port: 9182 # The port with proxy protocol for https
# enable_tcp_pp: true # Enable the proxy protocol for tcp proxy, it works for stream_proxy.tcp option
# enable_tcp_pp_to_upstream: true # Enables the proxy protocol to the upstream server
proxy_cache: # Proxy Caching configuration
cache_ttl: 10s # The default caching time if the upstream does not specify the cache time
zones: # The parameters of a cache
- name: disk_cache_one # The name of the cache, administrator can be specify
# which cache to use by name in the admin api
memory_size: 50m # The size of shared memory, it's used to store the cache index
disk_size: 1G # The size of disk, it's used to store the cache data
disk_path: "/tmp/disk_cache_one" # The path to store the cache data
cache_levels: "1:2" # The hierarchy levels of a cache
# - name: disk_cache_two
# memory_size: 50m
# disk_size: 1G
# disk_path: "/tmp/disk_cache_two"
# cache_levels: "1:2"
allow_admin: # http://nginx.org/en/docs/http/ngx_http_access_module.html#allow
- 127.0.0.0/12 # If we don't set any IP list, then any IP access is allowed by default.
- 172.17.0.0/12
- 192.168.0.0/12
- 10.0.0.0/8
- "::/64"
# port_admin: 9180 # use a separate port
# Default token when use API to call for Admin API.
# *NOTE*: Highly recommended to modify this value to protect APISIX's Admin API.
# Disabling this configuration item means that the Admin API does not
# require any authentication.
admin_key:
-
name: "admin"
key: frmGtg8EdhXhE0o0sYc3DU4823M2SOoW
role: admin # admin: manage all configuration data
# viewer: only can view configuration data
-
name: "viewer"
key: w43eJbMFDbiusHsmYCdwDe4oWqj3dnsT
role: viewer
router:
http: 'radixtree_uri' # radixtree_uri: match route by uri(base on radixtree)
# radixtree_host_uri: match route by host + uri(base on radixtree)
ssl: 'radixtree_sni' # radixtree_sni: match route by SNI(base on radixtree)
# stream_proxy: # TCP/UDP proxy
# tcp: # TCP proxy port list
# - 9100
# - 9101
# udp: # UDP proxy port list
# - 9200
# - 9211
dns_resolver: # default DNS resolver, with disable IPv6 and enable local DNS
- 127.0.0.11
- 114.114.114.114
- 223.5.5.5
- 1.1.1.1
- 8.8.8.8
dns_resolver_valid: 30 # valid time for dns result 30 seconds
resolver_timeout: 5 # resolver timeout
ssl:
enable: true
enable_http2: true
listen_port: 9443
ssl_protocols: "TLSv1 TLSv1.1 TLSv1.2 TLSv1.3"
ssl_ciphers: "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA"
nginx_config: # config for render the template to genarate nginx.conf
error_log: "logs/error.log"
error_log_level: "warn" # warn,error
worker_rlimit_nofile: 20480 # the number of files a worker process can open, should be larger than worker_connections
event:
worker_connections: 10620
http:
access_log: "logs/access.log"
keepalive_timeout: 60s # timeout during which a keep-alive client connection will stay open on the server side.
client_header_timeout: 60s # timeout for reading client request header, then 408 (Request Time-out) error is returned to the client
client_body_timeout: 60s # timeout for reading client request body, then 408 (Request Time-out) error is returned to the client
send_timeout: 10s # timeout for transmitting a response to the client.then the connection is closed
underscores_in_headers: "on" # default enables the use of underscores in client request header fields
real_ip_header: "X-Real-IP" # http://nginx.org/en/docs/http/ngx_http_realip_module.html#real_ip_header
real_ip_from: # http://nginx.org/en/docs/http/ngx_http_realip_module.html#set_real_ip_from
- 127.0.0.1
- 'unix:'
#lua_shared_dicts: # add custom shared cache to nginx.conf
# ipc_shared_dict: 100m # custom shared cache, format: `cache-key: cache-size`
etcd:
host: # it's possible to define multiple etcd hosts addresses of the same etcd cluster.
- "http://etcd:2379" # multiple etcd address
prefix: "/apisix" # apisix configurations prefix
timeout: 3 # 3 seconds
plugins: # plugin list
- example-plugin
- limit-req
- limit-count
- limit-conn
- key-auth
- basic-auth
- prometheus
- node-status
- jwt-auth
- zipkin
- ip-restriction
- grpc-transcode
- serverless-pre-function
- serverless-post-function
- openid-connect
- proxy-rewrite
- redirect
- response-rewrite
- fault-injection
- udp-logger
- wolf-rbac
- proxy-cache
- tcp-logger
- proxy-mirror
- kafka-logger
- cors
stream_plugins:
- mqtt-proxy
```
### What's the actual result? (including assertion message & call stack if applicable)
Exception: {'http_status_code': 500, 'content': {'error_msg': 'etcd could not be resolved (3: Host not found)'}}
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [apisix] spacewander commented on issue #3744: bug: "could not be resolved (3: Host not found)" error in docker-compose env
Posted by GitBox <gi...@apache.org>.
spacewander commented on issue #3744:
URL: https://github.com/apache/apisix/issues/3744#issuecomment-790276615
So where you put the `etcd-node2`? It is not a domain name.
And I can even understand which host is not found. Sometimes you say it is `etcd-node2` but sometimes you say it is `etcd`.
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [apisix] spacewander commented on issue #3744: bug: "could not be resolved (3: Host not found)" error in docker-compose env
Posted by GitBox <gi...@apache.org>.
spacewander commented on issue #3744:
URL: https://github.com/apache/apisix/issues/3744#issuecomment-790251988
Got it. APISIX doesn't support resolving etcd's domain from /etc/hosts yet.
Maybe you can use `docker network` and configure an IP for the etcd?
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [apisix] simeon49 commented on issue #3744: bug: "could not be resolved (3: Host not found)" error in docker-compose env
Posted by GitBox <gi...@apache.org>.
simeon49 commented on issue #3744:
URL: https://github.com/apache/apisix/issues/3744#issuecomment-790246535
> There is not `http_status_code` in APISIX. Make sure the error message is _really_ come from APISIX.
this error come from an other service witch use apisix, the response of apisix is {'error_msg': 'etcd could not be resolved (3: Host not found)'} with 500 http error code
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [apisix] simeon49 commented on issue #3744: bug: "could not be resolved (3: Host not found)" error in docker-compose env
Posted by GitBox <gi...@apache.org>.
simeon49 commented on issue #3744:
URL: https://github.com/apache/apisix/issues/3744#issuecomment-790260314
> Got it. APISIX doesn't support resolving etcd's domain from /etc/hosts yet.
> Maybe you can use `docker network` and configure an IP for the etcd?
"etcd" not in /etc/hosts, I use docker network with name "dev-network"
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [apisix] spacewander commented on issue #3744: bug: "could not be resolved (3: Host not found)" error in docker-compose env
Posted by GitBox <gi...@apache.org>.
spacewander commented on issue #3744:
URL: https://github.com/apache/apisix/issues/3744#issuecomment-790294829
AFAIK, docker compose will inject those names into containers' /etc/hosts.
And you can assign a static IP in docker compose.
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [apisix] spacewander edited a comment on issue #3744: bug: "could not be resolved (3: Host not found)" error in docker-compose env
Posted by GitBox <gi...@apache.org>.
spacewander edited a comment on issue #3744:
URL: https://github.com/apache/apisix/issues/3744#issuecomment-790276615
So where you put the `etcd-node2`? It is not a domain name.
And I can't even understand which host is not found. Sometimes you say it is `etcd-node2` but sometimes you say it is `etcd`.
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [apisix] spacewander commented on issue #3744: bug: "could not be resolved (3: Host not found)" error in docker-compose env
Posted by GitBox <gi...@apache.org>.
spacewander commented on issue #3744:
URL: https://github.com/apache/apisix/issues/3744#issuecomment-790240868
There is not `http_status_code` in APISIX. Make sure the error message is *really* come from APISIX.
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [apisix] spacewander commented on issue #3744: bug: "could not be resolved (3: Host not found)" error in docker-compose env
Posted by GitBox <gi...@apache.org>.
spacewander commented on issue #3744:
URL: https://github.com/apache/apisix/issues/3744#issuecomment-800741565
Closed as lack of response.
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [apisix] spacewander closed issue #3744: bug: "could not be resolved (3: Host not found)" error in docker-compose env
Posted by GitBox <gi...@apache.org>.
spacewander closed issue #3744:
URL: https://github.com/apache/apisix/issues/3744
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org