`

CentOS7 安装kong API 网关

阅读更多

微服务化是当前主流架构理念,谈到微服务离不开API网关和服务治理相关内容。目前使用较多的大概有以dubbo、spring cloud为代表的java系和以空openresty为代表的C系。

在安装KONG时遇到各种依赖问题,这里做部分整理,其中有一个问题比较有代表性,问题报错如下:

[root@localhost work]# luarocks install luaossl-20190731-0.src.rock
luaossl 20190731-0 depends on lua (5.1-1 provided by VM)
Applying patch config.h.diff...
Hunk 1 found at offset 2...
gcc -O2 -fPIC -I/usr/local/openresty/luajit/include/luajit-2.1 -c src/openssl.c -o src/openssl.o -D_REENTRANT -D_THREAD_SAFE -DCOMPAT53_PREFIX=luaossl -D_GNU_SOURCE -I/usr/include -I/usr/include
gcc -O2 -fPIC -I/usr/local/openresty/luajit/include/luajit-2.1 -c vendor/compat53/c-api/compat-5.3.c -o vendor/compat53/c-api/compat-5.3.o -D_REENTRANT -D_THREAD_SAFE -DCOMPAT53_PREFIX=luaossl -D_GNU_SOURCE -I/usr/include -I/usr/include
gcc -shared -o _openssl.so src/openssl.o vendor/compat53/c-api/compat-5.3.o -L/usr/lib64 -L/usr/lib64 -Wl,-rpath,/usr/lib64 -Wl,-rpath,/usr/lib64 -lssl -lcrypto -lpthread -lm -ldl
/usr/bin/ld: cannot find -lssl
/usr/bin/ld: cannot find -lcrypto
collect2: error: ld returned 1 exit status
Error: Build error: Failed compiling module _openssl.so

 报错的核心意思是gcc编译过程中在调用ld时,找不到-lssl和-lcrypto,通过man ld查看帮助,-l参数是在LD_LIBRARY_PATH下查找动态库,查找文件名规则实际是libXXX.so,对应到本例的报错信息,就是在LD_LIBRARY_PATH下找不到libssl.so和。

那么LD_LIBRARY_PATH到底是什么呢?

echo $LD_LIBRARY_PATH

 返回的是空,也就是说不存在该环境变量,但是ld肯定是有默认加载路径的,怎么知道默认查找路径呢?man手册中也有说明:

root@localhost work]# ld lssl --verbose
GNU ld version 2.27-43.base.el7
  Supported emulations:
   elf_x86_64
  ...
using internal linker script:
==================================================
/* Script for -z combreloc: combine and sort reloc sections */.
OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
              "elf64-x86-64")
OUTPUT_ARCH(i386:x86-64)
ENTRY(_start)
SEARCH_DIR("=/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/usr/lib64"); ......SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib");

 以上的 SEARCH_DIR就是查找路径,按理说标准的系统中各种ssl等基础库应该是全的,那到底有没有呢?

[root@localhost kong-master]# find / -name libssl.so*
/usr/lib64/libssl.so.10
/usr/lib64/libssl.so.1.0.2k
/usr/local/openssl/lib/libssl.so.1.1
/usr/local/openssl/lib/libssl.so
/home/work/source/openssl-1.1.1g/libssl.so.1.1
/home/work/source/openssl-1.1.1g/libssl.so

 系统中其实是有相应的动态库的,只不过版本还有差别.10就是版本号了,那剩下就容易了,如果不关注版本号,找一个建个软连接就可以了。

ln -s libcrypto.so.10 libcrypto.so

 以上问题在linux下安装软件时经常会遇到,解决思路可参考本文。

分享到:
评论

相关推荐

    CentOS 7.1 离线安装API -kong所需依赖包

    本文将深入探讨如何在CentOS 7.1环境下离线安装Kong API网关及其依赖包。 首先,让我们了解Kong的基本概念。Kong是一个基于开放源代码的API Gateway,它使用了高性能的NGINX Web服务器作为基础。Kong的主要功能包括...

    API网关Kong实战(水印).pdf

    Kong是一个高可用、易扩展的API网关项目,其核心基于OpenResty构建,利用了Nginx的高性能和Lua语言的灵活性。Kong的设计允许它轻松应对大量网络请求,并且可以水平扩展,实现多个Kong服务器的集群部署。它通过负载...

    API 网关KONGA安装手册

    基于centos 7.0,6.5 等安装测试,带网管配置界面,根据用户角色授权等。

    Centos7部署kongv0.14.x 完整文档

    本文档旨在提供一套详细的Centos7环境下部署Kong API网关(版本v0.14.x)的操作指南,包括单机部署以及必要的前置条件准备。通过本教程的学习与实践,读者将能够掌握Kong在Centos7下的安装与配置流程,从而快速搭建...

    API网关(ApiSixV2.1)使用指南.docx

    ### API网关(ApiSixV2.1)使用指南 #### Apache APISIX 介绍 Apache APISIX 是一款基于 Nginx 网络库和 etcd 的高性能、动态、实时 API 网关,其提供了包括但不限于负载均衡、动态上游、灰度发布、服务熔断、身份...

    API网关选型对比之APISIX

    本文档旨在介绍APISIX这一API网关解决方案的特点与优势,并通过对比其他主流API网关(如Kong),为组织提供一份详实的选型参考。 ##### 1.2 文档范围 本文将详细介绍APISIX的基本概念、安装部署过程以及其在实际...

    kong-1.5.0.el7.amd64.rpm

    ong 是在客户端和(微)服务间转发API通信的API网关,通过插件扩展功能。Kong 有两个主要组件: 1、Kong Server :基于nginx的服务器,用来接收 API 请求。 2、Apache Cassandra:用来存储操作数据。 你可以通过...

    基于OpenResty / Kong构建边缘计算平台.pdf

    而Kong是一个基于OpenResty的API网关,支持插件架构,提供了RESTful API的管理和微服务架构的发现与连接,是处理边缘计算场景中API和服务发现的理想工具。 在边缘计算节点的部署中,OpenResty/Kong能够充分适应不同...

    成都计算机软件行业运维工程师岗位介绍JD模板.pdf

    9. **中间件**:了解TYK、KONG、KARKEND等API网关和中间件的配置,提供安全的数据交换和接口管理。 10. **企业协作工具**:有企业微信或飞书等企业协作平台的集成经验,提升团队协作效率。 11. **语言能力**:英文...

    成都计算机软件行业运维工程师岗位介绍JD模板.docx

    10. **中间件**:熟悉TYK、KONG、KARKEND等API网关和微服务治理工具的配置。 11. **企业协作工具集成**:有企业微信或飞书等协作平台的集成经验,提升团队协作效率。 12. **语言能力**:英文作为工作语言,能有效...

Global site tag (gtag.js) - Google Analytics