龙空技术网

Kong 配置讲解之三——自定义Nginx模板和嵌入Kong

中年猿人 74

前言:

此时看官们对“nginx和kong”大概比较关切,你们都需要学习一些“nginx和kong”的相关内容。那么小编也在网摘上搜集了一些有关“nginx和kong””的相关内容,希望同学们能喜欢,大家一起来了解一下吧!

对于绝大多数的用例,使用上面描述的Nginx指令注入系统应该足以定制Kong的Nginx实例的行为。这样,你就可以通过一个kong.conf文件(也可以是你自己的引用文件)管理你的Kong节点的配置和调优,而不必处理自定义的Nginx配置模板。

有两种情况下,你可能想要使用自定义的Nginx配置模板,如下:

在极少数情况下,你可能需要修改一些Kong的默认Nginx配置,而这些配置是不能通过其标准的kong.conf属性进行调整的,你仍然可以修改Kong用于生成Nginx配置的模板,然后使用你的定制模板启动Kong。如果您需要将Kong嵌入到一个已经运行的OpenResty实例中,那么您可以重用Kong生成的配置,并将其包含在您现有的配置中。自定义Nginx模板

Kong在启动、重载、重启时,可以指定参数--nginx-conf,该参数必须指定Nginx配置模板。模板使用Penlight模板引擎,在启动Nginx之前,该模板引擎是使用给定的Kong配置进行编译的并转储到您的Kong的配置中指定prefix值的目录中。

默认模板可以在找到。它被分成两个Nginx配置文件:nginx.lua和nginx_kong.lua,nginx.lua是简约配置并引入了nginx_kong.lua的配置,两者构成了Kong运行所需的所有配置信息。当kong启动运行时,就在Nginx启动之前,它将这两个文件复制到配置文件prefix指定目录中(默认prefix的值为/usr/local/kong),如下所示:

/usr/local/kong├── nginx-kong.conf└── nginx.conf

如果您必须要调整全局配置,则是有Kong进行定义,而不能通过Kong的配置文件kong.conf进行配置。您可以将nginx_kong.lua配置模板内的内容放入自定义模板文件中(示例模板为custom_nginx.template),如下所示:

# ---------------------# custom_nginx.template# ---------------------worker_processes ${{NGINX_WORKER_PROCESSES}}; # can be set by kong.confdaemon ${{NGINX_DAEMON}};                     # can be set by kong.confpid pids/nginx.pid;                      # this setting is mandatoryerror_log logs/error.log ${{LOG_LEVEL}}; # can be set by kong.confevents {    use epoll;          # a custom setting    multi_accept on;}http {  # contents of the nginx_kong.lua template follow:  resolver ${{DNS_RESOLVER}} ipv6=off;  charset UTF-8;  error_log logs/error.log ${{LOG_LEVEL}};  access_log logs/access.log;  ... # etc}

然后您可以通过如下方式启动Kong:

kong start -c kong.conf --nginx-conf custom_nginx.template
在OpenResty中嵌入Kong

您正在运行自己的OpenResty服务器,您还可以通过使用include指令包含Kong Nginx的字配置来轻松地嵌入Kong。如果你有一个现有的Nginx的配置,您可以简单地包括的Kong特定的配置nginx-kong.conf文件:

# my_nginx.conf# ...your nginx settings...http {    include 'nginx-kong.conf';    # ...your nginx settings...}

然后可以这样启动Nginx实例:

nginx -p /usr/local/openresty -c my_nginx.conf

Kong将在该实例中运行(如在nginx-kong.conf中配置的那样)。

标签: #nginx和kong #nginx广告注入