# # 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. # #the maximum allowed size of the client request body,current 10G client_max_body_size 10240m; client_body_buffer_size 128k; #set conf for proxy pass 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:$server_port; proxy_buffers 4 16k; #set the nginx_cache parameter proxy_cache_path temp/proxy_cache levels=1:2 keys_zone=nginx_cache:100m inactive=1d max_size=1g; proxy_cache_key $host$uri$is_args$args; proxy_cache_revalidate on; proxy_cache_min_uses 3; proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; proxy_cache_lock on; # Lua settings lua_package_path "$prefix/../lualib/?.lua;$prefix/luaext/?.lua;;"; lua_package_cpath "$prefix/../lualib/?.so;;"; lua_shared_dict rr_cache 1M; lua_shared_dict rr_locks 100k; lua_shared_dict svc_cache 5M; lua_shared_dict locks 200k; lua_code_cache on; # Basic reverse proxy server processor upstream defaultbackend { server 0.0.0.1; balancer_by_lua_file luaext/loadbalance/balancer.lua; #keepalive 10; } server { listen 10080; default_type text/html; # the flag identify whether to check doing internal redirect or not set $websocket_internal_redirect "on"; location = /msb { #try_files $uri @defaulthomepage; rewrite ^ /iui/microservices/default.html redirect; } location = /iui/microservices { try_files $uri @addslash; } location @addslash { return 302 $scheme://$http_host$uri/; } location @defaulthomepage { return 302 $scheme://$http_host/iui/microservices/default.html; } error_page 410 = @commonnotfound; location @commonnotfound { set $svc_type "custom"; set $svc_name ""; set $svc_url ""; set $backend "defaultbackend"; #rewrite by the lua file rewrite_by_lua_file luaext/rewrite/customrewrite.lua; #log by the lua file log_by_lua_file luaext/log/logger.lua; proxy_pass http://$backend; proxy_redirect http://$host:$server_port$svc_url http://$host:$server_port$svc_name; } location @customwebsocket { set $websocket_internal_redirect "off"; #set header for websocket proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; 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; #rewrite by the lua file rewrite_by_lua_file luaext/rewrite/customrewrite.lua; #log by the lua file log_by_lua_file luaext/log/logger.lua; proxy_pass http://$backend; } location @commonwebsocket { set $websocket_internal_redirect "off"; #set header for websocket proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; 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; #rewrite by the lua file rewrite_by_lua_file luaext/rewrite/commonrewrite.lua; #log by the lua file log_by_lua_file luaext/log/logger.lua; proxy_pass http://$backend; } location / { set $svc_type "custom"; set $svc_name ""; set $svc_url ""; set $backend "defaultbackend"; #rewrite by the lua file rewrite_by_lua_file luaext/rewrite/customrewrite.lua; #log by the lua file log_by_lua_file luaext/log/logger.lua; proxy_pass http://$backend; proxy_redirect http://$host:$server_port$svc_url http://$host:$server_port$svc_name; } location ~ ^/(api|admin|apijson)(/[Vv]\d+(?:\.\d+)*)?/([^/]+)(/[Vv]\d+(?:\.\d+)*)?(.*) { set $svc_type $1; set $svc_name $3; set $svc_version1 $2; set $svc_version2 $4; set $req_res $5; set $backend "defaultbackend"; #rewrite by the lua file rewrite_by_lua_file luaext/rewrite/commonrewrite.lua; #log by the lua file log_by_lua_file luaext/log/logger.lua; proxy_pass http://$backend; } location ~* ^/iui/([^/]+)(.*)\.(png|jpg|jpeg|gif|ico|bmp|woff)$ { set $svc_type "iui"; set $svc_name $1; set $req_res $2.$3; set $backend "defaultbackend"; #rewrite by the lua file rewrite_by_lua_file luaext/rewrite/commonrewrite.lua; #log by the lua file log_by_lua_file luaext/log/logger.lua; proxy_cache nginx_cache; add_header X-Cache-Status $upstream_cache_status; proxy_pass http://$backend; } location ~ ^/iui/([^/]+)(.*) { set $svc_type "iui"; set $svc_name $1; set $req_res $2; set $backend "defaultbackend"; #rewrite by the lua file rewrite_by_lua_file luaext/rewrite/commonrewrite.lua; #log by the lua file log_by_lua_file luaext/log/logger.lua; proxy_pass http://$backend; } location ~* \.(?:png|jpg|jpeg|gif|ico|bmp|woff)$ { set $svc_type "custom"; set $svc_name ""; set $svc_url ""; set $backend "defaultbackend"; #rewrite by the lua file rewrite_by_lua_file luaext/rewrite/customrewrite.lua; #log by the lua file log_by_lua_file luaext/log/logger.lua; proxy_cache nginx_cache; add_header X-Cache-Status $upstream_cache_status; proxy_pass http://$backend; proxy_redirect http://$host:$server_port$svc_url http://$host:$server_port$svc_name; } location = /favicon.ico { log_not_found off; } include ../msb-enabled/location-ext/*.conf; include ../msb-enabled/location-ext-mount/*.conf; }