iT邦幫忙

0

Ubuntu Nginx處理GET請求判斷式問題

各位大神早安,目前在測試環境中,有一個GET問題想請問
環境架構為:UBUNTU16.04,前端NGINX反向代理後端DOCKER的TOMCAT(無任何網頁)
想請問各位,目前在使用POSTMAN用GET訪問TOMCAT時 HEADERS中的KEY會自帶X-GGG-GGG與Value會帶一串TOMCAT給出的隨機參數,若均符合則TOMCAT會回應code:1 msg:OK。
如果今天前端NGINX要先幫TOMCAT判斷用戶訪問時是否HEADERS帶有關鍵字,其判斷式或設定該怎麼下?

需求為:Nginx判斷用戶GET請求的HEADERS是否帶有X-GGG-GGG,若無則不打擾TOMCAT,直接反饋404或其他狀態,若有則跳轉至http://XXX.XXX.XXX.XXX:8080

目前設定檔,NGINX -T都正常,但無法達成我的需求...
server {
listen 80;
server_name test;
access_log /var/log/nginx/test_access_log;
location / {
set $flag "00";
if ( $http_x_custom_x-access-token ){
set $flag "01";
}
proxy_set_header Host $host:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
if ( $flag = "00" ){
return 404;
}
if ( $flag = "01" ){
proxy_pass http://XXX.XXX.XXX.XXX:8080;
}
}
}

PS:我知道可以用IP或設帳密來限制訪問,但主要想研究該如何達成,感激各位!

weiclin iT邦高手 4 級 ‧ 2018-05-07 15:05:36 檢舉
$http_x_custom_x-access-token
改成
$http_x_ggg_ggg

文件: http://nginx.org/en/docs/http/ngx_http_core_module.html#var_http_
$http_name
arbitrary request header field; the last part of a variable name is the field name converted to lower case with dashes replaced by underscores
sgps70911 iT邦新手 5 級 ‧ 2018-05-07 20:38:06 檢舉
感謝您的回應!!明早入公司立馬嘗試,另外請看私訊,感恩
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答