欢迎来到个人简历网!永久域名:gerenjianli.cn (个人简历全拼+cn)
当前位置:首页 > 范文大全 > 实用文>nginx缓存功能cache的教程服务器教程

nginx缓存功能cache的教程服务器教程

2024-04-08 07:48:03 收藏本文 下载本文

“gxblgb”通过精心收集,向本站投稿了4篇nginx缓存功能cache的教程服务器教程,下面是小编为大家整理后的nginx缓存功能cache的教程服务器教程,仅供大家参考借鉴,希望大家喜欢,并能积极分享!

nginx缓存功能cache的教程服务器教程

篇1:nginx缓存功能cache的教程服务器教程

1、传统缓存之一(404)这个办法是把nginx的404错误定向到后端,然后用proxy_store把后端返回的页面保存,

1、传统缓存之一(404)

这个办法是把nginx的404错误定向到后端,然后用proxy_store把后端返回的页面保存。

配置:

location / {

root /home/html/;#主目录

expires 1d;#网页的过期时间

error_page 404 =200 /fetch$request_uri;#404定向到/fetch目录下

}

location /fetch/ {#404定向到这里

internal;#指明这个目录不能在外部直接访问到

expires 1d;#网页的过期时间

alias /home/html/;#虚拟目录文件系统地址要和locaion /一致,proxy_store会将文件保存到这目录下

proxy_pass www.sudone.com/;#后端upstream地址,/fetch同时是一个代理

proxy_set_header Accept-Encoding '';#让后端不要返回压缩(gzip或deflate)的内容,保存压缩后的内容会引发乱子。

proxy_store on;#指定nginx将代理返回的文件保存

proxy_temp_path /home/tmp;#临时目录,这个目录要和/home/html在同一个硬盘分区内

}

使用的时候还有要注意是nginx要有权限往/home/tmp和/home/html下有写入文件的权限,在linux下nginx一般会配置成nobody用户运行,这样这两个目录就要chown nobody,设成nobody用户专用,当然也可以chmod 777,不过所有有经验的系统管理员都会建议不要随便使用777。

2、传统缓存之二(!-e)

原理和404跳转基本一致,但更简洁一些:

location / {

root /home/html/;

proxy_store on;

proxy_set_header Accept-Encoding '';

proxy_temp_path /home/tmp;

if ( !-f $request_filename )

{

proxy_pass www.sudone.com/;

}

}

可以看到这个配置比404节约了不少代码,它是用!-f来判断请求的文件在文件系统上存不存在,不存在就proxy_pass到后端,返回同样是用proxy_store保存。

两种传统缓存都有着基本一样的优点和缺点:

缺点1:不支持带参数的动态链接,比如read.php?id=1,因为nginx只保存文件名,所以这个链接只在文件系统下保存为read.php,这样用户访问read.php?id=2时会返回不正确的结果。同时不支持www.sudone.com/这种形式的首页和二级目录www.sudone.com/download/,因为nginx非常老实,会将这样的请求照链接写入文件系统,而这个链接显然是一个目录,所以保存失败。这些情况都需要写rewrite才能正确保存。

缺点2:nginx内部没有缓存过期和清理的任何机制,这些缓存的文件会永久性地保存在机器上,如果要缓存的东西非常多,那就会撑暴整个硬盘空间。为此可以使用一个shell脚本定期清理,同时可以撰写php等动态程序来做实时更新。

缺点3:只能缓存200状态码,因此后端返回301/302/404等状态码都不会缓存,假如恰好有一个访问量很大的伪静态链接被删除,那就会不停穿透导致后端承载不小压力。

缺点4:nginx不会自动选择内存或硬盘作为存储介质,一切由配置决定,当然在当前的操作系统里都会有操作系统级的文件缓存机制,所以存在硬盘上也不需要过分担心大并发读取造成的io性能问题。

nginx传统缓存的缺点也是它和squid等缓存软件的不同之特色,所以也可看作其优点,

