当前位置:   article > 正文

nginx整合kafka_nginx kafka location

nginx kafka location

nginx整合kafka

 

1. nginx 1.12.2安装

  • 安装nginx依赖包

nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法

yum -y install pcre pcre-devel

nginx的各种模块中需要使用gzip压缩

yum -y install zlib zlib-devel

安全套接字层密码库

yum -y install openssl openssl-devel
  • 下载nginx包并解压

  1. cd /usr/local/src
  2. wget http://nginx.org/download/nginx-1.12.2.tar.gz
  3. tar -zxvf nginx-1.12.2.tar.gz

2. 安装nginx-kafka插件ngx_kafka_module

gitlab地址:https://github.com/brg-liuwei/ngx_kafka_module

  • 安装git

yum install -y git
  • cd到/usr/local/src目录,将kafka的c客户端源码clone到本地

  1. git clone https://github.com/edenhill/librdkafka
  2. #建议直接下载好,解压https://github.com/edenhill/librdkafka
  1. cd librdkafka
  2. yum install -y gcc gcc-c++ pcre-devel zlib-devel
  3. ./configure
  4. make && make install
  • 将ngx_kafka_module编译到nginx(编译nginx,然后将插件同时编译)

  1. cd /usr/local/src
  2. git clone https://github.com/brg-liuwei/ngx_kafka_module
  3. cd /usr/local/src/nginx-1.12.2
  4. ./configure --add-module=/usr/local/src/ngx_kafka_module/
  5. make && make install
  • 修改nginx.conf文件

  1. #nginx的安装目录下
  2. cd /usr/local/nginx/conf
  3. vim nginx.conf
  1. #修改或新增的配置
  2. http {
  3.    # some other configs
  4.   kafka;
  5.   kafka_broker_list linux128:9092; # host:port ...
  6.   server {
  7.        # some other configs
  8.       listen       80;
  9.       server_name linux128;
  10.        
  11.       location = /kafka/test {
  12.            # optional directive: kafka_partition [<partition-num> | auto]
  13.            #
  14.            # kafka_partition auto; # default value
  15.            # kafka_partition 0;
  16.            # kafka_partition 1;
  17.            #允许cros跨域访问
  18.           add_header 'Access-Control-Allow-Origin' '*';
  19.           kafka_topic test;#kafka topic名称
  20.       }
  21.   }
  22. }

3.启动zk,kafka集群,创建test 主题

启动zk,kafka集群,略。

创建test 主题

kafka-topics.sh -zookeeper linux128:2181  --create --topic test --partitions 1 --replication-factor 1  

4. 启动nginx

  1. cd /usr/local/nginx/sbin
  2. nginx

查看nginx进程

ps -ef | grep nginx

5. 测试是否向kafka发送数据成功

  1. curl localhost/kafka/test -d "message send to kafka topic"
  2. #or you can use -v or --verbose to see http request and response for detail:
  3. curl localhost/kafka/test -d "hello ngx_kafka_module" -v

开启客户端消费者验证

kafka-console-consumer.sh --zookeeper linux128:2181 --topic test --from-beginning

6. 配置过程报错解决

  • 安装了Nginx之后,启动时报错,找不到kafka.so.1这个文件。

error while loading shared libraries: librdkafka.so.1: cannot open shared object file: No such file or directory

解决办法:加载so库

#/etc/ld.so.conf这个是Linux上的文件,里面放的东西是指定Linux在启动时要加载的文件。
echo "/usr/local/lib" >> /etc/ld.so.conf

执行下面的命令使修改生效:

ldconfig
  • 执行curl命令,返回404错误

常见原因,1.检查curl指定的链接是否错误。2.检查nginx.conf文件是否配置正确(修改的nginx.conf文件是安装目录下的,而不是源码目录下的)。

  • html页面埋点跨域问题

在nginx.conf中编辑:add_header 'Access-Control-Allow-Origin' '*';

  1. location = /kafka/test {
  2.           #允许跨域访问
  3.           add_header 'Access-Control-Allow-Origin' '*';
  4.           kafka_topic test;#kafka topic名称
  5.       }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/192731
推荐阅读
相关标签
  

闽ICP备14008679号