基于Nginx图书馆远程授权访问系统开发.docVIP

基于Nginx图书馆远程授权访问系统开发.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Nginx图书馆远程授权访问系统开发

基于Nginx图书馆远程授权访问系统开发   摘 要:Nginx是一款时下非常流行的轻量级网页服务器和反向代理服务器,具有许多其他同类产品所不具备的优点。本文开发了一个基于Nginx的图书馆远程授权访问系统,实际应用表明该系统具有配置简洁、用户界面友好以及扩展模块功能强大等优点,值得高校图书馆推广使用。   关键词:Nginx 反向代理;远程授权访问;数字资源   基金项目:湖州师范学院校级科研项目(2014XJKY39)   近年来,随着云计算、大数据等热点技术的迅速崛起,高校图书馆数字资源建设也取得了突飞迅猛的发展,许多高校开始建设各种综合型或专业化数字图书馆来满足师生读者的多样化数字阅读需求。在这样的大背景下,图书馆如何利用现有条件为校外读者提供版权数字化资源便成了一个新的课题。构建图书馆远程授权访问系统是解决这个新课题的有效途径之一。笔者借助本单位图书馆已有的软硬件资源,搭建开发了一个基于Nginx的图书馆远程授权访问系统,该系统具有配置简洁、客户端界面友好以及扩展模块功能强大等优点,报告如下。   1 系统开发与测试   1.1 系统运行软件环境   (1)操作系统:CentOS 6.4 64bit   (2) 反向代理服务器:Nginx 1.4.1   (3)身份认证数据库:MySql 5.0.77   (4)身份认证模块:PAM-Mysql   1.2 远程访问模块搭建   (1)编译并安装Nginx,编译前注意添加www用户组和组内用户www,编译时加上身份认证模块ngx_http_auth_pam,正则表达式模块(URL重写)pcre,替换模块   nginx_substitutions_filter以及用于安全连接的openssl模块,编译完成之后使用   iptables命令将需要访问的端口加入到防火墙例外之中。   (2)修改nginx配置文件nginx.conf实现对数据库的远程访问[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自带的反向代理命令,可以将外部对目标虚拟主机特定端口的访问反向代理至对http://DATABASE URL的访问;sub_fliter是实现网页中文本替换的第三方Nginx模块,主要用于解决数据库地址中含有多个子域名时容易跳出反向代理服务器问题,相比官方自带的substitution替换模块,sub_fliter可以同时替换多于一条的文本字符串;rewrite模块是nginx的URL重写模块,它可以通过正则表达式匹配来替换满足特定条件的URL字符串,在此案例中用来解决部分数据库在子域名之间的跳转问题,同时,rewrite模块不能对数据库站点中其他同级别的二级子域名下的URL进行重写,因此需要sub_fliter的配合使用。   当需要同时配置多个数据库时,可以通过创建侦听不同端口的虚拟主机来实现对不同数据库的反向代理访问,同样,许多存在二级子域名的数据库也可以对各个二级子域名分配不同的反向代理虚拟主机来进行管理。   1.3 身份认证模块搭建   Nginx反向代理服务器可以通过自带的HttpAuthBasicModule模块来实现基于HTTP基本认证的身份认证方式,使用它可以零编码实现一个用户认证体系,但是同时这种认证方式有一个明显的缺点,就是使用明文的htpasswd文件方式来存储用户名密码,不仅在安全性方面大打折扣,也为以后需要频繁更新用户数据造成了不小的困扰,因此,一种新的认证方法应运而生:PAM,它使用主流数据库软件来存储用户名密码,而不是htpasswd文件。   1.3.1安装软件   ngx_http_auth_pam在Nginx编译安装时已经作为第三方模块加载。下载并编译安装pam-mysql。   1.3.2 模块配置   (1) 配置Mysql   Mysql主要用来存储授权用户的用户名和密码,因此需要建一个数据库和一张表,然后配置访问Mysql的账号:   create database pam_nginx_user;   use pam_nginx_user;   crea

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档