kong nginx 配置文件說明&&借鑒


備注:
    只是簡單的進行說明配置文件,不會牽扯到源碼
 
1.  配置文件位置
// 通過ps 查找
ps -ef |grep nginx 
/usr/local/openresty/nginx/sbin/nginx -p /usr/local/kong -c nginx.conf
可以看到kong 不是直接在依賴的openresty 目錄進行配置的,這樣可以減少對於原有的污染
在實際項目中還是有比較大的借鑒價值的,類似的有lapis 開發模式
2. 配置文件結構
// 包含 nginx.conf  nginx-kong.conf

nginx.conf 比較簡單,使用的是推薦的include 方式

http {
    include 'nginx-kong.conf';
}

nginx-kong.conf kong 主要配置都在里面,包含api 地址 admin 地址,以及框架的初始化
3.  nginx-kong.conf 說明
http 部分
   kong 初始化,主要是框架初始化,以及數據空間配置,動態proxy 配置
   如下:

   init_by_lua_block {
       kong = require 'kong'
       kong.init()
   } 

   init_worker_by_lua_block {
       kong.init_worker()
   }

   upstream kong_upstream {
       server 0.0.0.1;
        balancer_by_lua_block {
          kong.balancer()
      }
     keepalive 60;
    }

server  部分, 各階段插件注入,proxy_pass 配置, api 入口地址  admin  配置 證書配置,目前支持sni ,可以動態添加證書
   ssl 
   ssl_certificate_by_lua_block {
        kong.ssl_certificate()
    }
    rewrite_by_lua_block {
        kong.rewrite()
     }

     access_by_lua_block {
         kong.access()
     }
     header_filter_by_lua_block {
         kong.header_filter()
     }

     body_filter_by_lua_block {
         kong.body_filter()
     }

     log_by_lua_block {
         kong.log()
     }
     proxy_pass
        proxy_http_version 1.1;
        proxy_set_header   Host              $upstream_host;
        proxy_set_header   Upgrade           $upstream_upgrade;
        proxy_set_header   Connection        $upstream_connection;
        proxy_set_header   X-Forwarded-For   $upstream_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $upstream_x_forwarded_proto;
        proxy_set_header   X-Forwarded-Host  $upstream_x_forwarded_host;
        proxy_set_header   X-Forwarded-Port  $upstream_x_forwarded_port;
        proxy_set_header   X-Real-IP         $remote_addr;
        proxy_pass_header  Server;
        proxy_pass_header  Date;
        proxy_ssl_name     $upstream_host;
        proxy_pass         $upstream_scheme://kong_upstream$upstream_uri;

     admin api 
         location / {
           default_type application/json;
           content_by_lua_block {
              kong.serve_admin_api()
            }
         }
  
備注:
     https  加密套件的配置在實際使用還是比較有價值的,具體nginx https 配置可以參考
     ssl_protocols TLSv1.1 TLSv1.2;
     ssl_session_cache shared:SSL:10m;
     ssl_session_timeout 10m;
     ssl_prefer_server_ciphers on;
     sl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256;
 
4. 參考文檔
https://github.com/Mashape/kong/
https://getkong.org/install/centos/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM