成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

單點登錄nginx代理及開發(fā)環(huán)境調(diào)試配置

go4it / 3141人閱讀

摘要:最近做項目,遇到單點登錄,方法是在前端做代理。調(diào)通之后開始思考如何在本地開發(fā)環(huán)境調(diào)試單點登錄這一功能。

最近做項目,遇到單點登錄,方法是在前端做nginx代理。
應用系統(tǒng)需要配合做如下調(diào)整:
1、使用“*.頂級域名”訪問,確??梢院蚄AM共享cookie
2、對來自Nginx代理的訪問放開登錄認證(安全起見,對來自其他IP的訪問應該禁止)
3、應用系統(tǒng)從請求頭kam_remote_user中讀取登錄用戶(Nginx會將登錄用戶寫入請求頭)
4、如果應用系統(tǒng)需要KAM的全局唯一token,可以從cookie中讀取kam_sso_token的值

剛開始調(diào)試的時候是在正式環(huán)境,每次修改完代碼需要重新構(gòu)建才能看到效果,
實在繁瑣,還產(chǎn)生了一堆不必要的commit 歷史。調(diào)通之后開始思考如何在本地開發(fā)環(huán)境調(diào)試單點登錄這一功能。
不辱使命,研究出來了,以下是步驟。

1、配置項目 nginx.conf
    location / {
            root   /usr/share/nginx/html;
            auth_request /kam_auth;
            error_page 401 = @error401;
            auth_request_set $kam_remote_url $upstream_http_kam_remote_url;
            proxy_set_header kam_remote_user $upstream_http_kam_remote_user;
        }

    location /kam_auth {
            internal;
            proxy_set_header kam_remote_url "$scheme://$http_host$request_uri";
            proxy_set_header Host $host;
            proxy_pass_request_body off;
            proxy_set_header Content-Length "";
            proxy_pass 單點登錄頁面網(wǎng)址/auth;
        }

    location @error401 {
            add_header Set-Cookie "NSREDIRECT=$kam_remote_url;Path=/;Domain=頂級域名";
            return 302 單點登錄頁面網(wǎng)址;
        }

配置完后發(fā)布到正式環(huán)境,單點登錄功能已可用

繼續(xù)配置,我們的目標是 dev 環(huán)境也能單點登錄!

2、虛擬域名

修改hosts文件 C:WindowsSystem32driversetc
加入 127.0.0.1 dev.testgroup.com

之后,把原來的dev運行地址 http://localhost:8080 換成 http://dev.testgroup.com:8080
發(fā)現(xiàn)報錯 Invalid Host header
解決方法:在webpack.dev.conf.js devServer對象中添加:disableHostCheck: true

devServer: {
    ...
    disableHostCheck: true
  },

重新 run dev 后發(fā)現(xiàn)可以訪問了

3、下載 nginx

nginx官網(wǎng)上下載相應的安裝包
下載進行解壓,將解壓后的文件放到自己心儀的目錄下。window的cmd窗口,進入到nginx目錄,
使用 start nginx.exe 進行nginx的安裝,如下圖所示

安裝成功,后在瀏覽器地址欄輸入:127.0.0.1,會看到如下圖所示的nginx歡迎界面

如果看不到,那么說明你安裝失敗,你可以到你的 nginx 目錄下的logs文件夾下的error下查看,
如果發(fā)現(xiàn)里面寫著:

說明你的80端口被占用了,或是cmd命令進入dos下執(zhí)行:netstat -aon | findstr :80 查看80端口是否被占用,如果占用,那么你需要修改注冊表,如下步驟:
1、打開注冊表:regedit
2、找到:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesHTTP
3、找到一個REG_DWORD類型的項Start,將其改為0
4、重啟系統(tǒng),System進程不會占用80端口
此時此刻,你可以再次執(zhí)行 相應的命令:start nginx.exe 命令了。

