使用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.