diff options
Diffstat (limited to 'msb-core/openresty-ext')
21 files changed, 1075 insertions, 557 deletions
diff --git a/msb-core/openresty-ext/pom.xml b/msb-core/openresty-ext/pom.xml index 1db2516..09b6bca 100644 --- a/msb-core/openresty-ext/pom.xml +++ b/msb-core/openresty-ext/pom.xml @@ -1,96 +1,98 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Copyright (C) 2016 ZTE, Inc. and others. All rights reserved. (ZTE)
-
- 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.
-
--->
-
-<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.0.0-SNAPSHOT</version>
- </parent>
-
-
- <modelVersion>4.0.0</modelVersion>
- <artifactId>openresty-ext</artifactId>
- <version>1.0.0-SNAPSHOT</version>
- <name>openo/msb/msb-core/openresty-ext</name>
- <packaging>pom</packaging>
-
- <properties>
- <outputdir>target/assembly</outputdir>
- <packageid>openresty-ext</packageid>
- </properties>
-
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-resources-plugin</artifactId>
- <configuration>
- <includeEmptyDirs>true</includeEmptyDirs>
- </configuration>
- <executions>
- <execution>
- <id>copy-resources</id>
- <phase>process-resources</phase>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <configuration>
- <outputDirectory>${outputdir}</outputDirectory>
- <resources>
- <resource>
- <directory>src/assembly/resources/</directory>
- <filtering>false</filtering>
- <includes>
- <include>**/*</include>
- </includes>
- </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</id>
- <phase>package</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <target name="distribution">
- <zip destfile="target/${packageid}-${project.version}.zip" update="true">
- <zipfileset dir="target/assembly/" includes="**"/>
- </zip>
- <attachartifact file="target/${packageid}-${project.version}.zip" type="zip"/>
- </target>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- </plugins>
- </build>
-
-
-</project>
+<?xml version="1.0" encoding="UTF-8"?> +<!-- + + 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 + +--> +<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.0.0-SNAPSHOT</version> + </parent> + + + <modelVersion>4.0.0</modelVersion> + <artifactId>openresty-ext</artifactId> + <version>1.0.0-SNAPSHOT</version> + <name>openo/msb/msb-core/openresty-ext</name> + <packaging>pom</packaging> + + <properties> + <outputdir>target/assembly</outputdir> + <packageid>openresty-ext</packageid> + </properties> + + <build> + <plugins> + <plugin> + <artifactId>maven-resources-plugin</artifactId> + <configuration> + <includeEmptyDirs>true</includeEmptyDirs> + </configuration> + <executions> + <execution> + <id>copy-resources</id> + <phase>process-resources</phase> + <goals> + <goal>copy-resources</goal> + </goals> + <configuration> + <outputDirectory>${outputdir}</outputDirectory> + <resources> + <resource> + <directory>src/assembly/resources/</directory> + <filtering>false</filtering> + <includes> + <include>**/*</include> + </includes> + </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</id> + <phase>package</phase> + <goals> + <goal>run</goal> + </goals> + <configuration> + <target name="distribution"> + <zip destfile="target/${packageid}-${project.version}.zip" update="true"> + <zipfileset dir="target/assembly/" includes="**"/> + </zip> + <attachartifact file="target/${packageid}-${project.version}.zip" type="zip"/> + </target> + </configuration> + </execution> + </executions> + </plugin> + + </plugins> + </build> + + +</project> 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 index 9a2db3f..c5dc770 100644 --- 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 @@ -1,3 +1,22 @@ +# +# 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; @@ -9,64 +28,6 @@ events { } http { - include mime.types; - - upstream iui { - server 127.0.0.1:8202; - } - - upstream nsoc { - server 127.0.0.1:8203; - } - - upstream roc { - server 127.0.0.1:8204; - } - - upstream umc { - server 127.0.0.1:8205; - } - - upstream ssh { - server 127.0.0.1:8209; - } - - upstream yamlparser { - server 127.0.0.1:8210; - } - - upstream dac { - server 127.0.0.1:8206; - } - - upstream cmcc { - server 127.0.0.1:8207; - } - - upstream tacker { - server 127.0.0.1:8208; - } - - upstream winery { - server 127.0.0.1:8080; - } - - upstream etsi { - server 127.0.0.1:8211; - } - - upstream openstackadapter { - server 127.0.0.1:8217; - } - - upstream vimadapter { - server 127.0.0.1:8218; - } - - upstream odlsdn { - server 127.0.0.1:8216; - } - # Basic Settings default_type application/octet-stream; sendfile on; @@ -84,144 +45,27 @@ http { 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:$server_port; + 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:10m inactive=1d max_size=100m; + proxy_cache_path temp/proxy_cache levels=1:2 keys_zone=nginx_cache:1024m inactive=1d max_size=10g; # Logging access_log off; # Lua settings lua_package_path "$prefix/../lualib/?.lua;;"; - lua_package_cpath "$prefix/../lualib/?.so;;"; lua_shared_dict ceryx 10M; lua_code_cache on; - - server { - listen 80; - default_type text/html; - - location = / { - rewrite ^ /iui/framework redirect; - } - - location = /openo { - rewrite ^ /iui/framework redirect; - } - - location = /iui/openo { - rewrite ^ /iui/framework redirect; - } - - location = /iui/framework/login.html { - access_by_lua_file luaext/iui_auth.lua; - proxy_pass http://iui; - } - - location = /api/uiframe/v1/login { - rewrite ^ /api/umcsm/v1/login break; - proxy_pass http://umc; - header_filter_by_lua_file luaext/login.lua; - } - - location = /api/uiframe/v1/loginOut { - access_by_lua_file luaext/logout.lua; - rewrite ^ /api/umcsm/v1/loginOut break; - proxy_pass http://umc; - } - - location = /api/hsif/v1/authentication { - access_by_lua_file luaext/make_authed.lua; - } - - location /iui { - access_by_lua_file luaext/iui_auth.lua; - proxy_pass http://iui; - } - - location ~ ^/api/(?:vim|nsoc)/v1 { - access_by_lua_file luaext/auth.lua; - proxy_pass http://nsoc; - } - - location = /api/nsoc/v1/vnfgrantinfo { - rewrite ^ /api/vim/v1/vnfgrantinfo break; - access_by_lua_file luaext/auth.lua; - proxy_pass http://nsoc; - } - - location /api/nsocnotification/v1 { - rewrite ^/api/nsocnotification/v1/(.*) /nsocnotification/v1/$1 break; - access_by_lua_file luaext/auth.lua; - proxy_pass http://nsoc; - } - - location ~ ^/api/(?:roc|rocnotification)/v1 { - access_by_lua_file luaext/auth.lua; - proxy_pass http://roc; - } - - location /api/uiframe/v1 { - rewrite ^/api/uiframe/v1/(.*) /api/umcsm/v1/$1 break; - access_by_lua_file luaext/iui_auth.lua; - proxy_pass http://umc; - } - - location ~ ^/api/umc(?:pm|fm|drill|sm|monitor)/v1 { - access_by_lua_file luaext/auth.lua; - proxy_pass http://umc; - } - - location ~ ^/api/ssh/v1 { - proxy_pass http://ssh; - } - - location ~ ^/api/yamlparser/v1 { - proxy_pass http://yamlparser; - } - - location ~ ^/api/(?:dac|dacnotification)/v1 { - access_by_lua_file luaext/auth.lua; - proxy_pass http://dac; - } - - location /api/cmccia/v1 { - access_by_lua_file luaext/auth.lua; - proxy_pass http://cmcc; - } - - location /api/tackeria/v1 { - access_by_lua_file luaext/auth.lua; - proxy_pass http://tacker; - } - location /winery { - access_by_lua_file luaext/auth.lua; - proxy_pass http://winery; - } - - location = /api/microservices/v1/apiRoute { - access_by_lua_file luaext/auth.lua; - content_by_lua_file luaext/serviceaccess.lua; - } - - location /api/umcswagger/v1 { - rewrite ^/api/umcswagger/v1/(.*) /api/$1 break; - access_by_lua_file luaext/auth.lua; - proxy_pass http://umc; - } - - location /api/etsiia/v1 { - access_by_lua_file luaext/auth.lua; - proxy_pass http://etsi; - } + # see https://github.com/openresty/lua-resty-core + #init_by_lua ' + # require "resty.core" + #'; - location /api/odlsdnia/v1 { - access_by_lua_file luaext/auth.lua; - proxy_pass http://odlsdn; - } - } + # Includes + include mime.types; + include ../sites-enabled/*.conf; } diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/auth.lua b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/auth.lua deleted file mode 100644 index 067c277..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/auth.lua +++ /dev/null @@ -1,15 +0,0 @@ -local cache = ngx.shared.ceryx -local client_ip = ngx.var.remote_addr -local host = ngx.var.host -if client_ip == '127.0.0.1' or client_ip == host or client_ip == ngx.var.server_addr then - return -end -local succ, err, forcible = cache:replace(client_ip, "place_holder", 3600) -if not succ then - if err == 'not found' then - ngx.log(ngx.WARN, "access record not found for "..client_ip) - ngx.exit(401) - else - ngx.log(ngx.WARN, err) - end -end
\ No newline at end of file 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 new file mode 100644 index 0000000..d1f476a --- /dev/null +++ b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/customrouter.lua @@ -0,0 +1,194 @@ +--[[ + + 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 + +]] +-- 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 + --取出所有的�?放到table中准备排�? + local key_table = {} + local index = 1 + for key,_ in pairs(key_set) do + --为了避免效率问题,暂时不用table.insert() + --table.insert(key_table,key) + 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") + --判断key是否为输入uri�?前缀" + 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/iui_auth.lua b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/iui_auth.lua deleted file mode 100644 index dd7b2ed..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/iui_auth.lua +++ /dev/null @@ -1,41 +0,0 @@ -local cache = ngx.shared.ceryx -local client_ip = ngx.var.remote_addr -local uri = ngx.var.uri -if uri == "/iui/framework/login.html" then - local value, flags = cache:get(client_ip) - if not value then - return - else - ngx.redirect("/iui/framework/main-page.html") - end -end - -local referer = ngx.var.http_referer -local refererList = { - "/iui/framework/login.html", - "/iui/framework/css/login.css", - "/iui/component/thirdparty/font%-awesome/css/font%-awesome.min.css", - "/iui/framework/css/style%-custom.css" -} -local function referer_matches(t, r) - for k,_ in pairs(t) do - if string.match(r, t[k]) then - return true - end - end - return false -end - -if referer and referer_matches(refererList, referer) then - return -end - -local succ, err, forcible = cache:replace(client_ip, "place_holder", 3600) -if not succ then - if err == 'not found' then - ngx.log(ngx.WARN, "access record not found for "..client_ip..",redirect to login page") - ngx.redirect("/iui/framework/login.html") - else - ngx.log(ngx.WARN, err) - end -end
\ No newline at end of file diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/login.lua b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/login.lua deleted file mode 100644 index 7d6bfd8..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/login.lua +++ /dev/null @@ -1,9 +0,0 @@ -local h = ngx.resp.get_headers() -if h["openoauth"] and h["openoauth"] == "true" then - local cache = ngx.shared.ceryx - local client_ip = ngx.var.remote_addr - local succ, err, forcible = cache:set(client_ip, "place_holder", 3600) - if not succ then - ngx.log(ngx.WARN, err) - end -end
\ No newline at end of file diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/logout.lua b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/logout.lua deleted file mode 100644 index e23f787..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/logout.lua +++ /dev/null @@ -1,6 +0,0 @@ -local cache = ngx.shared.ceryx -local client_ip = ngx.var.remote_addr -local succ, err, forcible = cache:delete(client_ip) -if not succ then - ngx.log(ngx.WARN, err) -end
\ No newline at end of file diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/make_authed.lua b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/make_authed.lua deleted file mode 100644 index c4c2d78..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/make_authed.lua +++ /dev/null @@ -1,44 +0,0 @@ -function ipValidator(ip)
- local chunks = {ip:match("(%d+)%.(%d+)%.(%d+)%.(%d+)")}
- if #chunks == 4 then
- for _,v in pairs(chunks) do
- if tonumber(v) > 255 then return R.STRING end
- end
- return true
- end
- local chunks = {ip:match(("([a-fA-F0-9]*):"):rep(8):gsub(":$","$"))}
- if #chunks == 8 then
- for _,v in pairs(chunks) do
- if #v > 0 and tonumber(v, 16) > 65535 then return R.STRING end
- end
- return true
- end
- return false
-end
-
-if ngx.req.get_method() == "POST" then
- ngx.req.read_body()
- local body = ngx.req.get_body_data()
- local json = require('cjson')
- local tab = json.decode(body)
- local ip = tab["passIp"]
- if not ip then
- ngx.log(ngx.WARN, "ip is nil.")
- ngx.exit(500)
- end
- if ipValidator(ip) then
- local cache = ngx.shared.ceryx
- local succ, err, forcible = cache:set(ip, "place_holder", 3600)
- if not succ then
- ngx.log(ngx.WARN, err)
- ngx.exit(500)
- end
- else
- ngx.log(ngx.WARN, "not a valid ip.")
- ngx.exit(500)
- end
- ngx.exit(201)
-else
- ngx.log(ngx.WARN, "not a POST request.")
- ngx.exit(500)
-end
\ 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 new file mode 100644 index 0000000..d2f0895 --- /dev/null +++ b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/openoadminrouter.lua @@ -0,0 +1,110 @@ +--[[ + + 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 + +]] +-- 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 new file mode 100644 index 0000000..1a061f0 --- /dev/null +++ b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/openoapijsonrouter.lua @@ -0,0 +1,110 @@ +--[[ + + 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 + +]] +-- 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 new file mode 100644 index 0000000..9dec2a9 --- /dev/null +++ b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/openoapirouter.lua @@ -0,0 +1,117 @@ +--[[ + + 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 + +]] +-- 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 new file mode 100644 index 0000000..736aacd --- /dev/null +++ b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/openouirouter.lua @@ -0,0 +1,115 @@ +--[[ + + 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 + +]] +-- 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/serviceaccess.lua b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/serviceaccess.lua deleted file mode 100644 index 1118341..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/serviceaccess.lua +++ /dev/null @@ -1,15 +0,0 @@ -if ngx.req.get_method() == "GET" then
- local services = {
- {serviceName="odlsdnia",apiJson="/api/odlsdnia/v1/swagger.json"},
- {serviceName="roc",apiJson="/api/roc/v1/swagger.json"},
- {serviceName="tackeria",apiJson="/api/tackeria/v1/swagger.json"},
- {serviceName="etsi",apiJson="/api/etsiia/v1/swagger.json"}
- }
- local cjson = require "cjson"
- local jsonData = cjson.encode(services)
- jsonData = string.gsub(jsonData,"\\/","/")
- ngx.print(jsonData)
-else
- ngx.log(ngx.WARN, "not a GET request.")
- ngx.exit(500)
-end
\ 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 new file mode 100644 index 0000000..e8c75cd --- /dev/null +++ b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/setnocacheflag.lua @@ -0,0 +1,29 @@ +--[[ + + 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 + +]] +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 new file mode 100644 index 0000000..b529d94 --- /dev/null +++ b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/sites-enabled/openomsb.conf @@ -0,0 +1,150 @@ +# +# 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 = /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; + + proxy_pass http://$server; + } + location ~ ^/api/(.*) { + rewrite ^/api/(.*) /openoapi/$1 last; + } + location ~ ^/iui/(.*) { + rewrite ^/iui/(.*) /openoui/$1 last; + } + location ~ ^/openoapi/([^/]+)(/[Vv][^/]*)?(.*) { + set $apiname $1; + set $apiversion $2; + set $apiserver "fallback"; + set $apiurl ""; + + # Lua files + rewrite_by_lua_file luaext/openoapirouter.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; + + 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; + + 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; + + 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; + + 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; + + 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; + + 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/reload.sh b/msb-core/openresty-ext/src/assembly/resources/openresty/reload.sh index 240b4b0..644f057 100644 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/reload.sh +++ b/msb-core/openresty-ext/src/assembly/resources/openresty/reload.sh @@ -1,12 +1,12 @@ #!/bin/sh # -# Copyright (C) 2016 ZTE, Inc. and others. All rights reserved. (ZTE) +# 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 +# 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, @@ -14,6 +14,9 @@ # 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` diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/run.bat b/msb-core/openresty-ext/src/assembly/resources/openresty/run.bat index 151cad7..17302ce 100644 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/run.bat +++ b/msb-core/openresty-ext/src/assembly/resources/openresty/run.bat @@ -1,52 +1,55 @@ -@REM
-@REM Copyright (C) 2016 ZTE, Inc. and others. All rights reserved. (ZTE)
-@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
-
-@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
+@REM +@REM Copyright 2016 2015-2016 ZTE, Inc. and others. All rights reserved. +@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 index 7ac3128..5c7dbc8 100644 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/run.sh +++ b/msb-core/openresty-ext/src/assembly/resources/openresty/run.sh @@ -1,12 +1,12 @@ #!/bin/sh # -# Copyright (C) 2016 ZTE, Inc. and others. All rights reserved. (ZTE) +# 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 +# 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, @@ -14,6 +14,9 @@ # 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` diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/run4docker.sh b/msb-core/openresty-ext/src/assembly/resources/openresty/run4docker.sh deleted file mode 100644 index 329dabc..0000000 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/run4docker.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2016 ZTE, Inc. and others. All rights reserved. (ZTE) -# -# 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. -# -DIRNAME=`dirname $0` -HOME=`cd $DIRNAME/nginx; pwd` -_NGINXCMD="$HOME/sbin/nginx" - -echo =========== create symbolic link for libluajit-5.1.so.2 ======================================== -LUAJIT_HOME=`cd $DIRNAME/luajit; pwd` -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/ -g "daemon off;" - diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/stop.bat b/msb-core/openresty-ext/src/assembly/resources/openresty/stop.bat index e5ea581..9fa6522 100644 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/stop.bat +++ b/msb-core/openresty-ext/src/assembly/resources/openresty/stop.bat @@ -1,51 +1,54 @@ -@REM
-@REM Copyright (C) 2016 ZTE, Inc. and others. All rights reserved. (ZTE)
-@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
-
-@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
+@REM +@REM Copyright 2016 2015-2016 ZTE, Inc. and others. All rights reserved. +@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 index 343bff4..c5d0f19 100644 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/stop.sh +++ b/msb-core/openresty-ext/src/assembly/resources/openresty/stop.sh @@ -1,12 +1,12 @@ #!/bin/bash # -# Copyright (C) 2016 ZTE, Inc. and others. All rights reserved. (ZTE) +# 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 +# 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, @@ -14,6 +14,10 @@ # 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" |