Clickhouse分http连接、tcp连接,http是jdbc连接的,端口8123,tcp是driver连接的,端口是9000,命令行CLI底层是基于tcp接口通信的,通过clickhouse-client连接。
http连接是没有外网的,就需要通过nginx的stream代理端口出来。
在nginx.conf的http外添加stream,注意要安装有stream模块才行。
stream {
upstream clickhouse_log {
hash $remote_addr consistent;
server 1xx.xx.xx.xxx:8123;
}
server {
listen 8123;
proxy_connect_timeout 10s;
proxy_timeout 900s;
proxy_pass clickhouse_log;
}
}
原先使用的nginx版本是:nginx version: nginx/1.16.0
配置一直都生效的,但后面不知道怎么就不行了,怎么都找不到问题,全关了防火墙测试的。
代理服务器curl ip:代理端口,是Ok的。
[root@VM_centos nginx]# curl 1xx.xx.xx.xxx:8123
Ok.
最后没办法,升nginx版本,换成1.20.1 版本就可以了,配置没变。
此外还需要注意开放云防火墙端口、服务器防火墙端口。