在生产应用中它常常用作和squid的搭档,squid对于带?的链接往往无法阻挡,而nginx能将其访问拦住,例如:sudone.com/?和sudone.com/在squid上会被当做两个链接,所以会造成两次穿透;而nginx只会保存一次,无论链接变成sudone.com/?1还是sudone.com/?123,均不能透过nginx缓存,从而有效地保护了后端主机。

nginx会非常老实地将链接形式保存到文件系统中,这样对于一个链接,可以很方便地查阅它在缓存机器上的缓存状态和内容,也可以很方便地和别的文件管理器如rsync等配合使用,它完完全全就是一个文件系统结构。

这两种传统缓存都可以在linux下将文件保存到/dev/shm里,一般我也是这么做的,这样可以利用系统内存来做缓存,利用内存的话,清理过期内容速度就会快得多。使用/dev/shm/时除了要把tmp目录也指向到/dev/shm这个分区外,如果有大量小文件和目录,还要修改一下这个内存分区的inode数量和最大容量:

mount -o size=2500M -o nr_inodes=480000 -o noatime,nodiratime -o remount /dev/shm

上面的命令在一台有3G内存的机器上使用,因为/dev/shm默认最大内存是系统内存的一半就是1500M,这条命令将其调大成2500M,同时shm系统inode数量默认情况下可能是不够用的,但有趣的是它可以随意调节,这里调节为480000保守了点,但也基本够用了。

3、基于memcached的缓存

nginx对memcached有所支持,但是功能并不是特别之强,性能上还是非常之优秀。

location /mem/ {

if ( $uri ~ “^/mem/([0-9A-Za-z_]*)$” )

{

set $memcached_key “$1”;

memcached_pass    192.168.1.2:11211;

}

expires 70;

}

这个配置会将sudone.com/mem/abc指明到memcached的abc这个key去取数据。

nginx目前没有写入memcached的任何机制,所以要往memcached里写入数据得用后台的动态语言完成,可以利用404定向到后端去写入数据。

4、基于第三方插件ncache

ncache是新浪兄弟开发的一个不错的项目,它利用nginx和memcached实现了一部分类似squid缓存的功能,我并没有使用这个插件的经验,可以参考:

code.google.com/p/ncache/

5、nginx新开发的proxy_cache功能

从nginx-0.7.44版开始,nginx支持了类似squid较为正规的cache功能,目前还处于开发阶段,支持相当有限,这个缓存是把链接用md5编码hash后保存,所以它可以支持任意链接,同时也支持404/301/302这样的非200状态。

配置:

首先配置一个cache空间:

proxy_cache_path /path/to/cache levels=1:2 keys_zone=NAME:10m inactive=5m max_size=2m clean_time=1m;

注意这个配置是在server标签外,levels指定该缓存空间有两层hash目录,第一层目录是1个字母,第二层为2个字母,保存的文件名就会类似/path/to/cache/c/29/b7f54b2df7773722d382f4809d65029c;keys_zone为这个空间起个名字,10m指空间大小为10MB;inactive的5m指缓存默认时长5分钟;max_size的2m是指单个文件超过2m的就不缓存;clean_time指定一分钟清理一次缓存。

location / {

proxy_pass www.sudone.com/;

proxy_cache NAME;#使用NAME这个keys_zone

proxy_cache_valid 200 302 1h;#200和302状态码保存1小时

proxy_cache_valid 301 1d;#301状态码保存一天

proxy_cache_valid any 1m;#其它的保存一分钟

}

篇2:Windows Server 被忽视的十大功能服务器教程

在Windows Server 2008中被完全重新设计的网络协议栈包括一项新技术,使得一个大的多的数据包可以进入网络,它还可以迅速的重新调整网络上数据包的大小,使它更加高效。

Windows Server 2008正在逐渐向我们走来,随着最近其第一个RC版的问世,意味着它真正发布的时刻已经不会让我们等待太长的时间。

