• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Nginx的圖書館遠(yuǎn)程授權(quán)訪問系統(tǒng)開發(fā)

      2016-09-26 21:08:46葉見春
      卷宗 2016年7期
      關(guān)鍵詞:數(shù)字資源

      摘 要:Nginx是一款時(shí)下非常流行的輕量級(jí)網(wǎng)頁服務(wù)器和反向代理服務(wù)器,具有許多其他同類產(chǎn)品所不具備的優(yōu)點(diǎn)。本文開發(fā)了一個(gè)基于Nginx的圖書館遠(yuǎn)程授權(quán)訪問系統(tǒng),實(shí)際應(yīng)用表明該系統(tǒng)具有配置簡潔、用戶界面友好以及擴(kuò)展模塊功能強(qiáng)大等優(yōu)點(diǎn),值得高校圖書館推廣使用。

      關(guān)鍵詞:Nginx 反向代理;遠(yuǎn)程授權(quán)訪問;數(shù)字資源

      基金項(xiàng)目:湖州師范學(xué)院校級(jí)科研項(xiàng)目(2014XJKY39)

      近年來,隨著云計(jì)算、大數(shù)據(jù)等熱點(diǎn)技術(shù)的迅速崛起,高校圖書館數(shù)字資源建設(shè)也取得了突飛迅猛的發(fā)展,許多高校開始建設(shè)各種綜合型或?qū)I(yè)化數(shù)字圖書館來滿足師生讀者的多樣化數(shù)字閱讀需求。在這樣的大背景下,圖書館如何利用現(xiàn)有條件為校外讀者提供版權(quán)數(shù)字化資源便成了一個(gè)新的課題。構(gòu)建圖書館遠(yuǎn)程授權(quán)訪問系統(tǒng)是解決這個(gè)新課題的有效途徑之一。筆者借助本單位圖書館已有的軟硬件資源,搭建開發(fā)了一個(gè)基于Nginx的圖書館遠(yuǎn)程授權(quán)訪問系統(tǒng),該系統(tǒng)具有配置簡潔、客戶端界面友好以及擴(kuò)展模塊功能強(qiáng)大等優(yōu)點(diǎn),報(bào)告如下。

      1 系統(tǒng)開發(fā)與測試

      1.1 系統(tǒng)運(yùn)行軟件環(huán)境

      (1)操作系統(tǒng):CentOS 6.4 64bit

      (2) 反向代理服務(wù)器:Nginx 1.4.1

      (3)身份認(rèn)證數(shù)據(jù)庫:MySql 5.0.77

      (4)身份認(rèn)證模塊:PAM-Mysql

      1.2 遠(yuǎn)程訪問模塊搭建

      (1)編譯并安裝Nginx,編譯前注意添加www用戶組和組內(nèi)用戶www,編譯時(shí)加上身份認(rèn)證模塊ngx_http_auth_pam,正則表達(dá)式模塊(URL重寫)pcre,替換模塊

      nginx_substitutions_filter以及用于安全連接的openssl模塊,編譯完成之后使用

      iptables命令將需要訪問的端口加入到防火墻例外之中。

      (2)修改nginx配置文件nginx.conf實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的遠(yuǎn)程訪問[1],配置修改如下:

      location / {

      proxy_pass http://DATABASE URL;

      subs_fliter DATABASE ADDRESS1 LOCAL ADDRESS1;

      ……

      subs_fliter DATABASE ADDRESSn LOCAL ADDRESSn;

      rewrite REGULAREXPRESSION1 REPLACEMENT 1;

      ……

      rewrite REGULAREXPRESSIONn REPLACEMENT n;

      }

      其中,proxy_pass是nginx自帶的反向代理命令,可以將外部對(duì)目標(biāo)虛擬主機(jī)特定端口的訪問反向代理至對(duì)http://DATABASE URL的訪問;sub_fliter是實(shí)現(xiàn)網(wǎng)頁中文本替換的第三方Nginx模塊,主要用于解決數(shù)據(jù)庫地址中含有多個(gè)子域名時(shí)容易跳出反向代理服務(wù)器問題,相比官方自帶的substitution替換模塊,sub_fliter可以同時(shí)替換多于一條的文本字符串;rewrite模塊是nginx的URL重寫模塊,它可以通過正則表達(dá)式匹配來替換滿足特定條件的URL字符串,在此案例中用來解決部分?jǐn)?shù)據(jù)庫在子域名之間的跳轉(zhuǎn)問題,同時(shí),rewrite模塊不能對(duì)數(shù)據(jù)庫站點(diǎn)中其他同級(jí)別的二級(jí)子域名下的URL進(jìn)行重寫,因此需要sub_fliter的配合使用。

      當(dāng)需要同時(shí)配置多個(gè)數(shù)據(jù)庫時(shí),可以通過創(chuàng)建偵聽不同端口的虛擬主機(jī)來實(shí)現(xiàn)對(duì)不同數(shù)據(jù)庫的反向代理訪問,同樣,許多存在二級(jí)子域名的數(shù)據(jù)庫也可以對(duì)各個(gè)二級(jí)子域名分配不同的反向代理虛擬主機(jī)來進(jìn)行管理。

      1.3 身份認(rèn)證模塊搭建

      Nginx反向代理服務(wù)器可以通過自帶的HttpAuthBasicModule模塊來實(shí)現(xiàn)基于HTTP基本認(rèn)證的身份認(rèn)證方式,使用它可以零編碼實(shí)現(xiàn)一個(gè)用戶認(rèn)證體系,但是同時(shí)這種認(rèn)證方式有一個(gè)明顯的缺點(diǎn),就是使用明文的htpasswd文件方式來存儲(chǔ)用戶名密碼,不僅在安全性方面大打折扣,也為以后需要頻繁更新用戶數(shù)據(jù)造成了不小的困擾,因此,一種新的認(rèn)證方法應(yīng)運(yùn)而生:PAM,它使用主流數(shù)據(jù)庫軟件來存儲(chǔ)用戶名密碼,而不是htpasswd文件。

      1.3.1安裝軟件

      ngx_http_auth_pam在Nginx編譯安裝時(shí)已經(jīng)作為第三方模塊加載。下載并編譯安裝pam-mysql。

      1.3.2 模塊配置

      (1) 配置Mysql

      Mysql主要用來存儲(chǔ)授權(quán)用戶的用戶名和密碼,因此需要建一個(gè)數(shù)據(jù)庫和一張表,然后配置訪問Mysql的賬號(hào):

      create database pam_nginx_user;

      use pam_nginx_user;

      create table nguser ( userid varchar(18),password varchar(30), primary key (userid)) ;

      執(zhí)行完上面語句之后,得到:

      庫:pam_nginx_user

      表:nguser

      字段:userid, password

      (2) 配置pam-mysql[2]

      在/etc/pam.d/下建一個(gè)文本文件nginx-mysql-pam,并輸入以下內(nèi)容:

      auth required /lib/security/pam_mysql.so

      host=localhost db=pam_nginx_user table=nguser usercolumn=userid passwdcolumn=password crypt=2

      account required /lib/security/pam_mysql.so

      host=localhost db=pam_nginx_user table=nguser usercolumn=userid passwdcolumn=password crypt=2

      (3) 配置Nginx,修改nginx.conf文件

      server {

      listen PortNumber;

      server_name DomainName.com;

      location / {

      auth_pam "mysql pam";

      auth_pam_service_name "nginx-mysql-pam”;

      root /…/;

      }

      }

      1.4 系統(tǒng)測試

      登陸Mysql后,在pam_nginx_user數(shù)據(jù)庫中的nguser表中插入一條用于增加用戶名密碼的記錄:insert into nguser values (‘pamuser,password(‘123456)),并訪問Nginx反向代理服務(wù)器監(jiān)聽的Web端口,出現(xiàn)如下圖的對(duì)話框:

      輸入賬號(hào)密碼,進(jìn)入主頁面,提示訪問成功,如下圖所示:

      2 系統(tǒng)特點(diǎn)

      本文開發(fā)的遠(yuǎn)程授權(quán)訪問系統(tǒng)解決了筆者所在學(xué)校圖書館部分?jǐn)?shù)字資源的遠(yuǎn)程獲取問題。筆者所在學(xué)校教職工原來在非校園網(wǎng)獲取本校圖書館購買的數(shù)字版權(quán)資源需要登錄學(xué)校VPN,而VPN需要插件安裝,更新,瀏覽器兼容性等一些列問題,而反向代理服務(wù)由于是純基于瀏覽器訪問的形式,因此無需考慮插件問題,僅僅需要一個(gè)兼容版的網(wǎng)頁瀏覽器就能實(shí)現(xiàn)數(shù)字資源的遠(yuǎn)程訪問和獲取。

      本文開發(fā)的遠(yuǎn)程授權(quán)訪問系統(tǒng)采用pam數(shù)據(jù)庫的形式進(jìn)行身份認(rèn)證,相比一些采用Nginx HTTP Auth Basic模塊的遠(yuǎn)程授權(quán)訪問系統(tǒng)[3],具有安全性高,可維護(hù)性強(qiáng)等優(yōu)點(diǎn),用戶名密碼加密后保存在Mysql數(shù)據(jù)庫中,相比Nginx HTTP Auth Basic模塊用htpasswd文件明文存儲(chǔ)用戶名密碼在配置文件中,大大提高了安全性,也從很大程度上降低了以后的用戶群體維護(hù)成本。

      本文開發(fā)的遠(yuǎn)程授權(quán)訪問系統(tǒng)主要存在2點(diǎn)不足之處:第一,用戶界面過于簡單,期待通過后期版本的迭代開發(fā)來豐富各種功能,完善用戶體驗(yàn);第二,一些大型數(shù)據(jù)庫如CNKI等出于商業(yè)利益,對(duì)反向代理技術(shù)有所屏蔽,導(dǎo)致不能通過該系統(tǒng)來實(shí)現(xiàn)數(shù)字資源的遠(yuǎn)程訪問和獲取。

      3 討論

      隨著知識(shí)爆炸時(shí)代的來臨,信息和資源的數(shù)量迅猛增多,圖書館資源的數(shù)字化也成為未來圖書館發(fā)展趨勢之一。在各大高校數(shù)字圖書館的建設(shè)中,遠(yuǎn)程授權(quán)訪問系統(tǒng)的建設(shè)成為其中一項(xiàng)不可或缺的獲取數(shù)字資源的手段。目前國內(nèi)各大高校圖書館采用的遠(yuǎn)程授權(quán)訪問系統(tǒng)主要有以下3種:(1)SSL VPN系統(tǒng)。采用此類方案首先需要采購SSL VPN的硬件設(shè)備,并將其搭內(nèi)在內(nèi)網(wǎng)環(huán)境之中,通過配套的身份認(rèn)證軟件,讀者便可以很方便地通過各種終端的瀏覽器來對(duì)校內(nèi)授權(quán)數(shù)字資源進(jìn)行讀取,這種方案優(yōu)點(diǎn)在于讀者在通過身份認(rèn)證之后便可以像在校園網(wǎng)內(nèi)部一樣通過不同的瀏覽器來獲取所有可用的數(shù)字資源,缺點(diǎn)在于前期需要價(jià)格不菲的硬件和軟件的投入,而沒有充分利用已有的服務(wù)器和網(wǎng)絡(luò)資源[4]。(2)易瑞遠(yuǎn)程授權(quán)訪問系統(tǒng)。易瑞遠(yuǎn)程授權(quán)訪問系統(tǒng)由北京英富森信息技術(shù)有限公司開發(fā),以流式重寫與端口映射的方式,實(shí)現(xiàn)公共圖書館、高校和科研機(jī)構(gòu)圖書館電子資源的授權(quán)與館(校)外訪問;以電子資源管理與導(dǎo)航的模式,實(shí)現(xiàn)對(duì)讀者及資源的靈活授權(quán)控制,并提供強(qiáng)大的統(tǒng)計(jì)功能。缺點(diǎn)是需要一定的軟件授權(quán)費(fèi)用,而且對(duì)每一個(gè)期刊數(shù)據(jù)庫都需要配置,它使用不同的虛擬主機(jī)目錄來區(qū)分不同的期刊數(shù)據(jù)庫。(3)Ezproxy系統(tǒng)。該系統(tǒng)屬于一款網(wǎng)頁代理服務(wù)器,與易瑞遠(yuǎn)程授權(quán)訪問系統(tǒng)類似,它集成了簡單的身份認(rèn)證功能,也同樣需要對(duì)每一個(gè)期刊數(shù)據(jù)庫進(jìn)行配置,并使用不同的服務(wù)器端口來區(qū)分不同的期刊數(shù)據(jù)庫,同時(shí)軟件的授權(quán)需要一定費(fèi)用。

      Nginx是一款面向性能設(shè)計(jì)的HTTP服務(wù)器,由俄羅斯程序員Igor Sysoev開發(fā),它能夠作為HTTP,HTTPS,SMTP,POP3以及IMAP協(xié)議的反向代理服務(wù)器,同時(shí)又能用來作為網(wǎng)頁負(fù)載均衡服務(wù)器或是HTTP緩存服務(wù)器,可以運(yùn)行在Microsoft Windows、UNIX、GNU/Linux、BSD、Mac OS X、Solaris、AIX、HP-UX等操作系統(tǒng)中。Nginx以類似BSD協(xié)議的條款來發(fā)行,因而也屬于自由開源軟件。類似于Apache網(wǎng)頁服務(wù)器的事件模型,Nginx使用異步事件驅(qū)動(dòng)方式來處理請(qǐng)求,它的模塊化的事件驅(qū)動(dòng)架構(gòu)在高負(fù)載情況下能夠提供更好的可以預(yù)見的性能提升。在Linux操作系統(tǒng)下,Nginx使用epoll事件模型,得益于此,Nginx在Linux操作系統(tǒng)下效率相當(dāng)高。同時(shí)Nginx在OpenBSD或FreeBSD操作系統(tǒng)上采用類似于epoll的高效事件模型kqueue[5]。Nginx整體采用模塊化設(shè)計(jì),甚至HTTP服務(wù)器核心功能也是一個(gè)模塊,這是Nginx的一個(gè)重大特點(diǎn)。Nginx帶有豐富的模塊庫和第三方模塊庫,配置靈活。

      本文基于開源軟件Nginx和現(xiàn)有服務(wù)器資源,自建了圖書館遠(yuǎn)程授權(quán)訪問系統(tǒng),實(shí)現(xiàn)了帶授權(quán)認(rèn)證的反向代理服務(wù)器功能。從運(yùn)行效果來看,該系統(tǒng)具有以下優(yōu)點(diǎn):用戶界面友好,使用方便快捷;配置靈活,開發(fā)成本低;能夠合理利用現(xiàn)有的軟硬件資源,實(shí)現(xiàn)資源節(jié)約。因此,筆者認(rèn)為,基于Nginx的圖書館遠(yuǎn)程授權(quán)訪問系統(tǒng)值得推廣運(yùn)用。

      參考文獻(xiàn)

      [1] 張宴. 實(shí)戰(zhàn)Nginx[M]. 北京:電子工業(yè)出版社, 2010.

      [2] 周軍宏. Centos7中支持虛擬用戶vsftpd 服務(wù)的配置[J].電腦知識(shí)與技術(shù),2015,11(30):41-42.

      [3] 宿大東. 采用Nginx 遠(yuǎn)程訪問圖書館內(nèi)網(wǎng)數(shù)字資源[J]. 內(nèi)蒙古科技與經(jīng)濟(jì),2013, (13),69-70.

      [4] 尋大勇. SSL VPN網(wǎng)絡(luò)安全技術(shù)的應(yīng)用研究[J]. 通信技術(shù),2009,(1),248-252.

      [5] 陶輝. 深入理解Nginx[M]. 北京:機(jī)械工業(yè)出版社, 2013.

      作者簡介

      葉見春,館員,學(xué)士,從事數(shù)字圖書館建設(shè)、維護(hù)與開發(fā)。

      猜你喜歡
      數(shù)字資源
      山東省新建本科院校圖書館數(shù)字資源建設(shè)研究
      淺談數(shù)字資源在小學(xué)數(shù)學(xué)課堂的有效提高運(yùn)用
      未來英才(2016年20期)2017-01-03 18:30:43
      圖書館數(shù)字資源評(píng)價(jià)指標(biāo)權(quán)重賦值方法概述
      微服務(wù)視角下高職圖書館數(shù)字資源使用分析
      中文信息(2016年10期)2016-12-12 10:09:57
      美術(shù)教科書使用應(yīng)把握的幾個(gè)視角
      圖書館員新角色
      建立中文DOI標(biāo)識(shí)在科技期刊出版中的作用
      高校數(shù)字資源云服務(wù)平臺(tái)的建設(shè)研究
      評(píng)價(jià)高校圖書館數(shù)字資源綜合服務(wù)能力
      新媒體時(shí)代的多元化閱讀推廣實(shí)踐
      科技視界(2016年22期)2016-10-18 00:25:15
      香港 | 岱山县| 句容市| 康定县| 阆中市| 观塘区| 行唐县| 略阳县| 博客| 东乌珠穆沁旗| 浏阳市| 云安县| 楚雄市| 梁河县| 蒲城县| 洛浦县| 瓦房店市| 南通市| 五大连池市| 钟祥市| 周宁县| 石城县| 洮南市| 北辰区| 正宁县| 广州市| 无为县| 鄂托克前旗| 东乌珠穆沁旗| 清徐县| 三穗县| 大竹县| 吴江市| 宁津县| 普洱| 松滋市| 岳普湖县| 潮安县| 新巴尔虎左旗| 濮阳市| 甘泉县|