nginx相關(guān)命令:
start nginx.exe
nginx.exe -s stop //停止nginx
nginx.exe -s reload //重新加載nginx
nginx.exe -s quit //退出nginx

因為我們已經(jīng)配置了虛擬域名,所以在瀏覽器地址欄輸入 http://dev.testgroup.com 也是同樣的 nginx welcome 頁面

3、配置本地 nginx 文件

修改 nginx 目錄下的 conf/nginx.conf 文件

location / {
            root   html;
            index  index.html index.htm;
            auth_request /kam_auth;
            error_page 401 = @error401;
            auth_request_set $kam_remote_url $upstream_http_kam_remote_url;
            proxy_set_header kam_remote_user $upstream_http_kam_remote_user;
            proxy_pass http://dev.testgroup.com:8080;
        }
        location /kam_auth {
            internal;
            proxy_set_header kam_remote_url "$scheme://$http_host$request_uri";
            proxy_set_header Host $host;
            proxy_pass_request_body off;
            proxy_set_header Content-Length "";
            proxy_pass 單點登錄頁面網(wǎng)址/auth;
        }

         location @error401 {
            add_header Set-Cookie "NSREDIRECT=$kam_remote_url;Path=/;Domain=頂級域名";
            return 302 單點登錄頁面網(wǎng)址;
        }

現(xiàn)在,在瀏覽器地址欄輸入 http://dev.testgroup.com 發(fā)現(xiàn)自動跳轉(zhuǎn)到了單點登錄頁面,
登錄后返回到了我們之前的dev.testgroup.com頁面

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/40205.html

相關(guān)文章

  • DCOS應用案例-不同場景的應用上云遷移

    摘要:極大地降低了平臺的復雜度,更加方便企業(yè)開發(fā)人員實現(xiàn)各種業(yè)務應用,幫助企業(yè)輕松打造基于云計算的軟件基礎設施。本文將從實際案例出發(fā),結(jié)合不同的使用場景,為各位介紹的這些特性。是未來數(shù)據(jù)中心操作系統(tǒng)的核心。 0.前言 隨著 Docker 技術(shù)的日漸火熱,本就火爆的云計算行業(yè)進入了一個加速階段。云計算最大的特點是彈性和靈活,幫助企業(yè)應對復雜的業(yè)務需求。由于云計算的IT構(gòu)架和上一代的IT構(gòu)架有很...

    PumpkinDylan 評論0 收藏0
  • 開發(fā)環(huán)境下使用nginx重寫uri代理功能

    摘要:本文同步在個人博客上,歡迎關(guān)注這篇文章整理了在前端開發(fā)中,在開發(fā)環(huán)境下使用重寫及代理功能的方法。表示該規(guī)則是使用正則定義的,區(qū)分大小寫。因此牢記在上下文中使用,而在上下文中使用。 本文同步在個人博客shymean.com上,歡迎關(guān)注 這篇文章整理了在前端開發(fā)中,在開發(fā)環(huán)境下使用nginx重寫uri及代理功能的方法。 參考 nginx中文文檔 前端開發(fā)者必備的 Nginx 知識 Ngin...

    LMou 評論0 收藏0
  • nginx反向代理與微信測試全攻略

    摘要:傳給微信的參數(shù)進行轉(zhuǎn)義其中參數(shù)是可以被微信原樣返回,這樣就可以按你自己的需求完成反向代理了??梢匀サ舸罱y試環(huán)境另一條運維的原則是不要在生產(chǎn)環(huán)境上直接改,在測試環(huán)境修改并經(jīng)過測試,測試通過后,再上傳到生產(chǎn)環(huán)境。 前言 在與第三方系統(tǒng)進行接口開發(fā)時,需要不斷的改進和測試,以常見的微信登錄支付和 Alipay 支付和登錄為例. 相對來講 Alipay 做起來容易一些, 一是接口 SDK 封...

    endless_road 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<