Docker+Traefik部署ElasticSearch(带SSL)无法通过域名连接求助
解决方案:Docker+Traefik部署ElasticSearch无法通过域名访问的问题
问题根源及修复步骤:
网络隔离导致Traefik无法访问Elasticsearch:
Elasticsearch容器仅加入了search网络,但Traefik运行在外部的traefik网络中,两者无网络连通性,Traefik无法转发请求到Elasticsearch。
修复:给Elasticsearch服务添加traefik网络:networks: - search - traefikTraefik路由配置语法错误:
entrypoints字段的配置缺少赋值符号=,正确格式应为key=value,而非直接写entrypoints名称。
修复:修正Elasticsearch的Traefik标签中entrypoints配置行:- "traefik.http.routers.elastic_search.entrypoints=websecure"
修正后的Elasticsearch服务完整配置片段:
services: elasticsearch: image: elasticsearch:7.16.2 container_name: elasticsearch environment: - xpack.security.enabled=false - discovery.type=single-node - ELASTICSEARCH_USERNAME=elastic - ELASTICSEARCH_PASSWORD=XXXXXX volumes: - elasticsearch-data:/usr/share/elasticsearch/data labels: - "traefik.enable=true" - "traefik.http.routers.elastic_search.rule=Host(`se.mydomain.xyz`)" - "traefik.http.routers.elastic_search.entrypoints=websecure" - "traefik.http.services.elastic_search.loadbalancer.server.port=9200" ports: - 9200:9200 - 9300:9300 networks: - search - traefik
修改后重新启动容器:
docker-compose up -d elasticsearch
此时应该可以通过https://se.mydomain.xyz正常访问Elasticsearch服务。
内容的提问来源于stack exchange,提问作者UhrenLove
相关产品推荐
相关产品推荐

