You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Docker配置Nginx转发流量至本地Elasticsearch与Kibana

用Docker Compose配置Nginx反向代理方案

核心思路

通过Docker Compose部署Nginx容器,挂载自定义代理配置文件,实现端口映射与请求转发:将外部https://<my_public_ip>:9220转发至本地ES服务,http://<my_public_ip>:5611转发至本地Kibana服务。


步骤1:准备Nginx配置文件

创建目录结构:

mkdir -p nginx/conf.d nginx/certs

在nginx/conf.d/proxy.conf中写入代理规则:

# 转发Elasticsearch的HTTPS请求
server {
    listen 9220 ssl;
    server_name _;

    # 配置SSL证书路径(对应容器内挂载路径)
    ssl_certificate /etc/nginx/certs/server.crt;
    ssl_certificate_key /etc/nginx/certs/server.key;

    location / {
        proxy_pass https://host.docker.internal:9200;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # 若ES用自签证书,关闭SSL验证;正式环境建议配置可信CA
        proxy_ssl_verify off;
    }
}

# 转发Kibana的HTTP请求
server {
    listen 5611;
    server_name _;

    location / {
        proxy_pass http://host.docker.internal:5601;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

步骤2:生成自签SSL证书(测试用)

若没有正式SSL证书,可在nginx/certs目录下生成自签证书:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ./nginx/certs/server.key -out ./nginx/certs/server.crt

按提示填写信息即可,测试场景下可随意输入。

步骤3:编写Docker Compose文件

创建docker-compose.yml:

version: '3.8'

services:
  nginx-proxy:
    image: nginx:alpine
    ports:
      - "9220:9220"  # 外部HTTPS端口映射
      - "5611:5611"   # 外部HTTP端口映射
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d  # 挂载代理配置
      - ./nginx/certs:/etc/nginx/certs    # 挂载SSL证书
    extra_hosts:
      - "host.docker.internal:host-gateway"  # 让容器访问主机本地服务
    restart: unless-stopped

步骤4:启动容器

进入docker-compose.yml所在目录,执行:

docker-compose up -d

验证与注意事项

  • 测试访问:https://<你的公网IP>:9220应返回ES响应,http://<你的公网IP>:5611应打开Kibana界面
  • 若ES/Kibana本身是Docker部署的,可将Nginx加入同一自定义网络,直接用服务名(如elasticsearch:9200)代替host.docker.internal:9200,稳定性更高
  • 确保服务器防火墙开放9220、5611端口,否则外部无法访问

内容的提问来源于stack exchange,提问作者Thanh Pham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 03:27:54