diff options
author | 2016-09-19 15:57:16 +0800 | |
---|---|---|
committer | 2016-09-19 15:57:16 +0800 | |
commit | 6be48e1015bc20005ed31f8b857842a59e1c9dfa (patch) | |
tree | e95214c0e5e570b3399938d6eb938b9ea0f1bf2a /msb-core/eag-openresty-ext | |
parent | 185f8b203942067d02c4b28df91e95ab1d9bc6eb (diff) |
Add scripts for external API gateway
Change-Id: Ice85f6277d0a0d54e00c60a08c687b4ba6b22183
Signed-off-by: HuabingZhao <zhao.huabing@zte.com.cn>
Diffstat (limited to 'msb-core/eag-openresty-ext')
3 files changed, 317 insertions, 0 deletions
diff --git a/msb-core/eag-openresty-ext/pom.xml b/msb-core/eag-openresty-ext/pom.xml new file mode 100644 index 0000000..16e76e7 --- /dev/null +++ b/msb-core/eag-openresty-ext/pom.xml @@ -0,0 +1,119 @@ +<?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>eag-openresty-ext</artifactId> + <version>1.0.0-SNAPSHOT</version> + <name>openo/msb/msb-core/eag-openresty-ext</name> + <packaging>pom</packaging> + + <properties> + <outputdir>target/assembly</outputdir> + <packageid>eag-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>../openresty-ext/src/assembly/resources/</directory> + <filtering>false</filtering> + <includes> + <include>**/*</include> + </includes> + </resource> + </resources> + <overwrite>true</overwrite> + </configuration> + </execution> + + <execution> + <id>eag-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/eag-openresty-ext/src/assembly/resources/openresty/nginx/luaext/msbconf.lua b/msb-core/eag-openresty-ext/src/assembly/resources/openresty/nginx/luaext/msbconf.lua new file mode 100644 index 0000000..4e820f5 --- /dev/null +++ b/msb-core/eag-openresty-ext/src/assembly/resources/openresty/nginx/luaext/msbconf.lua @@ -0,0 +1,26 @@ +--[[ + + 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 _M = {} +_M._VERSION = '1.0.0' + +return { + auth_plugin_status = "on" +}
\ No newline at end of file diff --git a/msb-core/eag-openresty-ext/src/assembly/resources/openresty/nginx/sites-enabled/openomsb.conf b/msb-core/eag-openresty-ext/src/assembly/resources/openresty/nginx/sites-enabled/openomsb.conf new file mode 100644 index 0000000..eadf6c0 --- /dev/null +++ b/msb-core/eag-openresty-ext/src/assembly/resources/openresty/nginx/sites-enabled/openomsb.conf @@ -0,0 +1,172 @@ +# +# 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 8080; + 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_vmware_vcloud/v1 { + 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][^/]*)?(.*) { + 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 |