# # 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 8181; 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) { access_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; } }