Windows Server 2008的开发时间可以说不短了,它是自之后的第一个Windows服务器操作系统,它所新增加的很多功能也已经被公布:大多数IT专业人士对其中一些功能的细节信息也比较熟悉,例如Server Core、PowerShell和代号Viridian的Windows Server Virtualization技术。但是除了这些名头比较响的功能之外,Windows 2008还包含了很多其他的功能。

为了这个目的,本文将把Windows Server 2008十大被忽视的十大功能展现给大家。这些功能虽然没有得到人们的关注,但是对你的网络来说却是非常重要的。

10、打印管理终端(PMC)

这个功能最初在Windows Server R2中发布。但是与R2版所不同的是,在Windows 2008中它是一个默认支持的功能,所有人都可以使用它。PMC是微软的管理终端MMC的快速版,可以让管理员从一个终端完整的看到每一个打印机。此外,你可以使用组策略来将打印机映射到特定的用户组,这样财务人员就不会占着工程人员所需要使用的打印机了。

9、审核工具Audipol

这是一个非常复杂的日志工具,可以让你在企业内的任何一台计算机上配置、创建、备份和恢复审核策略。在这个质量法规的时代,审核工作比以往任何时候都显的更加重要,使用Auditpol,可能让你无需再使用第三方的审核软件。通过使用命令行工具Auditpol,你能偶启用独立的子项目。与在Windows Server 2003中功能非常简单的版本相比,它大大提高了审核的数量,而且还有数百种不同的分类,可以让你创建在你的操作系统内部的活动记录。

8、Windows远程Shell(WinRS)

在Windows Server 2003中,为了连接到远程计算机的命令行窗口中,管理员需要使用终端服务。终端服务虽然不错,但是扩展性差,对于每一个远程计算机上都需要一个到终端的连接。而借助于WinRS,你可以安全的连接到你所需要的任意多的远程计算机上。对于管理员来说,这可能是一个非常节约时间的功能。

7、事件转发

对于那些桌面计算机运行Vista的企业来说,这是一个不错的功能。事件转发功能汇聚和转发所选择的计算机的日志到一个集中的终端上,使管理更加有效率。比如说,你是一个管理员,你得到用户报告说他在其屏幕上看到了恐怖的显示登录问题的“Event 51”弹出窗口,你无需再使用“帆布鞋网络”技术(从一台计算机跑到另一台计算机检查安全日志或问题),你只需简单的从你的计算机上“订阅”Vista计算机,它们就会把你所需要的任何信息送到你的门上。

6、活动目录权限管理服务(AD RMS)

在Windows 2003中,这个服务被称作Windows权限管理服务,

虽然它在Windows 2003中就有,但是那时候是作为一个需要购买的附加产品出现的。现在这个服务已经被集成在Windows Server 2008中,而且包括一些升级。活动目录权限管理服务可以帮助用户创建权限保护的文件、授权版权保护信息和检查确保只有授权用户才能访问版权保护的数据。在Windows Server 2008中的增强还包括,通过管理终端MMC可以管理活动目录权限管理服务,以及通过“管理角色”托管活动目录权限管理服务任务。

5、新的密码策略

在活动目录AD中,域是一个安全范围。在Windows Server 2008的前面的服务器操作系统Windows Server 2003中,这个范围导致了每一个域限制使用一个密码策略。这是一个限制性的要求,在Windows Server 2008中已经消除了这个限制。现在你不用必须创建新域来获得一个新的密码策略;而只需要为特定的组或用户创建密码策略就可以了。如果你的C级别的领导(CEO、CIO等)比其他普通人需要更严格的策略,那么在Windows Server 2008中你实现起来就简单多了。

4、组策略改进之一:可搜索策略

在组策略管理器的改变中有两个是最值得关注的,而这两个改变在Windows Server 2008中都已经实现。第一个是对组策略设置的可搜索数据库。大多数管理员已经使用了Excel电子表格来保存他们的组策略设置。试想一下,假如有数千个这种设置,很明显这会变为一个很不实用的做法。现在在组策略管理终端GPMC内,管理员可以对策略进行搜索,让你摆脱Excel的束缚,大大加快搜索的速度。

