이 기술 자료 문서에서는 ClickHouse 네이티브 클라이언트를 위해 Nginx와 같은 리버스 프록시를 사용하여 ClickHouse Cloud 인스턴스에 사용자 지정 DNS 별칭을 설정하는 방법을 안내합니다.
서명된 인증서를 사용하는 경우 이 단계는 필요하지 않습니다.
원하는 도메인 이름으로 자체 서명 인증서를 생성하십시오.
이 예시에서는 도메인 이름으로 xyz-customdomain.com을 사용하고
MyCertificate.crt라는 인증서를 생성합니다. 자세한 내용은 “SSL 인증서 생성”
을 참조하십시오.
인증서를 /etc/clickhouse-client/config.xml에 추가하십시오:
<clickhouse>
<openSSL>
<client>
<loadDefaultCAFile>false</loadDefaultCAFile>
<caConfig>/etc/ssl/certs/MyCertificate.crt</caConfig>
<cacheSessions>true</cacheSessions>
<disableProtocols>sslv2,sslv3</disableProtocols>
<preferServerCiphers>true</preferServerCiphers>
<invalidCertificateHandler>
<name>RejectCertificateHandler</name>
</invalidCertificateHandler>
</client>
</openSSL>
</clickhouse>
nginx.conf 파일에 다음 내용을 추가하세요:
proxy_ssl_name xyz.us-west-2.aws.clickhouse.cloud;
proxy_ssl_server_name on;
stream {
upstream stream_backend {
server xyz.us-west-2.aws.clickhouse.cloud:9440;
}
server {
listen 9440 ssl;
proxy_pass stream_backend;
ssl_certificate /etc/ssl/certs/MyCertificate.crt;
ssl_certificate_key /etc/ssl/certs/MyKey.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 4h;
ssl_handshake_timeout 30s;
proxy_ssl on;
proxy_ssl_trusted_certificate /etc/ssl/certs/isrgrootx1.pem;
proxy_ssl_session_reuse on;
proxy_ssl_verify on;
proxy_ssl_name xyz.us-west-2.aws.clickhouse.cloud;
proxy_ssl_server_name on;
}
}
여기서 isrgrootx1.pem은 ClickHouse Cloud의 루트 인증서로,
여기에서 다운로드할 수 있습니다.
자체 도메인 컨트롤러를 사용하는 경우에는 다음 단계가 필요하지 않습니다
Nginx 서버의 /etc/hosts 파일에 다음 내용을 추가하세요:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost6 localhost6.localdomain6
10.X.Y.Z xyz-customdomain.com
여기서 10.X.Y.Z는 사용 중인 Nginx 서버의 IP 주소입니다.
이제 사용자 지정 별칭으로 연결할 수 있습니다:
clickhouse-client --host xyz.customdomain.com --secure --password 'xxxxxxx'
ClickHouse client version 23.12.1.428 (official build).
Connecting to xyz.customdomain.com:9440 as user default.
Connected to ClickHouse server version 23.9.2.
clickhouse-cloud :)