使用Nginx进行TCP代理

首先

建立TCP代理的Nginx备忘录。

环境

    • Docker version 20.10.14

 

    Docker Compose version v2.20.3

Nginx容器的配置

客户端通过Nginx尝试访问Clickhouse。

services:
  nginx:
    container_name: nginx
    hostname: nginx
    image: nginx:latest
    ports:
      - '9000:9000'
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf

  clickhouse:
    image: clickhouse/clickhouse-server:23.3.8.21
    container_name: clickhouse
    hostname: clickhouse
    restart: always
    ipc: host

nginx.conf 的设置如下。


user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}

stream {
    upstream clickhouse-server {
        # コンテナサービス名を指定
        server clickhouse:9000;
    }
    server {
        # リッスンポート
        listen   9000;
        proxy_pass clickhouse-server;
        # allow {許可IP};
        # deny all;
    }
}

容器建立

在具有compose.yaml文件的目录中执行以下操作。

docker-compose up -d

或者

docker compose up -d

请确认访问。

curl localhost:9000

暂时看起来是连接的。

Port 9000 is for clickhouse-client program
You must use port 8123 for HTTP.
广告
将在 10 秒后关闭
bannerAds