3、组策略改进之二:对组策略添加评注

第二个组策略的升级是,现在能够对组策略设置添加评注。能够对组策略设置添加评注不仅仅对现在的管理有所帮助,而且将来的管理和对组策略进行故障排查的时候大有好处。举个例子来说,当你在配置一个组策略的时候,你可以说出为什么你要创建这个特殊的策略;然后,当你需要对这个策略进行故障排查或重新配置的时候,你(或者你的继任者)从评注中可以首先查看当初为什么要创建这个策略。此外,当你进行组策略建模的时候,为了勾勒出不同的策略会互相影响或影响你的环境,这些评注可以在一个报告中出现,从而简化你的组策略设置。

2、升级、移植指导工具

当升级或移植到一个新的操作系统上时,IT专业人士的主要关注的问题之一是安装的简单性。尽管微软的高级产品经理Ralston没有给出详细的说明,但是他却透漏了这方面的一些进展情况。它是一个“保护部署技术,将在升级或移植的过程中给予客户说明性的指导。”这将提供给管理员一个成功的部署、升级和维护Windows Server 2008的工具。他承诺,关于这个高级技术的更多信息将在11月公布出来。届时将在Technet的Windows Server开发团队博客上公布。

1、提速八倍网速

现在对网络提高的需要在不断增加。网络正在比以往任何时候都多的传输的数据,但是由于过时的网络协议栈,这些网络越来越像拉斯维加斯的高速公路。对于微软来说,可以在一个包中发送的数据量自从1995年以来一直保持在大约64KB,这个大小的数据包换算为大约5MB的顶级数据吞吐率。在效率方面来说,这就如同拥有一个双轮卡车,但只拉着一个箱子到处跑动。换句话说,如果这个数据包的大小一直保持这么小的话,无论你的网络管道多么大多么快,都不会有意义。

数据包大小的限制上限已经升级到512KB,最终换算称40MB的数据吞吐率。换言之,如果进行合适的配置和优化的话,你的网络的速度可以是现在的八倍。听起来是不是很不错呢?

篇3:Linux系统下配置功能完善的Web服务器服务器教程

调试环境:Redhat9.0Apache1.3.29Mysql3.23.58PHP4.3.4

Linux系统的安装我就不讲了,这是基本功,其实这篇文章在类似Redhat的其他linux也应该通用,大家只要掌握我提供的方法就行,记得安装Redhat9。0的时候不要安装系统默认的apache,mysql和php以及相关的软件。已经安装的请用rpm-e*删除已经安装的包。

1.安装Mysql3.23.58

其实老实说直接安装Mysql 提供的rpm包也是一个比较可行的办法,他的 的rpm包的提供基本跟tar包发行是同步的,这点我比较喜欢,至少安装rpm包的在后面的调试中不会出现mysql库文件找不到的情况。但这里还是有必要讲一下自定义安装的步骤,毕竟网友自定义安装的还说挺多的。

软件获取:www.mysql.com/downloads/

安装步骤:

tarzxvfmysql-3.23.58.tar.gz

cdmysql-3.23.58

./configure--prefix=/usr/local/mysql--sysconfdir=/etc--localstatedir=/var/lib/mysql

make

makeinstall

#prefix=/usr/local/mysqlmysql安装的目标目录

#sysconfdir=/etcmy.ini配置文件的路径

#localstatedir=/var/lib/mysql数据库存放的路径

安装完以后要初始化数据库,当然你是升级的话不用做这步;

/usr/local/mysql/bin/mysql_install_db

如果系统没有mysql这个用户的话,最好做以下这步:

useradd-M-o-r-d/var/lib/mysql-s/bin/bash-c“MySQLServer”-u27mysql

然后我启动mysql

