ClickHouse配置Nginx进⾏负载均衡安装依赖模块
yum -y install gcc gcc-c++ autoconf automake make
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
下载解压Nginx
cd /home
wget /download/nginx-1.18.
tar -xvf nginx-1.18.
cd nginx-1.18.0
编译安装
不带⽤户模式
./configure --prefix=/home/nginx --with-http_stub_status_module \
-
-with-http_ssl_module --with-stream \
--with-http_gzip_static_module \
--with-http_sub_module
带⽤户模式
./configure --user=www --group=www --prefix=/home/nginx \
--with-http_stub_status_module \
--with-http_ssl_module --with-stream \
--with-http_gzip_static_module \
--with-http_sub_module
make&&make install
修改 f 配置
添加如下配置,tcp协议访问数据库,181,182,183,184为clickhouse的四个节点
nginx监听clickhouse端⼝为18123
stream {
upstream ck {
server 172.16.10.181:8123;
server 172.16.10.182:8123;
server 172.16.10.183:8123;
server 172.16.10.184:8123;
}
server {
listen 18123;
proxy_pass ck;
}
全部配置⽂件如下
#user nobody;
worker_processes 8;
error_log /home/nginx/logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#error_log logs/error.log info;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
stream {
upstream ck {
server 172.16.10.181:8123;
server 172.16.10.182:8123;
server 172.16.10.183:8123;
server 172.16.10.184:8123;
}
server {
listen 18123;
proxy_pass ck;
}
log_format proxy '$remote_addr [$time_local] '
'$protocol$status$bytes_sent$bytes_received '
'$session_time "$upstream_addr" '
'"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';
access_log /home/nginx/logs/tcp-access.log proxy ;
open_log_file_cache off;
}
http {
include pes;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status$body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /home/nginx/logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 60;
gzip on;
server {
listen 18080;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}nginx 配置文件
}
}
配置⽂件验证
nginx -t
启动nginx
nginx
nginx -s reload
查看⽇志信息
cd /home/nginx/logs
[root@nginx logs]# ls
access.log error.log nginx.pid tcp-access.log
实时查看连接
tail -f tcp-access.log
程序访问
访问很简单,只要把原先代码中的JDBC连接,IP跟端⼝号修改为nginx的IP跟监听端⼝就⾏
Nginx参数配置
down 表⽰负载过重或者不参与负载
weight 权重过⼤代表承担的负载就越⼤
backup 其它服务器时或down时才会请求backup服务器
max_fails 失败超过指定次数会暂停或请求转往其它服务器
fail_timeout 失败超过指定次数后暂停时间
Nginx负载⽅式
1. 轮询(默认)
每个请求按时间顺序逐⼀分配到不同的后端服务器,如果后端服务器down掉,能⾃动剔除。
2. weight
指定轮询⼏率,weight和访问⽐率成正⽐,⽤于后端服务器性能不均的情况。
3. ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问⼀个后端服务器,可以解决session的问题。
4. fair(第三⽅)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
5. url_hash(第三⽅)
按访问url的hash结果来分配请求,使每个url定向到同⼀个后端服务器,后端服务器为缓存时⽐较有效。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论