diff options
Diffstat (limited to 'msb-core/openresty-ext')
22 files changed, 0 insertions, 2593 deletions
diff --git a/msb-core/openresty-ext/pom.xml b/msb-core/openresty-ext/pom.xml deleted file mode 100644 index 57a6af5..0000000 --- a/msb-core/openresty-ext/pom.xml +++ /dev/null @@ -1,165 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - - Copyright 2016 ZTE Corporation. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - Author: Zhaoxing Meng - email: meng.zhaoxing1@zte.com.cn - ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <parent> - <groupId>org.openo.common-services.microservice-bus</groupId> - <artifactId>msb-core-parent</artifactId> - <version>1.1.0-SNAPSHOT</version> - </parent> - - - <modelVersion>4.0.0</modelVersion> - <artifactId>openresty-ext</artifactId> - <version>1.1.0-SNAPSHOT</version> - <name>common-services-microservice-bus/msb-core/openresty-ext</name> - <packaging>pom</packaging> - - <properties> - <outputdir>target/assembly</outputdir> - <packageid>openresty-ext</packageid> - </properties> - - <dependencies> - <dependency> - <groupId>org.openresty.centos.6</groupId> - <artifactId>openresty</artifactId> - <version>${openresty.version}</version> - <type>tar.gz</type> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-dependency-plugin</artifactId> - <executions> - <execution> - <id>unpack-dependency-file-linux</id> - <goals> - <goal>unpack</goal> - </goals> - <!--解压顺序,在最前面--> - <phase>generate-resources</phase> - <configuration> - <artifactItems> - <artifactItem> - <groupId>org.openresty.centos.6</groupId> - <artifactId>openresty</artifactId> - <type>tar.gz</type> - <outputDirectory>${linux64outputdir}</outputDirectory> - </artifactItem> - </artifactItems> - <excludes>**/pod/**,**/*.pdb</excludes> - <overWriteReleases>false</overWriteReleases> - <overWriteSnapshots>true</overWriteSnapshots> - <outputAbsoluteArtifactFilename>true</outputAbsoluteArtifactFilename> - </configuration> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>com.coderplus.maven.plugins</groupId> - <artifactId>copy-rename-maven-plugin</artifactId> - <version>1.0.1</version> - <executions> - <execution> - <id>rename-nginx-dir</id> - <phase>process-resources</phase> - <goals> - <goal>rename</goal> - </goals> - <configuration> - <sourceFile>${linux64outputdir}/openresty-${openresty.version}</sourceFile> - <destinationFile>${linux64outputdir}/openresty</destinationFile> - </configuration> - </execution> - </executions> - </plugin> - - <plugin> - <artifactId>maven-resources-plugin</artifactId> - <executions> - <execution> - <id>copy-msb-resources-linux64</id> - <phase>process-resources</phase> - <goals> - <goal>copy-resources</goal> - </goals> - <configuration> - <outputDirectory>${linux64outputdir}</outputDirectory> - <includeEmptyDirs>true</includeEmptyDirs> - <resources> - <resource> - <directory>src/assembly/resources/</directory> - <filtering>false</filtering> - <includes> - <include>**/*</include> - </includes> - <excludes> - <exclude>**/*.bat</exclude> - <exclude>**/openrestyService*</exclude> - </excludes> - </resource> - </resources> - <overwrite>true</overwrite> - </configuration> - </execution> - </executions> - </plugin> - - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-antrun-plugin</artifactId> - <executions> - <execution> - <id>distribution-linux</id> - <phase>package</phase> - <goals> - <goal>run</goal> - </goals> - <configuration> - <target name="distribution"> - <tar destfile="${version.output}/${packageid}-${project.version}-${classifier.linux64}.tar.gz" longfile="posix" compression="gzip"> - <tarfileset dir="${linux64outputdir}" filemode="0644" dirmode="0755"> - <exclude name="**/*.sh"/> - <exclude name="openresty/nginx/sbin/nginx"/> - </tarfileset> - <tarfileset dir="${linux64outputdir}" filemode="0755" dirmode="0755"> - <include name="**/*.sh"/> - <include name="openresty/nginx/sbin/nginx"/> - </tarfileset> - </tar> - <attachartifact file="${version.output}/${packageid}-${project.version}-${classifier.linux64}.tar.gz" classifier="${classifier.linux64}" type="tar.gz"/> - </target> - </configuration> - </execution> - </executions> - </plugin> - - </plugins> - </build> - - -</project> diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/lualib/resty/http.lua b/msb-core/openresty-ext/src/assembly/resources/openresty/lualib/resty/http.lua deleted file mode 100644 index 94f9813..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/lualib/resty/http.lua +++ /dev/null @@ -1,850 +0,0 @@ -local http_headers = require "resty.http_headers" - -local ngx_socket_tcp = ngx.socket.tcp -local ngx_req = ngx.req -local ngx_req_socket = ngx_req.socket -local ngx_req_get_headers = ngx_req.get_headers -local ngx_req_get_method = ngx_req.get_method -local str_gmatch = string.gmatch -local str_lower = string.lower -local str_upper = string.upper -local str_find = string.find -local str_sub = string.sub -local str_gsub = string.gsub -local tbl_concat = table.concat -local tbl_insert = table.insert -local ngx_encode_args = ngx.encode_args -local ngx_re_match = ngx.re.match -local ngx_re_gsub = ngx.re.gsub -local ngx_log = ngx.log -local ngx_DEBUG = ngx.DEBUG -local ngx_ERR = ngx.ERR -local ngx_NOTICE = ngx.NOTICE -local ngx_var = ngx.var -local co_yield = coroutine.yield -local co_create = coroutine.create -local co_status = coroutine.status -local co_resume = coroutine.resume - - --- http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.5.1 -local HOP_BY_HOP_HEADERS = { - ["connection"] = true, - ["keep-alive"] = true, - ["proxy-authenticate"] = true, - ["proxy-authorization"] = true, - ["te"] = true, - ["trailers"] = true, - ["transfer-encoding"] = true, - ["upgrade"] = true, - ["content-length"] = true, -- Not strictly hop-by-hop, but Nginx will deal - -- with this (may send chunked for example). -} - - --- Reimplemented coroutine.wrap, returning "nil, err" if the coroutine cannot --- be resumed. This protects user code from inifite loops when doing things like --- repeat --- local chunk, err = res.body_reader() --- if chunk then -- <-- This could be a string msg in the core wrap function. --- ... --- end --- until not chunk -local co_wrap = function(func) - local co = co_create(func) - if not co then - return nil, "could not create coroutine" - else - return function(...) - if co_status(co) == "suspended" then - return select(2, co_resume(co, ...)) - else - return nil, "can't resume a " .. co_status(co) .. " coroutine" - end - end - end -end - - -local _M = { - _VERSION = '0.09', -} -_M._USER_AGENT = "lua-resty-http/" .. _M._VERSION .. " (Lua) ngx_lua/" .. ngx.config.ngx_lua_version - -local mt = { __index = _M } - - -local HTTP = { - [1.0] = " HTTP/1.0\r\n", - [1.1] = " HTTP/1.1\r\n", -} - -local DEFAULT_PARAMS = { - method = "GET", - path = "/", - version = 1.1, -} - - -function _M.new(self) - local sock, err = ngx_socket_tcp() - if not sock then - return nil, err - end - return setmetatable({ sock = sock, keepalive = true }, mt) -end - - -function _M.set_timeout(self, timeout) - local sock = self.sock - if not sock then - return nil, "not initialized" - end - - return sock:settimeout(timeout) -end - - -function _M.ssl_handshake(self, ...) - local sock = self.sock - if not sock then - return nil, "not initialized" - end - - self.ssl = true - - return sock:sslhandshake(...) -end - - -function _M.connect(self, ...) - local sock = self.sock - if not sock then - return nil, "not initialized" - end - - self.host = select(1, ...) - self.port = select(2, ...) - - -- If port is not a number, this is likely a unix domain socket connection. - if type(self.port) ~= "number" then - self.port = nil - end - - self.keepalive = true - - return sock:connect(...) -end - - -function _M.set_keepalive(self, ...) - local sock = self.sock - if not sock then - return nil, "not initialized" - end - - if self.keepalive == true then - return sock:setkeepalive(...) - else - -- The server said we must close the connection, so we cannot setkeepalive. - -- If close() succeeds we return 2 instead of 1, to differentiate between - -- a normal setkeepalive() failure and an intentional close(). - local res, err = sock:close() - if res then - return 2, "connection must be closed" - else - return res, err - end - end -end - - -function _M.get_reused_times(self) - local sock = self.sock - if not sock then - return nil, "not initialized" - end - - return sock:getreusedtimes() -end - - -function _M.close(self) - local sock = self.sock - if not sock then - return nil, "not initialized" - end - - return sock:close() -end - - -local function _should_receive_body(method, code) - if method == "HEAD" then return nil end - if code == 204 or code == 304 then return nil end - if code >= 100 and code < 200 then return nil end - return true -end - - -function _M.parse_uri(self, uri) - local m, err = ngx_re_match(uri, [[^(http[s]?)://([^:/]+)(?::(\d+))?(.*)]], - "jo") - - if not m then - if err then - return nil, "failed to match the uri: " .. uri .. ", " .. err - end - - return nil, "bad uri: " .. uri - else - if m[3] then - m[3] = tonumber(m[3]) - else - if m[1] == "https" then - m[3] = 443 - else - m[3] = 80 - end - end - if not m[4] or "" == m[4] then m[4] = "/" end - return m, nil - end -end - - -local function _format_request(params) - local version = params.version - local headers = params.headers or {} - - local query = params.query or "" - if query then - if type(query) == "table" then - query = "?" .. ngx_encode_args(query) - end - end - - -- Initialize request - local req = { - str_upper(params.method), - " ", - params.path, - query, - HTTP[version], - -- Pre-allocate slots for minimum headers and carriage return. - true, - true, - true, - } - local c = 6 -- req table index it's faster to do this inline vs table.insert - - -- Append headers - for key, values in pairs(headers) do - if type(values) ~= "table" then - values = {values} - end - - key = tostring(key) - for _, value in pairs(values) do - req[c] = key .. ": " .. tostring(value) .. "\r\n" - c = c + 1 - end - end - - -- Close headers - req[c] = "\r\n" - - return tbl_concat(req) -end - - -local function _receive_status(sock) - local line, err = sock:receive("*l") - if not line then - return nil, nil, nil, err - end - - return tonumber(str_sub(line, 10, 12)), tonumber(str_sub(line, 6, 8)), str_sub(line, 14) -end - - - -local function _receive_headers(sock) - local headers = http_headers.new() - - repeat - local line, err = sock:receive("*l") - if not line then - return nil, err - end - - for key, val in str_gmatch(line, "([^:%s]+):%s*(.+)") do - if headers[key] then - if type(headers[key]) ~= "table" then - headers[key] = { headers[key] } - end - tbl_insert(headers[key], tostring(val)) - else - headers[key] = tostring(val) - end - end - until str_find(line, "^%s*$") - - return headers, nil -end - - -local function _chunked_body_reader(sock, default_chunk_size) - return co_wrap(function(max_chunk_size) - local max_chunk_size = max_chunk_size or default_chunk_size - local remaining = 0 - local length - - repeat - -- If we still have data on this chunk - if max_chunk_size and remaining > 0 then - - if remaining > max_chunk_size then - -- Consume up to max_chunk_size - length = max_chunk_size - remaining = remaining - max_chunk_size - else - -- Consume all remaining - length = remaining - remaining = 0 - end - else -- This is a fresh chunk - - -- Receive the chunk size - local str, err = sock:receive("*l") - if not str then - co_yield(nil, err) - end - - length = tonumber(str, 16) - - if not length then - co_yield(nil, "unable to read chunksize") - end - - if max_chunk_size and length > max_chunk_size then - -- Consume up to max_chunk_size - remaining = length - max_chunk_size - length = max_chunk_size - end - end - - if length > 0 then - local str, err = sock:receive(length) - if not str then - co_yield(nil, err) - end - - max_chunk_size = co_yield(str) or default_chunk_size - - -- If we're finished with this chunk, read the carriage return. - if remaining == 0 then - sock:receive(2) -- read \r\n - end - else - -- Read the last (zero length) chunk's carriage return - sock:receive(2) -- read \r\n - end - - until length == 0 - end) -end - - -local function _body_reader(sock, content_length, default_chunk_size) - return co_wrap(function(max_chunk_size) - local max_chunk_size = max_chunk_size or default_chunk_size - - if not content_length and max_chunk_size then - -- We have no length, but wish to stream. - -- HTTP 1.0 with no length will close connection, so read chunks to the end. - repeat - local str, err, partial = sock:receive(max_chunk_size) - if not str and err == "closed" then - max_chunk_size = tonumber(co_yield(partial, err) or default_chunk_size) - end - - max_chunk_size = tonumber(co_yield(str) or default_chunk_size) - if max_chunk_size and max_chunk_size < 0 then max_chunk_size = nil end - - if not max_chunk_size then - ngx_log(ngx_ERR, "Buffer size not specified, bailing") - break - end - until not str - - elseif not content_length then - -- We have no length but don't wish to stream. - -- HTTP 1.0 with no length will close connection, so read to the end. - co_yield(sock:receive("*a")) - - elseif not max_chunk_size then - -- We have a length and potentially keep-alive, but want everything. - co_yield(sock:receive(content_length)) - - else - -- We have a length and potentially a keep-alive, and wish to stream - -- the response. - local received = 0 - repeat - local length = max_chunk_size - if received + length > content_length then - length = content_length - received - end - - if length > 0 then - local str, err = sock:receive(length) - if not str then - max_chunk_size = tonumber(co_yield(nil, err) or default_chunk_size) - end - received = received + length - - max_chunk_size = tonumber(co_yield(str) or default_chunk_size) - if max_chunk_size and max_chunk_size < 0 then max_chunk_size = nil end - - if not max_chunk_size then - ngx_log(ngx_ERR, "Buffer size not specified, bailing") - break - end - end - - until length == 0 - end - end) -end - - -local function _no_body_reader() - return nil -end - - -local function _read_body(res) - local reader = res.body_reader - - if not reader then - -- Most likely HEAD or 304 etc. - return nil, "no body to be read" - end - - local chunks = {} - local c = 1 - - local chunk, err - repeat - chunk, err = reader() - - if err then - return nil, err, tbl_concat(chunks) -- Return any data so far. - end - if chunk then - chunks[c] = chunk - c = c + 1 - end - until not chunk - - return tbl_concat(chunks) -end - - -local function _trailer_reader(sock) - return co_wrap(function() - co_yield(_receive_headers(sock)) - end) -end - - -local function _read_trailers(res) - local reader = res.trailer_reader - if not reader then - return nil, "no trailers" - end - - local trailers = reader() - setmetatable(res.headers, { __index = trailers }) -end - - -local function _send_body(sock, body) - if type(body) == 'function' then - repeat - local chunk, err, partial = body() - - if chunk then - local ok,err = sock:send(chunk) - - if not ok then - return nil, err - end - elseif err ~= nil then - return nil, err, partial - end - - until chunk == nil - elseif body ~= nil then - local bytes, err = sock:send(body) - - if not bytes then - return nil, err - end - end - return true, nil -end - - -local function _handle_continue(sock, body) - local status, version, reason, err = _receive_status(sock) - if not status then - return nil, nil, err - end - - -- Only send body if we receive a 100 Continue - if status == 100 then - local ok, err = sock:receive("*l") -- Read carriage return - if not ok then - return nil, nil, err - end - _send_body(sock, body) - end - return status, version, err -end - - -function _M.send_request(self, params) - -- Apply defaults - setmetatable(params, { __index = DEFAULT_PARAMS }) - - local sock = self.sock - local body = params.body - local headers = http_headers.new() - - local params_headers = params.headers - if params_headers then - -- We assign one by one so that the metatable can handle case insensitivity - -- for us. You can blame the spec for this inefficiency. - for k,v in pairs(params_headers) do - headers[k] = v - end - end - - -- Ensure minimal headers are set - if type(body) == 'string' and not headers["Content-Length"] then - headers["Content-Length"] = #body - end - if not headers["Host"] then - if (str_sub(self.host, 1, 5) == "unix:") then - return nil, "Unable to generate a useful Host header for a unix domain socket. Please provide one." - end - -- If we have a port (i.e. not connected to a unix domain socket), and this - -- port is non-standard, append it to the Host heaer. - if self.port then - if self.ssl and self.port ~= 443 then - headers["Host"] = self.host .. ":" .. self.port - elseif not self.ssl and self.port ~= 80 then - headers["Host"] = self.host .. ":" .. self.port - else - headers["Host"] = self.host - end - else - headers["Host"] = self.host - end - end - if not headers["User-Agent"] then - headers["User-Agent"] = _M._USER_AGENT - end - if params.version == 1.0 and not headers["Connection"] then - headers["Connection"] = "Keep-Alive" - end - - params.headers = headers - - -- Format and send request - local req = _format_request(params) - ngx_log(ngx_DEBUG, "\n", req) - local bytes, err = sock:send(req) - - if not bytes then - return nil, err - end - - -- Send the request body, unless we expect: continue, in which case - -- we handle this as part of reading the response. - if headers["Expect"] ~= "100-continue" then - local ok, err, partial = _send_body(sock, body) - if not ok then - return nil, err, partial - end - end - - return true -end - - -function _M.read_response(self, params) - local sock = self.sock - - local status, version, reason, err - - -- If we expect: continue, we need to handle this, sending the body if allowed. - -- If we don't get 100 back, then status is the actual status. - if params.headers["Expect"] == "100-continue" then - local _status, _version, _err = _handle_continue(sock, params.body) - if not _status then - return nil, _err - elseif _status ~= 100 then - status, version, err = _status, _version, _err - end - end - - -- Just read the status as normal. - if not status then - status, version, reason, err = _receive_status(sock) - if not status then - return nil, err - end - end - - - local res_headers, err = _receive_headers(sock) - if not res_headers then - return nil, err - end - - -- keepalive is true by default. Determine if this is correct or not. - local ok, connection = pcall(str_lower, res_headers["Connection"]) - if ok then - if (version == 1.1 and connection == "close") or - (version == 1.0 and connection ~= "keep-alive") then - self.keepalive = false - end - else - -- no connection header - if version == 1.0 then - self.keepalive = false - end - end - - local body_reader = _no_body_reader - local trailer_reader, err = nil, nil - local has_body = false - - -- Receive the body_reader - if _should_receive_body(params.method, status) then - local ok, encoding = pcall(str_lower, res_headers["Transfer-Encoding"]) - if ok and version == 1.1 and encoding == "chunked" then - body_reader, err = _chunked_body_reader(sock) - has_body = true - else - - local ok, length = pcall(tonumber, res_headers["Content-Length"]) - if ok then - body_reader, err = _body_reader(sock, length) - has_body = true - end - end - end - - if res_headers["Trailer"] then - trailer_reader, err = _trailer_reader(sock) - end - - if err then - return nil, err - else - return { - status = status, - reason = reason, - headers = res_headers, - has_body = has_body, - body_reader = body_reader, - read_body = _read_body, - trailer_reader = trailer_reader, - read_trailers = _read_trailers, - } - end -end - - -function _M.request(self, params) - local res, err = self:send_request(params) - if not res then - return res, err - else - return self:read_response(params) - end -end - - -function _M.request_pipeline(self, requests) - for i, params in ipairs(requests) do - if params.headers and params.headers["Expect"] == "100-continue" then - return nil, "Cannot pipeline request specifying Expect: 100-continue" - end - - local res, err = self:send_request(params) - if not res then - return res, err - end - end - - local responses = {} - for i, params in ipairs(requests) do - responses[i] = setmetatable({ - params = params, - response_read = false, - }, { - -- Read each actual response lazily, at the point the user tries - -- to access any of the fields. - __index = function(t, k) - local res, err - if t.response_read == false then - res, err = _M.read_response(self, t.params) - t.response_read = true - - if not res then - ngx_log(ngx_ERR, err) - else - for rk, rv in pairs(res) do - t[rk] = rv - end - end - end - return rawget(t, k) - end, - }) - end - return responses -end - - -function _M.request_uri(self, uri, params) - if not params then params = {} end - - local parsed_uri, err = self:parse_uri(uri) - if not parsed_uri then - return nil, err - end - - local scheme, host, port, path = unpack(parsed_uri) - if not params.path then params.path = path end - - local c, err = self:connect(host, port) - if not c then - return nil, err - end - - if scheme == "https" then - local verify = true - if params.ssl_verify == false then - verify = false - end - local ok, err = self:ssl_handshake(nil, host, verify) - if not ok then - return nil, err - end - end - - local res, err = self:request(params) - if not res then - return nil, err - end - - local body, err = res:read_body() - if not body then - return nil, err - end - - res.body = body - - local ok, err = self:set_keepalive() - if not ok then - ngx_log(ngx_ERR, err) - end - - return res, nil -end - - -function _M.get_client_body_reader(self, chunksize, sock) - local chunksize = chunksize or 65536 - if not sock then - local ok, err - ok, sock, err = pcall(ngx_req_socket) - - if not ok then - return nil, sock -- pcall err - end - - if not sock then - if err == "no body" then - return nil - else - return nil, err - end - end - end - - local headers = ngx_req_get_headers() - local length = headers.content_length - local encoding = headers.transfer_encoding - if length then - return _body_reader(sock, tonumber(length), chunksize) - elseif encoding and str_lower(encoding) == 'chunked' then - -- Not yet supported by ngx_lua but should just work... - return _chunked_body_reader(sock, chunksize) - else - return nil - end -end - - -function _M.proxy_request(self, chunksize) - return self:request{ - method = ngx_req_get_method(), - path = ngx_re_gsub(ngx_var.uri, "\\s", "%20", "jo") .. ngx_var.is_args .. (ngx_var.query_string or ""), - body = self:get_client_body_reader(chunksize), - headers = ngx_req_get_headers(), - } -end - - -function _M.proxy_response(self, response, chunksize) - if not response then - ngx_log(ngx_ERR, "no response provided") - return - end - - ngx.status = response.status - - -- Filter out hop-by-hop headeres - for k,v in pairs(response.headers) do - if not HOP_BY_HOP_HEADERS[str_lower(k)] then - ngx.header[k] = v - end - end - - local reader = response.body_reader - repeat - local chunk, err = reader(chunksize) - if err then - ngx_log(ngx_ERR, err) - break - end - - if chunk then - local res, err = ngx.print(chunk) - if not res then - ngx_log(ngx_ERR, err) - break - end - end - until not chunk -end - - -return _M diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/lualib/resty/http_headers.lua b/msb-core/openresty-ext/src/assembly/resources/openresty/lualib/resty/http_headers.lua deleted file mode 100644 index 24b53b5..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/lualib/resty/http_headers.lua +++ /dev/null @@ -1,62 +0,0 @@ -local rawget, rawset, setmetatable = - rawget, rawset, setmetatable - -local str_gsub = string.gsub -local str_lower = string.lower - - -local _M = { - _VERSION = '0.01', -} - - --- Returns an empty headers table with internalised case normalisation. --- Supports the same cases as in ngx_lua: --- --- headers.content_length --- headers["content-length"] --- headers["Content-Length"] -function _M.new(self) - local mt = { - normalised = {}, - } - - - mt.__index = function(t, k) - local k_hyphened = str_gsub(k, "_", "-") - local matched = rawget(t, k) - if matched then - return matched - else - local k_normalised = str_lower(k_hyphened) - return rawget(t, mt.normalised[k_normalised]) - end - end - - - -- First check the normalised table. If there's no match (first time) add an entry for - -- our current case in the normalised table. This is to preserve the human (prettier) case - -- instead of outputting lowercased header names. - -- - -- If there's a match, we're being updated, just with a different case for the key. We use - -- the normalised table to give us the original key, and perorm a rawset(). - mt.__newindex = function(t, k, v) - -- we support underscore syntax, so always hyphenate. - local k_hyphened = str_gsub(k, "_", "-") - - -- lowercase hyphenated is "normalised" - local k_normalised = str_lower(k_hyphened) - - if not mt.normalised[k_normalised] then - mt.normalised[k_normalised] = k_hyphened - rawset(t, k_hyphened, v) - else - rawset(t, mt.normalised[k_normalised], v) - end - end - - return setmetatable({}, mt) -end - - -return _M diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/conf/nginx.conf b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/conf/nginx.conf deleted file mode 100644 index ea434b7..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/conf/nginx.conf +++ /dev/null @@ -1,72 +0,0 @@ -# -# Copyright 2016 2015-2016 ZTE, Inc. and others. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Author: Zhaoxing Meng -# email: meng.zhaoxing1@zte.com.cn -# - -#user xfs xfs; -worker_processes 1; - -error_log logs/error.log warn; -pid logs/nginx.pid; - -events { - worker_connections 1024; -} - -http { - # Basic Settings - default_type application/octet-stream; - sendfile on; - tcp_nopush on; - server_names_hash_bucket_size 128; - keepalive_timeout 120s; - - #the maximum allowed size of the client request body,current 10G - client_max_body_size 10240m; - client_body_buffer_size 128k; - - #set the time wait for connect to proxy_pass target,avoid waiting too long - proxy_connect_timeout 10s; - proxy_read_timeout 120s; - proxy_send_timeout 120s; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Host $host; - proxy_buffers 4 32k; - - #set the nginx_cache parameter - proxy_cache_path temp/proxy_cache levels=1:2 keys_zone=nginx_cache:256m inactive=1d max_size=1g; - - # Logging - access_log off; - - # Lua settings - lua_package_path "$prefix/../lualib/?.lua;$prefix/luaext/?.lua;;"; - lua_package_cpath "$prefix/../lualib/?.so;;"; - - lua_shared_dict ceryx 10M; - lua_code_cache on; - - # see https://github.com/openresty/lua-resty-core - #init_by_lua ' - # require "resty.core" - #'; - - # Includes - include mime.types; - include ../sites-enabled/*.conf; -} diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/logs/placeholder.txt b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/logs/placeholder.txt deleted file mode 100644 index e69de29..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/logs/placeholder.txt +++ /dev/null diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/customrouter.lua b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/customrouter.lua deleted file mode 100644 index 46d0b8a..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/customrouter.lua +++ /dev/null @@ -1,187 +0,0 @@ ---[[ - - Copyright 2016 ZTE Corporation. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - Author: Zhaoxing Meng - email: meng.zhaoxing1@zte.com.cn - -]] --- put red into the connection pool of size 100, --- with 10 seconds max idle time -local function close_redis(red) - if not red then - return - end - --release connection to the pool - local pool_max_idle_time = 10000 - local pool_size = 100 - local ok, err = red:set_keepalive(pool_max_idle_time, pool_size) - if not ok then - ngx.log(ngx.ERR, "set keepalive error:", err) - end - return -end - -local function query_ipurl_updatecache(red,key) - local keyprefix = "msb:routing:custom:"..key - - - local infokey=keyprefix..":info" - -- first of all check whether the status is 1(enabled) - local status = red:hget(infokey,"status") - if not (status=="1") then - ngx.log(ngx.WARN, key.."is disabled.status=", status) - return nil - end - - -- Try to get url for key - local url, err = red:hget(infokey,"url") - ngx.log(ngx.WARN, "==url:", url) - if not url or url == ngx.null then - return nil - end - - -- Try to get ip:port for key - local serverkey=keyprefix..":lb:server1" - local server, err = red:hget(serverkey,"ip")..":"..red:hget(serverkey,"port") - ngx.log(ngx.WARN, "==server:", server) - if not server or server == ngx.null then - return nil - end - - -- get the local cache - local cache = ngx.shared.ceryx - local uri = ngx.var.uri - -- Save found key to local cache for 5 seconds - cache:set("custom:key:"..uri,key,5) - cache:set("custom:server:"..uri,server,5) - cache:set("custom:url:"..uri,url,5) - - ngx.var.key = key - ngx.var.server = server - ngx.var.url = url - return true -end - -local function query_allkeys_updatecache(red) - -- Try to get all keys start with "msb:routing:custom:" - local allkeys, err = red:keys("msb:routing:custom:*") - if not allkeys or allkeys == ngx.null then - ngx.log(ngx.ERR,err) - return "" - end - local key_set={} - for key, value in ipairs(allkeys) do - name = string.gsub(string.gsub(string.gsub(value,"msb:routing:custom:",""),":info",""),":lb:server1","") - key_set[name]=true - end - local key_table = {} - local index = 1 - for key,_ in pairs(key_set) do - key_table[index] = key - index = index + 1 - end - table.sort(key_table, function (a, b) - return a > b - end) - - local servicenames = "" - local delimiter = "<>" - for i=1,#key_table do - servicenames=servicenames..key_table[i]..delimiter - end - - -- get the local cache - local cache = ngx.shared.ceryx - -- Save all keys to local cache for 30 seconds(0.5 minutes) - cache:set("customrouter:allkeys", servicenames, 30) - return servicenames; -end - -local function query_router_info() - local uri = ngx.var.uri - ngx.log(ngx.WARN, "==uri:", uri) - - -- Check if key exists in local cache - local cache = ngx.shared.ceryx - local key, flags = cache:get("custom:key:"..uri) - local server, flags = cache:get("custom:server:"..uri) - local url, flags = cache:get("custom:url:"..uri) - if key and server and url then - ngx.var.key = key - ngx.var.server = server - ngx.var.url = url - ngx.log(ngx.WARN, "==using custom cache:", key.."&&"..server.."&&"..url) - return - end - - local redis = require "resty.redis" - local red = redis:new() - red:set_timeout(1000) -- 1000 ms - local redis_host = "127.0.0.1" - local redis_port = 6379 - local res, err = red:connect(redis_host, redis_port) - - -- Return if could not connect to Redis - if not res then - ngx.log(ngx.ERR, "connect to redis error:", err) - return - end - - -- Check if all servicenames exists in local cache - local servicenames, flags = cache:get("customrouter:allkeys") - if servicenames then - ngx.log(ngx.WARN,"==get all keys from cache:",servicenames) - else - servicenames = query_allkeys_updatecache(red) - end - - local delimiter = "<>" - for key in string.gmatch(servicenames,"(.-)"..delimiter) do - ngx.log(ngx.WARN, "==key_table key:", key) - local from, to, err = ngx.re.find(uri, "^"..key.."(/(.*))?$", "jo") - if from then - ngx.log(ngx.WARN,"Matched! start-end:",from,"-",to) - local result = query_ipurl_updatecache(red,key) - if result then - break - end - else - ngx.log(ngx.WARN,"not Matched") - if err then - ngx.log(ngx.WARN,"ngx.re.find throw error: ",err) - return - end - end - end - - return close_redis(red) -end - -local function rewrite_router_url() - local server=ngx.var.server - if server=="fallback" then - ngx.status = ngx.HTTP_NOT_FOUND - ngx.exit(ngx.status) - end - local url=ngx.var.url - local key=ngx.var.key - local rewriteduri = ngx.re.sub(ngx.var.uri, "^"..key.."(.*)", url.."$1", "o") - ngx.log(ngx.WARN, "==rewrited uri:", rewriteduri) - ngx.req.set_uri(rewriteduri) -end - -query_router_info() -rewrite_router_url()
\ No newline at end of file diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/execute_auth.lua b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/execute_auth.lua deleted file mode 100644 index 946f561..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/execute_auth.lua +++ /dev/null @@ -1,25 +0,0 @@ ---[[ - - Copyright 2016 ZTE Corporation. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - Author: Zhaoxing Meng - email: meng.zhaoxing1@zte.com.cn - -]] -local auth_plugin = require('plugins.auth') -local msbconf = require('msbconf') -if(msbconf.auth_plugin_status == "on") then - auth_plugin.access() -end
\ No newline at end of file diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/msbconf.lua b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/msbconf.lua deleted file mode 100644 index 48b04c7..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/msbconf.lua +++ /dev/null @@ -1,26 +0,0 @@ ---[[ - - Copyright 2016 ZTE Corporation. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - Author: Zhaoxing Meng - email: meng.zhaoxing1@zte.com.cn - -]] -local _M = {} -_M._VERSION = '1.0.0' - -return { - auth_plugin_status = "off" -}
\ No newline at end of file diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/openoadminrouter.lua b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/openoadminrouter.lua deleted file mode 100644 index 938a017..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/openoadminrouter.lua +++ /dev/null @@ -1,110 +0,0 @@ ---[[ - - Copyright 2016 ZTE Corporation. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - Author: Zhaoxing Meng - email: meng.zhaoxing1@zte.com.cn - -]] --- put red into the connection pool of size 100, --- with 10 seconds max idle time -local function close_redis(red) - if not red then - return - end - --release connection to the pool - local pool_max_idle_time = 10000 - local pool_size = 100 - local ok, err = red:set_keepalive(pool_max_idle_time, pool_size) - if not ok then - ngx.log(ngx.ERR, "set keepalive error:", err) - end - return -end - -local function rewrite_admin_url() - local apiserver=ngx.var.apiserver - if apiserver=="fallback" then - ngx.status = ngx.HTTP_NOT_FOUND - ngx.exit(ngx.status) - end - local adminurl=ngx.var.adminurl - local uri = ngx.re.sub(ngx.var.uri, "^/admin/([^/]+)(/[Vv][^/]*)?(.*)", adminurl.."$3", "o") - ngx.req.set_uri(uri) -end - -local function query_admin_info() - local apiserver = ngx.var.apiserver - local apiname = ngx.var.apiname - local apiversion = ngx.var.apiversion - apiversion=string.sub(apiversion,2,string.len(apiversion)) - - -- Check if key exists in local cache - local cache = ngx.shared.ceryx - local server, flags = cache:get("server:admin:"..apiname..":"..apiversion) - local url, flags = cache:get("url:admin:"..apiname..":"..apiversion) - if server and url then - ngx.var.apiserver = server - ngx.var.adminurl = url - ngx.log(ngx.WARN, "==using admin cache:", server.."&&"..url) - return - end - - local redis = require "resty.redis" - local red = redis:new() - red:set_timeout(1000) -- 1000 ms - local redis_host = "127.0.0.1" - local redis_port = 6379 - local res, err = red:connect(redis_host, redis_port) - - -- Return if could not connect to Redis - if not res then - ngx.log(ngx.ERR, "connect to redis error:", err) - return - end - - -- Construct Redis key - local prefix = "msb" - local keyprefix = prefix..":routing:api:"..apiname..":"..apiversion - - - -- Try to get ip:port for apiname - local serverkey=keyprefix..":lb:server1" - local server, err = red:hget(serverkey,"ip")..":"..red:hget(serverkey,"port") - ngx.log(ngx.WARN, "==adminserver:", server) - if not server or server == ngx.null then - return close_redis(red) - end - - -- Try to get admin url for apiname - local infokey=keyprefix..":info" - local url, err = red:hget(infokey,"metricsUrl") - ngx.log(ngx.WARN, "==adminurl:", url) - if not url or url == ngx.null then - return close_redis(red) - end - - -- Save found key to local cache for 5 seconds - cache:set("server:admin:"..apiname..":"..apiversion, server, 5) - cache:set("url:admin:"..apiname..":"..apiversion, url, 5) - - ngx.log(ngx.WARN, "==admin result:", server.."&&"..url) - ngx.var.apiserver = server - ngx.var.adminurl = url - - return close_redis(red) -end -query_admin_info() -rewrite_admin_url()
\ No newline at end of file diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/openoapijsonrouter.lua b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/openoapijsonrouter.lua deleted file mode 100644 index 9255a65..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/openoapijsonrouter.lua +++ /dev/null @@ -1,110 +0,0 @@ ---[[ - - Copyright 2016 ZTE Corporation. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - Author: Zhaoxing Meng - email: meng.zhaoxing1@zte.com.cn - -]] --- put red into the connection pool of size 100, --- with 10 seconds max idle time -local function close_redis(red) - if not red then - return - end - --release connection to the pool - local pool_max_idle_time = 10000 - local pool_size = 100 - local ok, err = red:set_keepalive(pool_max_idle_time, pool_size) - if not ok then - ngx.log(ngx.ERR, "set keepalive error:", err) - end - return -end - -local function rewrite_apijson_url() - local apiserver=ngx.var.apiserver - if apiserver=="fallback" then - ngx.status = ngx.HTTP_NOT_FOUND - ngx.exit(ngx.status) - end - local apijsonurl=ngx.var.apijsonurl - local uri = ngx.re.sub(ngx.var.uri, "^/apijson/([^/]+)(/[Vv][^/]*)?(.*)", apijsonurl.."$3", "o") - ngx.req.set_uri(uri) -end - -local function query_apijson_info() - local apiserver = ngx.var.apiserver - local apiname = ngx.var.apiname - local apiversion = ngx.var.apiversion - apiversion=string.sub(apiversion,2,string.len(apiversion)) - - -- Check if key exists in local cache - local cache = ngx.shared.ceryx - local server, flags = cache:get("server:apijson:"..apiname..":"..apiversion) - local url, flags = cache:get("url:apijson:"..apiname..":"..apiversion) - if server and url then - ngx.var.apiserver = server - ngx.var.apijsonurl = url - ngx.log(ngx.WARN, "==using apijson cache:", server.."&&"..url) - return - end - - local redis = require "resty.redis" - local red = redis:new() - red:set_timeout(1000) -- 1000 ms - local redis_host = "127.0.0.1" - local redis_port = 6379 - local res, err = red:connect(redis_host, redis_port) - - -- Return if could not connect to Redis - if not res then - ngx.log(ngx.ERR, "connect to redis error:", err) - return - end - - -- Construct Redis key - local prefix = "msb" - local keyprefix = prefix..":routing:api:"..apiname..":"..apiversion - - - -- Try to get ip:port for apiname - local serverkey=keyprefix..":lb:server1" - local server, err = red:hget(serverkey,"ip")..":"..red:hget(serverkey,"port") - ngx.log(ngx.WARN, "==apijsonserver:", server) - if not server or server == ngx.null then - return close_redis(red) - end - - -- Try to get apijson url for apiname - local infokey=keyprefix..":info" - local url, err = red:hget(infokey,"apijson") - ngx.log(ngx.WARN, "==apijsonurl:", url) - if not url or url == ngx.null then - return close_redis(red) - end - - -- Save found key to local cache for 5 seconds - cache:set("server:apijson:"..apiname..":"..apiversion, server, 5) - cache:set("url:apijson:"..apiname..":"..apiversion, url, 5) - - ngx.log(ngx.WARN, "==apijson result:", server.."&&"..url) - ngx.var.apiserver = server - ngx.var.apijsonurl = url - - return close_redis(red) -end -query_apijson_info() -rewrite_apijson_url()
\ No newline at end of file diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/openoapirouter.lua b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/openoapirouter.lua deleted file mode 100644 index 717bd1a..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/openoapirouter.lua +++ /dev/null @@ -1,117 +0,0 @@ ---[[ - - Copyright 2016 ZTE Corporation. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - Author: Zhaoxing Meng - email: meng.zhaoxing1@zte.com.cn - -]] --- put red into the connection pool of size 100, --- with 10 seconds max idle time -local function close_redis(red) - if not red then - return - end - --release connection to the pool - local pool_max_idle_time = 10000 - local pool_size = 100 - local ok, err = red:set_keepalive(pool_max_idle_time, pool_size) - if not ok then - ngx.log(ngx.ERR, "set keepalive error:", err) - end - return -end - -local function rewrite_api_url() - local apiserver=ngx.var.apiserver - if apiserver=="fallback" then - ngx.status = ngx.HTTP_NOT_FOUND - ngx.exit(ngx.status) - end - local apiurl=ngx.var.apiurl - local uri = ngx.re.sub(ngx.var.uri, "^/openoapi/([^/]+)(/[Vv][^/]*)?(.*)", apiurl.."$3", "o") - ngx.req.set_uri(uri) -end - -local function query_api_info() - local apiserver = ngx.var.apiserver - local apiname = ngx.var.apiname - local apiversion = ngx.var.apiversion - apiversion=string.sub(apiversion,2,string.len(apiversion)) - - -- Check if key exists in local cache - local cache = ngx.shared.ceryx - local server, flags = cache:get("server:api:"..apiname..":"..apiversion) - local url, flags = cache:get("url:api:"..apiname..":"..apiversion) - if server and url then - ngx.var.apiserver = server - ngx.var.apiurl = url - ngx.log(ngx.WARN, "==using api cache:", server.."&&"..url) - return - end - - local redis = require "resty.redis" - local red = redis:new() - red:set_timeout(1000) -- 1000 ms - local redis_host = "127.0.0.1" - local redis_port = 6379 - local res, err = red:connect(redis_host, redis_port) - - -- Return if could not connect to Redis - if not res then - ngx.log(ngx.ERR, "connect to redis error:", err) - return - end - - -- Construct Redis key - local prefix = "msb" - local keyprefix = prefix..":routing:api:"..apiname..":"..apiversion - - local infokey=keyprefix..":info" - -- first of all check whether the status is 1(enabled) - local status = red:hget(infokey,"status") - if not (status=="1") then - ngx.log(ngx.WARN, keyprefix.."is disabled.status=", status) - return close_redis(red) - end - - -- Try to get url for apiname - local url, err = red:hget(infokey,"url") - ngx.log(ngx.WARN, "==url:", url) - if not url or url == ngx.null then - return close_redis(red) - end - - -- Try to get ip:port for apiname - local serverkey=keyprefix..":lb:server1" - local server, err = red:hget(serverkey,"ip")..":"..red:hget(serverkey,"port") - ngx.log(ngx.WARN, "==server:", server) - if not server or server == ngx.null then - return close_redis(red) - end - - - -- Save found key to local cache for 5 seconds - cache:set("server:api:"..apiname..":"..apiversion, server, 5) - cache:set("url:api:"..apiname..":"..apiversion, url, 5) - - ngx.log(ngx.WARN, "==api result:", server.."&&"..url) - ngx.var.apiserver = server - ngx.var.apiurl = url - - return close_redis(red) -end -query_api_info() -rewrite_api_url()
\ No newline at end of file diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/openouirouter.lua b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/openouirouter.lua deleted file mode 100644 index c36057e..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/openouirouter.lua +++ /dev/null @@ -1,115 +0,0 @@ ---[[ - - Copyright 2016 ZTE Corporation. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - Author: Zhaoxing Meng - email: meng.zhaoxing1@zte.com.cn - -]] --- put red into the connection pool of size 100, --- with 10 seconds max idle time -local function close_redis(red) - if not red then - return - end - --release connection to the pool - local pool_max_idle_time = 10000 - local pool_size = 100 - local ok, err = red:set_keepalive(pool_max_idle_time, pool_size) - if not ok then - ngx.log(ngx.ERR, "set keepalive error:", err) - end - return -end - -local function rewrite_iui_url() - local iuiserver=ngx.var.iuiserver - if iuiserver=="fallback" then - ngx.status = ngx.HTTP_NOT_FOUND - ngx.exit(ngx.status) - end - local iuiurl=ngx.var.iuiurl - local uri = ngx.re.sub(ngx.var.uri, "^/openoui/([^/]+)(.*)", iuiurl.."$2", "o") - ngx.req.set_uri(uri) -end - -local function query_iui_info() - local iuiserver = ngx.var.iuiserver - local iuiname = ngx.var.iuiname - - -- Check if key exists in local cache - local cache = ngx.shared.ceryx - local server, flags = cache:get("server:iui:"..iuiname) - local url, flags = cache:get("url:iui:"..iuiname) - if server and url then - ngx.var.iuiserver = server - ngx.var.iuiurl = url - ngx.log(ngx.WARN, "==using iui cache:", server.."&&"..url) - return - end - - local redis = require "resty.redis" - local red = redis:new() - red:set_timeout(1000) -- 1000 ms - local redis_host = "127.0.0.1" - local redis_port = 6379 - local res, err = red:connect(redis_host, redis_port) - - -- Return if could not connect to Redis - if not res then - ngx.log(ngx.ERR, "connect to redis error:", err) - return - end - - -- Construct Redis key - local prefix = "msb" - local keyprefix = prefix..":routing:iui:"..iuiname - - local infokey=keyprefix..":info" - -- first of all check whether the status is 1(enabled) - local status = red:hget(infokey,"status") - if not (status=="1") then - ngx.log(ngx.WARN, keyprefix.."is disabled.status=", status) - return close_redis(red) - end - - -- Try to get url for iuiname - local url, err = red:hget(infokey,"url") - ngx.log(ngx.WARN, "==url:", url) - if not url or url == ngx.null then - return close_redis(red) - end - - -- Try to get ip:port for iuiname - local serverkey=keyprefix..":lb:server1" - local server, err = red:hget(serverkey,"ip")..":"..red:hget(serverkey,"port") - ngx.log(ngx.WARN, "==server:", server) - if not server or server == ngx.null then - return close_redis(red) - end - - - -- Save found key to local cache for 5 seconds - cache:set("server:iui:"..iuiname, server, 5) - cache:set("url:iui:"..iuiname, url, 5) - - ngx.log(ngx.WARN, "==iui result:", server.."&&"..url) - ngx.var.iuiserver = server - ngx.var.iuiurl = url - - return close_redis(red) -end -query_iui_info() -rewrite_iui_url()
\ No newline at end of file diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/plugins/auth.lua b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/plugins/auth.lua deleted file mode 100644 index 1572060..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/plugins/auth.lua +++ /dev/null @@ -1,171 +0,0 @@ ---[[ - - Copyright 2016 2015-2016 OEPN-O. and others. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -]] -local _M = {} -_M._VERSION = '1.0.0' -local auth_url = '/openoapi/auth/v1'; -local auth_token_url = auth_url..'/tokens'; -local auth_token_key = "X-Auth-Token"; -local redirect_url = "/openoui/common/login.html" - -local white_list= { - auth_token_url, - redirect_url, - '/openoui/common/css', - '/openoui/common/js', - '/openoui/common/thirdparty', - '/openoui/common/i18n', - '/openoui/common/image', - '/openoui/common/login.html', - '/openoui/common/json' -}; - -local function verify_value(value) - if (nil == value or 0 == #value) - then - return false; - else - return true; - end -end - ---[[checks str2 starts with str1]]-- -local function starts_with(str1, str2) - return string.sub(str2, 1, string.len(str1)) == str1; -end - --- Check and ignore the request if it is from auth module.-- -local function is_white_list(url) - for i, value in ipairs(white_list) - do - if (starts_with(value, url)) - then - return true; - end - end - return false; -end - -local function set_header(tokens) - for key,value in pairs(tokens) - do - ngx.log (ngx.ERR, "Headers: ", key, value); - ngx.req.set_header(key, value); - end - -end ---[[ validates the token with auth ]]-- -local function validate_token(tokens) - -- auth expects the token in header. - set_header(tokens); - -- call auth token check url to validate. - local res = ngx.location.capture(auth_token_url, { method = ngx.HTTP_HEAD}); - ngx.log (ngx.ERR, "Auth Result:", res.status); - if (nil == res) - then - return false; - end - return (ngx.HTTP_OK == res.status); -end - ---[[ get auth token from cookies ]]-- -local function get_cookies() - local cookie_name = "cookie_"..auth_token_key; - local auth_token = ngx.var[cookie_name]; - local tokens = {}; - -- verify whether its empty or null. - if (verify_value(auth_token)) - then - ngx.log(ngx.ERR, "token : ", auth_token ); - tokens[auth_token_key] = auth_token; - end - return tokens; -end - -local function get_service_url() - -- get host. - local host = ngx.var.host; - --get port - local port = ":"..ngx.var.server_port; - local proto = ""; - --get protocol - if (ngx.var.https == "on") - then - proto = "https://"; - else - proto = "http://"; - end - --get url - local uri = ngx.var.uri; - --form complete service url. - --local complete_url = proto..host..port..url - local complete_url = uri; - local service = "?service=" - --add arguments if any. - if ngx.var.args ~= nil - then - complete_url = complete_url.."?"..ngx.var.args; - end - ngx.log(ngx.ERR, "service url : ", complete_url); - return service..ngx.escape_uri(complete_url); -end - -local function redirect(url) - local service = get_service_url(); - ngx.log(ngx.ERR, "redirect: ", url..service); - ngx.redirect(url..service); -end - -function _M.access() - - ngx.log(ngx.ERR, "==============start check token===============: "); - local url = ngx.var.uri; - ngx.log(ngx.ERR, "Url : ", url); - - -- ignore token validation if auth request. - if (is_white_list(url)) - then - return; - end - - - - -- get auth token from cookies. - local auth_tokens = get_cookies(); - - -- check if auth token is empty, - -- redirect it to login page in that case. - if (nil == next(auth_tokens)) - then - ngx.log(ngx.ERR, "Token Invalidate, redirect to ", redirect_url); - redirect(redirect_url); - return; - end - - -- validate the token with auth module. - -- continue if success, else redirect to login page. - if(validate_token(auth_tokens)) - then - ngx.log(ngx.ERR, "Token Validate."); - return; - else - redirect(redirect_url); - end - ngx.log(ngx.INFO, "running auth plugin") - end - -return _M
\ No newline at end of file diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/plugins/driver_manager.lua b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/plugins/driver_manager.lua deleted file mode 100644 index 45d327d..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/plugins/driver_manager.lua +++ /dev/null @@ -1,127 +0,0 @@ ---[[ - - Copyright 2016 2015-2016 OPEN-O. and others. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -]] -local _M = {} -_M._VERSION = '1.0.0' -local _HEADER = "X-Driver-Parameter" - ---extract driver header if present in request -local function get_driver_header() - local header = "" - local driver_header = ngx.req.get_headers()[_HEADER] - if (driver_header ~= nil) - then - header = driver_header - end - return header -end - --- generate query url -local function get_query_url(x_driver_header) - local drivermgr_uri = '/openoapi/drivermgr/v1/drivers' - local url = drivermgr_uri.."?".._HEADER.."="..tostring(ngx.escape_uri(x_driver_header)).."&service_url="..ngx.var.uri - return url -end - --- generate driver url -local function get_driver_url(driver_header) - local cjson = require "cjson" - local query_url = get_query_url(driver_header) - local driver_header_value = get_driver_header(); - ngx.req.clear_header(_HEADER) - local res = ngx.location.capture(query_url, { method = ngx.HTTP_GET}) - ngx.req.set_header(_HEADER, driver_header_value); - ngx.log (ngx.ERR, "Driver manager resp url : ", tostring(res.body)) - if (res.status == 200 and res.body ~= nil and res.body ~= '') - then - return tostring(cjson.new().decode(res.body).url) - else - return '' - end -end - --- get the ori query param string -local function get_ori_query() - local args = ngx.req.get_uri_args(); - local ori_query_param = "?"..ngx.encode_args(args); - ngx.log(ngx.ERR, "The original request query parameter is ", ori_query_param); - return ori_query_param; -end - --- get headers -local function get_headers() - local headers = {} - local h = ngx.req.get_headers() - for k, value in pairs(h) - do - headers[k] = value - end - return headers -end - -local function get_body_params() - ngx.req.read_body() - local actual_body = "" - local body_param = ngx.req.get_body_data() - if(body_param ~= nil) - then - actual_body = tostring(body_param) - end - return actual_body -end - -function _M.access() - ngx.log(ngx.ERR, "DRIVER MANAGER LUA", "***********************") - - -- extract X-Driver-Parameter header param - local driver_header = get_driver_header() - ngx.log(ngx.ERR, "X-Driver-Parameter: ", driver_header) - - - -- ignore driver redirection if not driver manager request. - if (driver_header ~= "") - then - - local driver_url = get_driver_url(driver_header)..get_ori_query(); - ngx.log (ngx.ERR, "Driver manager URl:: ", driver_url) - - local http = require "resty.http" - local actual_headers = get_headers() - local actual_body = get_body_params() - - ngx.log(ngx.ERR, "HTTP request to driver... ", " Request to driver manager") - local httpc = http.new(); - httpc:set_timeout(300000); - local res, err = httpc:request_uri(driver_url, { - method = ngx.req.get_method(), - body = actual_body, - headers = actual_headers - }) - - if not res then - ngx.say("Request to driver failed : ", err) - return - end - ngx.log(ngx.ERR, "Response from driver : ", tostring(res.body)) - ngx.say(res.body) - - else - ngx.log(ngx.ERR, "X-Driver-Parameter not present", " Redirect to same url") - end -end - -return _M
\ No newline at end of file diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/setnocacheflag.lua b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/setnocacheflag.lua deleted file mode 100644 index 8b57660..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/setnocacheflag.lua +++ /dev/null @@ -1,29 +0,0 @@ ---[[ - - Copyright 2016 ZTE Corporation. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - Author: Zhaoxing Meng - email: meng.zhaoxing1@zte.com.cn - -]] -local from, to, err = ngx.re.find(ngx.var.uri, "\\.(gif|jpg|jpeg|png|bmp|ico)$", "jo") ---Based on the request file type to determine whether to cache -if from then - --use cache - return 0 -else - --do not use cache - return 1 -end
\ No newline at end of file diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/sites-enabled/openomsb.conf b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/sites-enabled/openomsb.conf deleted file mode 100644 index ad0bf1c..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/sites-enabled/openomsb.conf +++ /dev/null @@ -1,181 +0,0 @@ -# -# Copyright 2016 2015-2016 ZTE, Inc. and others. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Author: Zhaoxing Meng -# email: meng.zhaoxing1@zte.com.cn -# - -server { - listen 80; - default_type text/html; - add_header X-Cache-Status $upstream_cache_status; - - location = / { - rewrite ^ /openoui/microservices/index.html redirect; - } - - location = /openoui/microservices { - rewrite /openoui/microservices /openoui/microservices/index.html redirect; - } - - location / { - set $server "fallback"; - set $url ""; - set $key ""; - - # Lua files - rewrite_by_lua_file luaext/customrouter.lua; - access_by_lua_file luaext/execute_auth.lua; - - proxy_pass http://$server; - } - location ~ ^/api/(.*) { - rewrite ^/api/(.*) /openoapi/$1 last; - } - location ~ ^/iui/(.*) { - rewrite ^/iui/(.*) /openoui/$1 last; - } - - location ^~ /openoapi/driver_ { - set $backend ""; - # Lua files - access_by_lua_block { - local driver_manager = require('plugins.driver_manager') - driver_manager.access() - } - proxy_pass http://$backend; - } - location ~ ^/openoapi/([^/]+)(/[Vv][^/]*)?(.*) { - - #Send requests to Driver Mgr. if 'X_Driver_Parameter' header found in the request - if ($http_X_Driver_Parameter) { - rewrite_by_lua_block { - local driver_manager = require('plugins.driver_manager') - driver_manager.access() - } - } - - set $apiname $1; - set $apiversion $2; - set $apiserver "fallback"; - set $apiurl ""; - - # Lua files - rewrite_by_lua_file luaext/openoapirouter.lua; - access_by_lua_file luaext/execute_auth.lua; - - proxy_pass http://$apiserver; - } - - location ~ ^/openoui/([^/]+)(.*) { - location ~* ^/iui/([^/]+)(.*)\.(?:png|jpg|jpeg|js|css|html|gif|ico|bmp|woff)$ { - set $iuiname $1; - set $iuiparam $2; - set $iuiserver "fallback"; - set $iuiurl ""; - - # Lua files - rewrite_by_lua_file luaext/openouirouter.lua; - access_by_lua_file luaext/execute_auth.lua; - - proxy_cache nginx_cache; - proxy_cache_key $host$uri$is_args$args; - proxy_cache_valid 200 304 12h ; - proxy_cache_valid 301 302 1m ; - proxy_cache_valid any 1m ; - expires 12h; - - proxy_pass http://$iuiserver; - } - set $iuiname $1; - set $iuiparam $2; - set $iuiserver "fallback"; - set $iuiurl ""; - - # Lua files - rewrite_by_lua_file luaext/openouirouter.lua; - access_by_lua_file luaext/execute_auth.lua; - - proxy_pass http://$iuiserver; - } - - location ~ ^/admin/([^/]+)(/[Vv][^/]*)?(.*) { - set $apiname $1; - set $apiversion $2; - set $apiserver "fallback"; - set $adminurl ""; - - # Lua files - rewrite_by_lua_file luaext/openoadminrouter.lua; - access_by_lua_file luaext/execute_auth.lua; - - proxy_pass http://$apiserver; - } - - location ~ ^/apijson/([^/]+)(/[Vv][^/]*)?(.*) { - location ~* ^/apijson/([^/]+)(/[v][^/]*)?(.*)\.(?:png|jpg|jpeg|js|css|html|gif|ico|bmp|woff)$ { - set $apiname $1; - set $apiversion $2; - set $apiserver "fallback"; - set $apijsonurl ""; - - # Lua files - rewrite_by_lua_file luaext/openoapijsonrouter.lua; - access_by_lua_file luaext/execute_auth.lua; - - proxy_cache nginx_cache; - proxy_cache_key $host$uri$is_args$args; - proxy_cache_valid 200 304 12h ; - proxy_cache_valid 301 302 1m ; - proxy_cache_valid any 1m ; - expires 12h; - - proxy_pass http://$apiserver; - } - set $apiname $1; - set $apiversion $2; - set $apiserver "fallback"; - set $apijsonurl ""; - - # Lua files - rewrite_by_lua_file luaext/openoapijsonrouter.lua; - access_by_lua_file luaext/execute_auth.lua; - - proxy_pass http://$apiserver; - } - - location ~* \.(?:png|jpg|jpeg|js|css|html|gif|ico|bmp|woff)$ { - set $server "fallback"; - set $url ""; - set $key ""; - - # Lua files - rewrite_by_lua_file luaext/customrouter.lua; - access_by_lua_file luaext/execute_auth.lua; - - proxy_cache nginx_cache; - proxy_cache_key $host$uri$is_args$args; - proxy_cache_valid 200 304 12h ; - proxy_cache_valid 301 302 1m ; - proxy_cache_valid any 1m ; - expires 12h; - - proxy_pass http://$server; - } - - location = /favicon.ico { - log_not_found off; - } -}
\ No newline at end of file diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/temp/placeholder.txt b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/temp/placeholder.txt deleted file mode 100644 index e69de29..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/temp/placeholder.txt +++ /dev/null diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/reload.sh b/msb-core/openresty-ext/src/assembly/resources/openresty/reload.sh deleted file mode 100644 index 63e6854..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/reload.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -# -# Copyright 2016 ZTE Corporation. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Author: Zhaoxing Meng -# email: meng.zhaoxing1@zte.com.cn -# - -DIRNAME=`dirname $0` -HOME=`cd $DIRNAME/nginx; pwd` -_NGINXCMD="$HOME/sbin/nginx" - -cd $HOME; pwd -echo =========== begin to reload =============== -echo @WORK_DIR@ $HOME -echo @C_CMD@ $_NGINXCMD -p $HOME/ -s reload -$_NGINXCMD -p $HOME/ -s reload
\ No newline at end of file diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/run.bat b/msb-core/openresty-ext/src/assembly/resources/openresty/run.bat deleted file mode 100644 index 0efc55a..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/run.bat +++ /dev/null @@ -1,55 +0,0 @@ -@REM -@REM Copyright 2016 ZTE Corporation. -@REM -@REM Licensed under the Apache License, Version 2.0 (the "License"); -@REM you may not use this file except in compliance with the License. -@REM You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, software -@REM distributed under the License is distributed on an "AS IS" BASIS, -@REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@REM See the License for the specific language governing permissions and -@REM limitations under the License. -@REM -@REM Author: Zhaoxing Meng -@REM email: meng.zhaoxing1@zte.com.cn -@REM - -@echo off -title openresty-server -@if not "%ECHO%" == "" echo %ECHO% -@if "%OS%" == "Windows_NT" setlocal - -set DIRNAME=. - -if "%OS%" == "Windows_NT" set DIRNAME=%~dp0% - -set ARGS= -:loop -if [%1] == [] goto endloop - set ARGS=%ARGS% %1 - shift - goto loop -:endloop - -set HOME=%DIRNAME%nginx -set _NGINXCMD=%HOME%\nginx.exe - -echo =========== openresty config info ============================================ -echo HOME=%HOME% -echo _NGINXCMD=%_NGINXCMD% -echo =============================================================================== - -cd /d "%HOME%" -echo @WORK_DIR@%HOME% -echo @C_CMD@ "%_NGINXCMD%" -%_NGINXCMD% -IF ERRORLEVEL 1 goto showerror -exit -:showerror -echo WARNING: Error occurred during startup or Server abnormally stopped by way of killing the process,Please check! -echo After checking, press any key to close -pause -exit
\ No newline at end of file diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/run.sh b/msb-core/openresty-ext/src/assembly/resources/openresty/run.sh deleted file mode 100644 index f5226b5..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/run.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -# -# Copyright 2016 ZTE Corporation. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Author: Zhaoxing Meng -# email: meng.zhaoxing1@zte.com.cn -# - -DIRNAME=`dirname $0` -HOME=`cd $DIRNAME/nginx; pwd` -LUAJIT_HOME=`cd $DIRNAME/luajit; pwd` -_NGINXCMD="$HOME/sbin/nginx" -echo =========== prepare the symbolic links ======================================== -ln -s -f $_NGINXCMD $DIRNAME/bin/openresty -ln -s -f $LUAJIT_HOME/bin/luajit2.1.0-beta2 $LUAJIT_HOME/bin/luajit -ln -s -f $LUAJIT_HOME/lib/libluajit-5.1.so.2.1.0 $LUAJIT_HOME/lib/libluajit-5.1.so.2 -ln -s -f $LUAJIT_HOME/lib/libluajit-5.1.so.2.1.0 $LUAJIT_HOME/lib/libluajit-5.1.so -echo ================================================================================ - -echo =========== create symbolic link for libluajit-5.1.so.2 ======================================== -LUAJIT_FILENAME="$LUAJIT_HOME/lib/libluajit-5.1.so.2" -LN_TARGET_FILE='/lib/libluajit-5.1.so.2' -LN_TARGET_FILE64='/lib64/libluajit-5.1.so.2' -ln -s -f $LUAJIT_FILENAME $LN_TARGET_FILE -ln -s -f $LUAJIT_FILENAME $LN_TARGET_FILE64 -echo =============================================================================== - -echo =========== openresty config info ============================================= -echo HOME=$HOME -echo _NGINXCMD=$_NGINXCMD -echo =============================================================================== -cd $HOME; pwd - -echo @WORK_DIR@ $HOME -echo @C_CMD@ $_NGINXCMD -p $HOME/ -$_NGINXCMD -p $HOME/ - diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/stop.bat b/msb-core/openresty-ext/src/assembly/resources/openresty/stop.bat deleted file mode 100644 index 3609162..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/stop.bat +++ /dev/null @@ -1,54 +0,0 @@ -@REM -@REM Copyright 2016 ZTE Corporation. -@REM -@REM Licensed under the Apache License, Version 2.0 (the "License"); -@REM you may not use this file except in compliance with the License. -@REM You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, software -@REM distributed under the License is distributed on an "AS IS" BASIS, -@REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@REM See the License for the specific language governing permissions and -@REM limitations under the License. -@REM -@REM Author: Zhaoxing Meng -@REM email: meng.zhaoxing1@zte.com.cn -@REM - -@echo off -title close openresty-server -@if not "%ECHO%" == "" echo %ECHO% -@if "%OS%" == "Windows_NT" setlocal - -set DIRNAME=. - -if "%OS%" == "Windows_NT" set DIRNAME=%~dp0% - -set ARGS= -:loop -if [%1] == [] goto endloop - set ARGS=%ARGS% %1 - shift - goto loop -:endloop - -set HOME=%DIRNAME%nginx -set _NGINXCMD=%HOME%\nginx.exe - - -echo =========== openresty config info ============================================ -echo HOME=%HOME% -echo _NGINXCMD=%_NGINXCMD% -echo =============================================================================== - - -cd /d "%HOME%" -echo @WORK_DIR@%HOME% -echo @C_CMD@ "%_NGINXCMD% -s stop" - -%_NGINXCMD% -s stop -echo closing signal has been sent,stopping in background,WAIT... -timeout /t 5 /nobreak > nul -exit diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/stop.sh b/msb-core/openresty-ext/src/assembly/resources/openresty/stop.sh deleted file mode 100644 index 6057d48..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/stop.sh +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/bash -# -# Copyright 2016 ZTE Corporation. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Author: Zhaoxing Meng -# email: meng.zhaoxing1@zte.com.cn -# - -DIRNAME=`dirname $0` -HOME=`cd $DIRNAME/nginx; pwd` -_NGINXCMD="$HOME/sbin/nginx" - -echo =========== openresty config info ============================================= -echo HOME=$HOME -echo _NGINXCMD=$_NGINXCMD -echo =============================================================================== -cd $HOME; pwd - -echo @WORK_DIR@ $HOME -echo @C_CMD@ $_NGINXCMD -p $HOME/ -s stop - -function save_nginx_pid(){ - nginx_id=`ps -ef | grep nginx | grep $_NGINXCMD | grep -v grep | awk '{print $2}'` - echo $nginx_id - worker_id_list=`ps -ef | grep nginx | grep $nginx_id | grep "worker process" | awk '{print $2}'` - echo $worker_id_list -} - -function kill_nginx_process(){ - ps -p $nginx_id - if [ $? == 0 ]; then - kill -9 $nginx_id - fi - - for worker_id in $worker_id_list - do - ps -p $worker_id - if [ $? == 0 ]; then - echo kill -9 $worker_id - kill -9 $worker_id - fi - done -} -save_nginx_pid; -$_NGINXCMD -p $HOME/ -s stop -sleep 5 -kill_nginx_process;
\ No newline at end of file |