/usr/local/mysql/bin/safe_mysqld&

ok,先看看mysql能否正常工作

mysql-urootmysql

一般情况下都是不能正常链接数据库,错误提示一般为:

ERROR:Can’tconnecttolocalMySQLserverthroughsocket’/var/lib/mysql/mysql.sock’(2)

其实网上大家问的最多的都是整个问题,说什么链接不到mysqld.sock,其实大家不妨看看mysql的错误日志就明白怎么回事,我这里的错误日志是在

/var/lib/mysql/*.err你会发现mysql只所以不能启动,是因为/var/lib/mysql的权限不允许mysql服务访问,英文mysql默认是调用mysql用户来启动服务的,好了,既然知道是什么原因找到不能启动,那就简单了,

我们只要  chown-Rmysql:mysql/var/lib/mysql就行,如果还是启动不了,再慢慢调试权限,反正一般启动不了都是权限的问题。

如果大家还是不能启动不了的话,那就用我的比较繁琐的权限的设置,反正我每次都是这么做的,一般不会有问题,见下:

chown-Rroot/usr/local/mysql

chgrp-Rmysql/usr/local/mysql

chown-Rroot/usr/local/mysql/bin

chgrp-Rmysql/usr/local/mysql/bin

chgrp-Rmysql/var/lib/mysql

chmod777/var/lib/mysql

chown-Rroot/var/lib/mysql/mysql

chgrp-Rmysql/var/lib/mysql/mysql

chmod777/var/lib/mysql/mysql

chown-Rroot/var/lib/mysql/mysql/*

chgrp-Rmysql/var/lib/mysql/mysql/*

chmod777/var/lib/mysql/mysql/*

chmod777/usr/local/mysql/lib/mysql/libmysqlclient.a

做完上面的步骤,然后把你编译目录的一个脚本COPY过去

cpsupport-files/mysql.server/etc/rc.d/init.d/mysqld

chkconfig--addmysqld

用ntsysv设置使mysql每次启动都能自动运行。

好了,至此mysql安装完毕,你可以这样起动你的mysql服务

/etc/rc.d/init.d/mysqldstart

下面这步比较关键,

ln-s/usr/local/mysql/lib/mysql/usr/lib/mysql

ln-s/usr/local/mysql/include/mysql/usr/include/mysql

大家可以不做这步,大可以在编译其他软件的时候自定义myslq的库文件路径,但我还是喜欢把库文件链接到默认的位置,这样你在编译类似PHP,Vpopmail等软件时可以不用指定mysql的库文件地址。

篇4:在Vista中禁用讨厌的UAP功能服务器教程

Windows Vista的一个重要功能:UAC (User Account Control,以前叫UAP-User Account Protection),

我想用惯了XP的朋友应该很不习惯这个功能吧,觉得自己的权利处处被限制,很是不爽,

由于很多程序设计时需要最高权限运行,而暂时对于如何暂时获取最高权限 的方法。有关UAP请看:

如果你不喜欢这个功能你大可以关闭它,方法很简单,“Win+R”―“msconfig”,看到下图的红色框中内容了吧,上面的是关闭,下面的是开启。最后点击“Launch”按钮,重启机器即可。

【nginx缓存功能cache的教程服务器教程】相关文章:

1.Windows Server 服务器教程

2.Windows 邮件服务器全攻略服务器教程

3.linux入侵常用命令服务器教程

4.SMTP结构及原理服务器教程

5.个人服务器架设全攻略(65)服务器教程

6.构筑自己的防火墙服务器教程

7.个人服务器架设全攻略(73)服务器教程

8.个人服务器架设全攻略(70)服务器教程

9.smtp协议手工使用服务器教程

10.Linux服务器:邮件系统的原理服务器教程

下载word文档
《nginx缓存功能cache的教程服务器教程.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度: 评级1星 评级2星 评级3星 评级4星 评级5星
点击下载文档

文档为doc格式

  • 返回顶部