Nginx配置Kafka

Nginx

是一个轻量级的web服务器,可以支持反向代理、负载均衡,具有占用资源少,并发量大等特点。

下载

http://nginx.org/en/download.html

解压

tar -zxvf nginx-1.16.1.tar.gz   ~   

进行预编译

cd /root/nginx-1.16.1
./configure

如果报错 安装 gcc 和 PCRE
yum -y install gcc pcre-devel openssl openssl-devel

执行完 ./configure 会在nginx根目录下生成MakeFile

编译安装

make && make install

nginx 的安装目录

进入nginx的安装目录

cd  cd /usr/local/nginx/

启动

sbin/nginx
netstat -anpt |grep nginx

实现负载均衡

将springboot的jar或者war包上传到不同服务器上

# 启动
nohup java -jar test-0.01.war >>./logs/log 2>&1 & 

修改nginx的配置文件,让nginx实现负载均衡

vim /usr/local/nginx/conf/nginx.conf
 http {
        #响应数据来源  权重都为1 表示 按轮询的方式
      upstream tomcats{
          server node1.hadoop.com:8080 weight=1;
          server node2.hadoop.com:8080 weight=1;
          server node3.hadoop.com:8080 weight=1;
      }
      
      server {
       # 表示将所有请求都转发到 tomcats 中
          location ~ .* {
                  proxy_pass http://tomcats;
          }
    }
     
}
  • 测试配置文件是否ok
sbin/nginx -t
#从新加载
sbin/nginx -s reload

nginx 整合 kafka

安装kafka的c库插件

cd /usr/local/src
git clone https://github.com/edenhill/librdkafka
cd librdkafka
# 编译
安装 gcc-c++ 等
yum install -y gcc-c++ pcre-devel zlib-devel
./configure
make && make install

下载 nginx-kafka插件

cd /usr/local/src
git clone https://github.com/brg-liuwei/ngx_kafka_module

编译nginx并将插件一同编译进去

cd nginx-1.16.1
./configure --add-module=/usr/local/src/ngx_kafka_module
make && make install

配置

vim config/nginx.conf
http{
    kafka;
    kafka_broker_list 127.0.0.1:9092 127.0.0.1:9093;
    
    server {

        # some other configs

        # 指定kafka  /kafka/track 表示一个路径,请求该路径会将数据写入名为 track的topic 
        location = /kafka/track {
            # optional directive: kafka_partition [<partition-num> | auto]
            #
            # kafka_partition auto; # default value
            # kafka_partition 0;
            # kafka_partition 1;
            
            #要写入 kafka 的 topic
            kafka_topic track;
        }
    }
    
}

启动zk & kafka 并创建topic

启动nginx

启动之前要将kafka c本地动态链接库加载到系统
echo "/usr/local/lib" >> /etc/ld.so.conf
ldconfig

sbin/nginx -t
sbin/nginx

# 向nginx 发送请求 参数 为-d后面的值
curl localhost/kafka/trank -d "message send to kafka topic"

配置成功后,可用通过get、post请求直接向nginx发送请求,nginx-kafka插件直接将参数发送到kafka对应的topic中。

原文地址:https://www.cnblogs.com/maguangyi/p/14215170.html