Varnish 2.1.2安装与配置
- 格式:pdf
- 大小:435.91 KB
- 文档页数:16
Varnish代替Squid的理由我曾经写过一篇文章──《初步试用Squid的替代产品──Varnish Cache网站加速器》,但当时仅仅是用着玩,没做深入研究。
今天写的这篇关于Varnish的文章,已经是一篇可以完全替代Squid做网站缓存加速器的详细解决方案了。
网上关于Varnish的资料很少,中文资料更是微乎其微,希望本文能够吸引更多的人研究、使用Varnish。
在我看来,使用Varnish代替Squid的理由有三点:1、Varnish采用了“Visual Page Cache”技术,在内存的利用上,Varnish比Squid具有优势,它避免了Squid频繁在内存、磁盘中交换文件,性能要比Squid高。
2、Varnish的稳定性还不错,我管理的一台图片服务器运行Varnish已经有一个月,没有发生过故障,而进行相同工作的Squid服务器就倒过几次。
3、通过Varnish管理端口,可以使用正则表达式快速、批量地清除部分缓存,这一点是Squid不能具备的。
下面来安装Varnish网站缓存加速器(Linux 系统):1、创建www用户和组,以及Varnish缓存文件存放目录(/var/vcache):/usr/sbin/groupadd www -g 48 /usr/sbin/useradd -u 48 -g www wwwmkdir -p /var/vcachechmod +w /var/vcachechown -R www:www /var/vcache 2、创建Varnish日志目录(/var/logs/):mkdir -p /var/logschmod +w /var/logschown -R www:www /var/logs 3、编译安装varnish:wget/soft/linux/varnish/varnish-1.1.2.tar.gz tar zxvf varnish-1.1.2.tar.gzcd varnish-1.1.2./configure --prefix=/usr/local/varnishmake && make install 4、创建Varnish配置文件:vi /usr/local/varnish/vcl.conf 输入以下内容:引用backend myblogserver {set backend.host = "192.168.0.5";set backend.port = "80";}acl purge {"localhost";"127.0.0.1";"192.168.1.0"/24;}sub vcl_recv {if (req.request == "PURGE") {if (!client.ip ~ purge) {error 405 "Not allowed.";}lookup;} if (req.http.host ~ "^") {set req.backend = myblogserver;if (req.request != "GET" && req.request != "HEAD") {pipe;}else {lookup;}}else {error 404 "Zhang Yan Cache Server";lookup;}}sub vcl_hit {if (req.request == "PURGE") {set obj.ttl = 0s;error 200 "Purged.";}}sub vcl_miss {if (req.request == "PURGE") {error 404 "Not in cache.";}}sub vcl_fetch {if (req.request == "GET" && req.url ~ "\.(txt|js)$") {set obj.ttl = 3600s;}else {set obj.ttl = 30d;}} 这里,我对这段配置文件解释一下:(1)、Varnish 通过反向代理请求后端IP为192.168.0.5,端口为80的web 服务器;(2)、Varnish允许localhost、127.0.0.1、192.168.0.***三个来源IP通过PURGE方法清除缓存;(3)、Varnish对域名为的请求进行处理,非域名的请求则返回“Zhang Yan Cache Server”;(4)、Varnish对HTTP协议中的GET、HEAD 请求进行缓存,对POST请求透过,让其直接访问后端Web 服务器。
1.安装服务器版(VisualSVN-Server-2.1.6.msi),下图为本机系统及部分信息,本机做了RAID0+1(装了四块硬盘,其中两块为备份盘,目的是正常用的两块硬盘使用过程中如果突然坏掉,另两块硬盘将保存坏硬盘的数据,同时顶替掉坏硬盘进行工作)。
2.双击打开VisualSVN-Server-2.1.6.msi,点next 后如下图在下面选项打勾,点next,出现下图选择中如如选项,点next 后出现下图上图中,Location:项为程序安装目录,Repositories:后面为项目的保存目录(以后项目就保存在这个目录下了),点后面的Browse…可以修改位置,然后点netxt,,出现下图点击install,程序开始安装,安装过程中如果出现提示,可能是电脑名称为中文,最好提前改为英文。
安装正常情况下出现下图:点Finish,即完成安装,VisualSVN会运行。
出现下图VisualSVN Server的配置和使用方法(转)1.为什么要用VisualSVN Server,而不用Subversion?回答:因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Server 为windws service,还要通过修改配置文件来控制用户权限,另外如果要想以Web方式【http协议】访问,一般还要安装配置Apache,如果是新手,岂不是很头痛?而VisualSVN Serve集成了Subversion 和Apache,省去了以上所有的麻烦。
安装的时候SVN Server已经封装为windws service,Apache服务器的配置也只是在图像界面上,指定认证方式、访问端口等简单操作;另外,用户权限的管理也是通过图像界面来配置。
2.为什么不用TFS?回答:因为我们一开始就是用Subversion和TortioseSVN,所以就没有更换其他的软件。
关于Varnish配置笔记记录导语:Varnish是一个开源的反向代理软件和加速器,与传统的Squid相比,Varnish具有性能更高、速度更快、管理更方便等诸多优点,很多大型的运营网站都开始尝试用Varnish来替换Squid,这些都促使Varnish迅速发展起来。
1、准备工作及下载源码包yuminstall-yautomakeautoconflibtoolncurses-devellibxsltgrof fpcre-develpkgconfigwgetrepo.varnish-cache/source/varnish-3.0.3.tar.gz2、安装tarzxfvarnish-3.0.3.tar.gzcdvarnish-3.0.3./autogen.sh./configure--prefix=/usr/local/varnishmake&&makeinstall3、添加Varnishd进程用户,用户组,创建/var/vcache目录,使用户有权限可读写groupadduseradd-gmkdir/home/vcachechown-R:/home/vcachechmod-R750/home/vcache4、/etc/sysctl.conf优化几个内核参数.ipv4.tcp_fin_timeout=30.ipv4.tcp_keepalive_time=300.ipv4.tcp_syncookies=1.ipv4.tcp_tw_reuse=1.ipv4.tcp_tw_recycle=1.ipv4.ip_local_port_range=500065000运行sysctl-p重新按配置文件设置内核参数5、启动Varnishd/usr/local/varnish/sbin/varnishd-u-g-f/usr/local/varnish/et c/varnish/varnish.conf-a0.0.0.0:80-sfile,/home/vcache/varni sh_cache.data,100M-w1024,8192,10-t3600-T127.0.0.1:3500 参数说明:-u以什么用运行-g以什么组运行-fvarnish配置文件-a绑定IP和端口-svarnish缓存文件位置与大小-w最小,最大线程和超时时间-Tvarnish管理端口,主要用来清除缓存-pclient_11=on支持1.1协议-P(大P)/usr/local/varnish/var/varnish.pid指定其进程码文件的位置,实现管理6、启动varnishncsa用来将Varnish访问日志写入日志文件:/usr/local/varnish/bin/varnishncsa-n/home/vcache-w/var/log/ varnish.log&7、Varnish缓存清除/usr/local/varnish/bin/varnishadm-T192.168.1.180:3500purge" req..host~.5013$&&req.url~/static/image/tp.php"说明:192.168.1.180:3000为被清除缓存服务器地址.5013为被清除的域名/static/image/tp.php为被清除的url地址列表清除所有缓存/usr/local/varnish/bin/varnishadm-T192.168.1.180:3500url.pu rge*$清除image目录下所有缓存/usr/local/varnish/bin/varnishadm-T192.168.1.180:3500url.pu rge/image/8、将加入启动项vi/etc/rc.localulimit-SHn51200/usr/local/varnish/sbin/varnishd-u-g-f/usr/local/varnish/et c/varnish/varnish.conf-a0.0.0.0:80-sfile,/home/vcache/varni sh_cache.data,100M-w1024,8192,10-t3600-T127.0.0.1:3500/usr/local/varnish/bin/varnishncsa-n/home/vcache-w/var/log/ varnish.log&9、杀掉varnishd进程pkillvarnishd10、查看varnishd命中率/usr/local/varnish/bin/varnishstat11、更新系统时间yuminstall-yntpntpdatetime.nistecho"0001***ntpdatetime.nist"》/etc/crontab 附件多主机多域名varnish.conf配置backendblog{.host="198.56.193.190";.port="80";}backend{.host="192.168.1.170";.port="80";}subvcl_recv{if(req..host~"^(.)?5013$"){setreq.backend=blog;}elsif(req..host~"^(.)?(test1.|test2.)$"){ setreq.backend=;}else{error404"Unknownvirtualhost";}}subvcl_recv{if(req.restarts==0){if(req..x-forwarded-for){setreq..X-Forwarded-For=req..X-Forwarded-For+","+client.ip;}else{setreq..X-Forwarded-For=client.ip;}}#把除了以下这些类型请求以外的访问请求全部直接管道发送到后端的服务器if(req.request!="GET"&&req.request!="HEAD"&&req.request!="PUT"&&req.request!="POST"&&req.request!="TRACE"&&req.request!="OPTIONS"&&req.request!="DELETE"){/*Non-RFC2616orCONNECTwhichisweird.*/return(pipe);}#只有GET与HEAD方法才会使用Lookup,使用缓存。
win2012r2paht变量Win2012R2PAHT变量是Windows Server 2012 R2操作系统中使用的环境变量之一。
环境变量是操作系统中的一种特殊变量,用于存储和传递操作系统和应用程序的信息。
Win2012R2PAHT变量是系统中用于配置搜索路径的变量。
它定义了操作系统在搜索可执行文件和动态链接库(DLL)时要遵循的路径。
这个变量的值包含了一系列用分号分隔的目录路径。
Win2012R2PAHT变量的值可以在系统级别配置,也可以在用户级别配置。
系统级别的配置将适用于所有用户,而用户级别的配置则仅适用于特定用户。
这使得管理员可以根据需要为不同的用户或组配置不同的路径。
使用Win2012R2PAHT变量,可以轻松地添加或删除搜索路径,以使系统能够正确地找到所需的文件。
通过配置PATH变量,可以有效地管理系统的资源使用和安全性。
下面将介绍Win2012R2PAHT变量的一些常见用途和配置方法。
1.系统路径配置:在Windows Server 2012 R2操作系统中,可以通过以下步骤配置系统级别的Win2012R2PAHT变量:-打开“控制面板”,选择“系统和安全”,然后选择“系统”。
-在左侧面板中,选择“高级系统设置”。
-在“系统属性”对话框中,选择“高级”选项卡,然后单击“环境变量”按钮。
-在“环境变量”对话框中,找到“系统变量”列表中的“PATH”变量,并单击“编辑”按钮。
-在“编辑环境变量”对话框中,可以添加或删除路径。
按照需要编辑变量的值,然后单击“确定”保存更改。
2.用户路径配置:除了系统级别的配置,可以为每个用户单独配置Win2012R2PAHT变量。
这对于管理多个用户和组非常有用。
在Windows Server 2012R2中,可以通过以下步骤配置用户级别的Win2012R2PAHT变量:-打开“控制面板”,选择“用户账户”,然后选择“用户账户”。
-在左侧面板中,选择“管理另一个账户”。
httpd(⼆)之httpd-2.2安装及配置简述⼀、基于CentOS的⾃带的rpm包安装httpd 对于httpd来讲,其安装使⽤对于CentOS 6和CentOS 7是不⼀样的,对于CentOS 6⽽⾔,默认提供的RPM包是2.2的,⽽CentOS 7默认提供的安装包是2.4的; ⼀般⽽⾔,httpd在CentOS上的安装配置⽅式分为两种:通过系统⾃带的rpm包进⾏安装,以下演⽰此种⽅式;源码编译安装:因为通过rpm包安装在某些时候是有局限性的,如有些我们需要的功能可能并未编译进rpm包,⽽有些不需要的功能编译了,以及还可能有版本落后,漏洞等问题;那此时系统⾃带的rpm包已然⽆法满⾜需求,就需要我们⾃⾏编译源码安装,此种⽅式我们之后再进⾏演⽰;1、安装前的注意事项 因为httpd本⾝是受SELinux控制的,⽽如果我们⽬前处于学习阶段,建议事先设置SELinux处于permisive或disabled状态,否则之后的很多配置可能都⽆法正常进⾏。
[root@VM_0_2_centos ~]# getenforceDisabled 设置SELinux为permisive或disabled的⽅法有两种:直接通过命令⾏设置,此种⽅式在设置完成之后即时⽣效,但在⽤户登出shell时会失效:[root@VM_0_2_centos ~]# setenforce 0setenforce: SELinux is disabled[root@VM_0_2_centos ~]# getenforceDisabled通过修改配置⽂件设置,此种⽅式不会即时⽣效,但⼀经修改,之后登录永久有效:[root@VM_0_2_centos ~]# vim /etc/selinux/config2、httpd的安装及程序环境简介 我们以CentOS 6,httpd 2.2为例进⾏说明:[root@VM_0_2_centos ~]# yum install httpd[root@VM_0_2_centos ~]# rpm -ql httpd/etc/httpd/etc/httpd/conf/etc/httpd/conf.d/etc/httpd/conf.d/README/etc/httpd/conf.d/autoindex.conf/etc/httpd/conf.d/userdir.conf/etc/httpd/conf.d/welcome.conf/etc/httpd/conf.modules.d/etc/httpd/conf.modules.d/00-base.conf/etc/httpd/conf.modules.d/00-dav.conf/etc/httpd/conf.modules.d/00-lua.conf/etc/httpd/conf.modules.d/00-mpm.conf/etc/httpd/conf.modules.d/00-proxy.conf/etc/httpd/conf.modules.d/00-systemd.conf/etc/httpd/conf.modules.d/01-cgi.conf/etc/httpd/conf/httpd.conf/etc/httpd/conf/magic/etc/httpd/logs/etc/httpd/modules/etc/httpd/run/etc/logrotate.d/httpd/etc/sysconfig/htcacheclean/etc/sysconfig/httpd/run/httpd/run/httpd/htcacheclean/usr/lib/systemd/system/htcacheclean.service/usr/lib/systemd/system/httpd.service/usr/lib/tmpfiles.d/httpd.conf/usr/lib64/httpd/usr/lib64/httpd/modules/usr/lib64/httpd/modules/mod_access_compat.so...... 各位可以看到,httpd在安装完成之后⽣成了许多⽂件,我们接下来对这些⽂件做⼀个简要说明:配置⽂件:/etc/httpd/conf/httpd.conf:httpd 的主配置⽂件;/etc/httpd/conf.d/*.conf:此⽬录下的配置⽂件被主配置⽂件引⽤时会⽣效,这样的设计提升了配置时的灵活性;配置⽂件⼤体上由三段组成:Section 1:全局环境,定义程序⼯作特性的;Section 2:主服务器配置;Section 3:虚拟主机的配置,通过虚拟主机可以实现⼀个物理服务器上的同⼀个Web服务器应⽤程序可以提供多个站点; 建议:Section 2和Section 3不要同时使⽤! 配置格式为:directive value(即:指令值) 注意:directive:不区分字符⼤⼩写;当value为路径时,其格式取决于⽂件系统;脚本服务:/etc/rc.d/init.d/httpd配置⽂件:/etc/sysconfig/httpd主程序⽂件:/usr/sbin/httpd/usr/sbin/httpd.event/usr/sbin/httpd.worker⽇志⽂件⽬录:/var/log/httpdaccess_log:访问⽇志error_log:错误⽇志站点⽂档⽬录:/var/www/html:这就是我们httpd 默认的站点⽂档存放⽬录,例如当⽤户输⼊时默认所访问的⽂件这个⽬录当中的⾸页⽂件 (预设为 index.html)。
双组分(2K)清漆喷涂机器人升级改造探讨杨报军; 占早华; 高文化【期刊名称】《《电镀与涂饰》》【年(卷),期】2019(038)020【总页数】4页(P1138-1141)【关键词】双组分清漆; 机器人喷涂; 混合系统; 故障处理【作者】杨报军; 占早华; 高文化【作者单位】奇瑞汽车股份有限公司安徽芜湖 241006【正文语种】中文【中图分类】TQ639双组分(2K)清漆喷涂机器人升级改造是基于公司产品升级、现场工艺、车身外观质量提升等需要。
为了达到理想的效果,在尽量减少设备改动,缩短停产改造时间,降低社会资源浪费的前提下,对现有涂装生产线进行改造,以便满足喷涂2K清漆需要,进一步降低VOCs(挥发性有机化合物)的排放量。
1 改造内容根据现场设备现状,将原有1K(单组分)清漆机器人系统升级改造成2K清漆系统。
此次1K升级为2K的范围是某涂装生产线的12台RP6机器人,现场为双线(并行)布置(单线各6台),其中一条清漆机器人站如图1所示。
对于目前的12台清漆机器人,需要更换雾化器、法兰盘和旋杯,并增加阀导、固化剂计量泵、计量泵电机,以及与新增固化剂匹配的所有气路和油漆管路。
其中,每台机器人喷涂装置应包括完整的硬件及软件。
改造后,它应保证整个自动喷涂系统达到涂装工艺要求,而且所有喷涂装置都满足原有喷漆室环境中的设备要求,符合中国国家标准或相关欧洲标准(包括防火、防爆等项目)。
图1 1K清漆机器人站Figure 1 1K varnish spraying robot station2 1K与2K喷涂系统的差异2. 1 雾化器配置的差异1K雾化器的结构组成见图2。
图2 1K雾化器的结构Figure 2 Structure of 1K atomizer要将原1K系统使用的RP6杜尔机器人升级为2K系统,需要另外增加一块防爆盖板。
该防爆盖板含固化剂管路系统,如图3所示。
在升级改造中,固化剂系统为主要的增加部分,此部分的安装需要一定的空间,而原有机器人主剂手臂上空间有限,只能考虑单独增加固化剂的安装位置,且需考虑固化剂管路与混合器之间距离不能太远,以免在管理缺失时易导致固化,使清洗时间延长,不利于换色清洗,存在材料(固化剂及清洗溶剂)浪费现象。
installation用法一、介绍本文档将介绍in st al l at io n的使用方法和常见问题解答,帮助用户正确使用in st al lat i on。
二、安装2.1下载在官方网站下载i nst a ll at io n的安装包,安装包支持W ind o ws、M a c和Li nu x系统。
2.2执行安装根据系统类型,选择对应的安装包并执行安装。
安装过程中根据提示完成相关设置和选择。
2.3添加环境变量为了能够在任意路径下使用i ns ta ll at io n命令,需要将i n st al la ti on的安装路径添加到系统的环境变量中。
具体操作如下:1.打开系统的环境变量设置界面。
2.找到系统的P AT H变量,点击编辑。
3.在编辑框中添加in s ta ll at io n安装路径,确保路径正确无误。
4.点击确定保存设置。
三、常见问题解答3.1安装失败解决方法如果在安装过程中遇到安装失败的情况,可以尝试以下解决方法:-确保下载的安装包完整且未被破坏。
-检查系统是否满足i n st al la ti on的最低系统要求。
-关闭杀毒软件等安全软件,以避免其对i ns ta ll at io n的干扰。
-以管理员身份运行安装程序,以获得足够的权限。
3.2命令行使用安装完成后,可以通过命令行方式使用in s ta ll at io n。
以下是一些常用的命令:-`in st al la ti on ini t`:初始化i ns tal l at io n项目。
-`in st al la ti on bui l d`:编译i ns ta ll a ti on项目。
-`in st al la ti on run`:运行i ns ta ll at i on项目。
3.3卸载如需卸载已安装的in s ta ll at io n,可以通过以下步骤进行操作:1.打开系统的控制面板。
2.进入程序和功能(或卸载程序)界面。
varnish ul标准-回复Varnish是一个开源的高性能HTTP加速器和反向代理服务器。
它被设计用于提高网站的速度和性能,并能够在处理大量并发请求时有效地缓存网页内容。
在Varnish中,ul标准是一组用户定义的规则,用于定制Varnish 的行为和功能。
在本文中,我们将一步一步回答关于Varnish ul标准的问题,旨在帮助读者更好地理解和使用它。
1. 什么是ul标准?ul标准是Varnish中用于定义和配置用户自定义规则的一种机制。
ul 是”User Logic”的缩写,表示用户逻辑。
通过编写ul标准,用户可以在Varnish运行过程中执行特定的操作或改变Varnish的行为。
2. 如何编写ul标准?编写ul标准需要使用VCL(Varnish Configuration Language),这是一种专门为Varnish设计的配置语言。
用户可以使用VCL来定义ul标准,包括条件判断、变量定义、循环和函数等。
VCL代码通常被放置在一个名为"vcl_recv"的标准中,该标准用于处理接收到的HTTP请求。
3. ul标准可以实现哪些功能?通过编写ul标准,用户可以实现许多功能,包括但不限于:重定向请求到指定的URL、缓存特定的HTTP响应、根据用户的IP地址或其他条件进行访问控制、定制错误页面、添加自定义HTTP头信息等。
ul标准几乎可以实现任何用户期望的Varnish行为。
4. 如何部署ul标准?在Varnish中部署ul标准通常需要以下几个步骤:- 编写ul标准:使用VCL语言编写ul标准,并确保代码正确、符合业务需求。
- 加载ul标准:将编写的ul标准加载到Varnish配置文件中。
可以通过编辑配置文件的相关部分来实现。
- 构建和重新加载配置:根据Varnish的具体版本和安装方式,使用适当的命令或工具来重新加载配置文件,使新的ul标准从硬盘加载到Varnish内存中。
Varnish 3安装部署及使用Posted on 2013 年 4 月 4 日by JoseVarnish安装∙源码安装Varnish∙安装pcre:∙# wget -c /project/pcre/pcre/8.32/pcr e-8.32.tar.bz2# tar jxvf pcre-8.32.tar.bz2# cd pcre-8.32# ./configure && make && make install∙源码安装Varnish:∙# wget -c /source/varnish-3.0.3.tar.gz # tar zxvf varnish-3.0.3.tar.gz# cd varnish-3.0.3# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig# ./configure --prefix=/usr/local/varnish# make && make install∙Varnish配置与管理∙varnish启动配置∙# cp /data/install/varnish-3.0.3/redhat/varnish.sysconfig /etc/syscon fig/varnish# cp /data/install/varnish-3.0.3/redhat/varnish.initrc /etc/init.d/va rnish# cp /data/install/varnish-3.0.3/redhat/varnish_reload_vcl /usr/local /varnish/bin/# groupadd varnish# useradd -g varnish -s /sbin/nologin varnish∙编辑varnish启动配置:∙# vi /etc/sysconfig/varnish# cat /etc/sysconfig/varnish## Alternative 3, Advanced configuration## See varnishd(1) for more information.## # Main configuration file. You probably want to change it#VARNISH_VCL_CONF=/etc/varnish/default.vcl VARNISH_VCL_CONF=/usr/local /varnish/etc/varnish/fdfs.vcl# # Default address and port to bind to# # Blank address means all IPv4 and IPv6 interfaces, otherwise speci fy# # a host name, an IPv4 dotted quad, or an IPv6 address in brackets. # VARNISH_LISTEN_ADDRESS=#VARNISH_LISTEN_PORT=6081VARNISH_LISTEN_PORT=80## # Telnet admin interface listen address and portVARNISH_ADMIN_LISTEN_ADDRESS=127.0.0.1VARNISH_ADMIN_LISTEN_PORT=6082## # Shared secret file for admin interface#VARNISH_SECRET_FILE=/etc/varnish/secretVARNISH_SECRET_FILE=/usr/local/varnish/etc/varnish/secret## # The minimum number of worker threads to startVARNISH_MIN_THREADS=50## # The Maximum number of worker threads to startVARNISH_MAX_THREADS=1000## # Idle timeout for worker threadsVARNISH_THREAD_TIMEOUT=120## # Cache file locationVARNISH_STORAGE_FILE=/var/lib/varnish/varnish_storage.bin## # Cache file size: in bytes, optionally using k / M / G / T suffix, # # or in percentage of available disk space using the % suffix.VARNI SH_STORAGE_SIZE=150M## # Backend storage specification#VARNISH_STORAGE="file,${VARNISH_STORAGE_FILE},${VARNISH_STORAGE_SIZE} "VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}"## # Default TTL used when the backend does not specify oneVARNISH_TTL=120## # DAEMON_OPTS is used by the init script. If you add or remove opt ions, make# # sure you update this section, too.DAEMON_OPTS="-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \-f ${VARNISH_VCL_CONF} \-T ${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTE N_PORT} \-t ${VARNISH_TTL} \-w ${VARNISH_MIN_THREADS},${VARNISH_MAX_THREADS},${VARNI SH_THREAD_TIMEOUT} \-u varnish -g varnish \-S ${VARNISH_SECRET_FILE} \-s ${VARNISH_STORAGE}"### Alternative 4, Do It Yourself. See varnishd(1) for more informatio n.## DAEMON_OPTS=""编辑varnish启动管理脚本:∙# vi /etc/init.d/varnish# cat /etc/init.d/varnish∙...pidfile=/var/run/varnish.pidexec="/usr/local/varnish/sbin/varnishd"reload_exec="/usr/local/varnish/bin/varnish_reload_vcl" ...∙编辑动态加载VCL配置的脚本:∙# vi /usr/local/varnish/bin/varnish_reload_vcl# cat /usr/local/varnish/bin/varnish_reload_vcl∙...# Done parsing, set up commandVARNISHADM="/usr/local/varnish/bin/varnishadm $secret -T $VARNISH_ADM IN_LISTEN_ADDRESS:$VARNISH_ADMIN_LISTEN_PORT"...∙注:也可以将/usr/local/varnish/bin添加到系统的PATH中,这样就不需要编辑varnish_reload_vcl∙生成varnish管理秘钥:∙# /usr/bin/uuidgen > /usr/local/varnish/etc/varnish/secret# chmod 644 /usr/local/varnish/etc/varnish/secret∙。
Linux上Nginx的安装Ubuntu上Nginx的安装和配置••oooo••oooo▪o1 使用Nginx的必备软件如果要使用Nginx的常用功能,那么首先需要确保该操作系统上至少安装如下软件:1.1 gcc、g++编译器ubuntu平台在线安装指令:sudo apt-get install gccsudo apt-get install g++sudo apt-get install build-essentialsudo apt-get install libtoolcentos平台在线安装指令:yum -y install gcc automake autoconf libtool makeyum install gcc gcc-c++1.2 PCRE库PCRE(Perl Compatible Regular Expressions中文含义:perl语言兼容正则表达式)是一个用C语言编写的正则表达式函数库,由菲利普.海泽(Philip Hazel)编写。
PCRE是一个轻量级的函数库,比Boost之类的正则表达式库小得多。
PCRE十分易用,同时功能也很强大,性能超过了POSIX正则表达式库和一些经典的正则表达式库。
因为在Nginx配置文件nginx.conf里使用了正则表达式,所以编译时必须把PCRE库编译进Nginx,因为Nginx的HTTP模块要靠它来解析正则表达式。
PCRE库源码包下载地址:ftp:///pub/software/programming/pcre/ 编译和安装PCRE库相关命令:tar -zxvf pcre-8.39.tar.gzcd pcre-8.39/./configuremakesudo make install3 zlib库zlib是提供数据压缩用的函式库,zlib能使用一个gzip数据头,zlib数据头或者不使用数据头压缩数据。
因为在Nginx配置文件nginx.conf配置了gzip on,并指定了某些类型(content-type)的HTTP响应使用gzip来进行压缩以减少网络传输量,所以编译时必须把zlib库编译进Nginx。
Varnish 2.1.2 安装与配置网海过客Blog:QQ群: 783350772010-08-10目录Varnish 2.1.2 安装与配置 (1)Varnish 下载 (2)Varnish 安装 (2)Varnish 配置实例 (2)Varnish 启动与停止,动态加载配置文件 (6)Varnish 日志启动与日志切割 (6)Varnish 缓存清除 (7)Varnish 配置介绍 (8)定义后端服务器IP和端口 (8)定义访问控制列表,充许那些IP清除varnish 缓存 (8)判断host请求针对那个后端服务器 (8)不充许非访问控制列表的IP进行varnish缓存清除 (8)清除url中有jpg|png|gif等文件的cookie (9)取消服务器上images目录下所有文件的cookie (9)WEB服务器指明不缓存的内容,varnish服务器不缓存 (10)指定fonts目录不缓存 (10)指定要缓存的静态文类型 (10)使用正则表达式指定缓存的内容 (10)添加在页面head头信息中查看缓存命中情况 (11)根据访问url地址或者目录,转发到不同的后端服务器 (11)定义组,负载均衡+后端web服务器健康检查 (11)防止爬虫,网络蜘蛛访问 (13)防盗连接 (13)禁止某个目录或者某个url地址访问 (14)Rewrite urls配置 (14)Vcl 优化 (15)Varnish 参考资料 (16)环境:Centos 5.4 Varnish 2.1.2Varnish 下载下载地址:/projects/varnish/files/Varnish 安装Varnish 配置实例通过前端varnish缓存服务器反向代理后端和网站,要求对静态文件js|css|jpg|gif等文件进行缓存7天,对网页中加有no-cache头信息页面不缓存。
配置文件如下:# vi /opt/varnish/etc/varnish/bbs.vclbackend bbs {.host = "192.168.0.144";.port = "80";}backend bbs1 {.host = "192.168.0.155";.port = "80";}acl local {"localhost";"127.0.0.1";}sub vcl_recv {if (req.http.host ~ "^(www.)?$") {set req.backend = bbs;}elsif (req.http.host ~ "^(www.)?$") {set req.backend = bbs1;}else {error 404 "Unknown HostName!";}if (req.request == "PURGE") {if (!client.ip ~ local) {error 405 "Not Allowed.";return (lookup);}}if (req.request == "GET" && req.url ~ "\.(jpg|png|gif|swf|jpeg|ico)$") { unset req.http.cookie;}if (req.http.x-forwarded-for) {set req.http.X-Forwarded-For =req.http.X-Forwarded-For ", " client.ip;} else {set req.http.X-Forwarded-For = client.ip;}if (req.request != "GET" &&req.request != "HEAD" &&req.request != "PUT" &&req.request != "POST" &&req.request != "TRACE" &&req.request != "OPTIONS" &&req.request != "DELETE") {return (pipe);}if (req.request != "GET" && req.request != "HEAD") {return (pass);}if (req.http.Authorization || req.http.Cookie) {return (pass);}if (req.request == "GET" && req.url ~ "\.(php)($|\?)") {return (pass);}return (lookup);}sub vcl_pipe {return (pipe);}sub vcl_pass {return (pass);}sub vcl_hash {set req.hash += req.url;if (req.http.host) {set req.hash += req.http.host;} else {set req.hash += server.ip;}return (hash);}sub vcl_hit {if (!obj.cacheable) {return (pass);}return (deliver);}sub vcl_miss {return (fetch);}sub vcl_fetch {if (!beresp.cacheable) {return (pass);}if (beresp.http.Set-Cookie) {return (pass);}if (beresp.http.Pragma ~ "no-cache" || beresp.http.Cache-Control ~ "no-cache" || beresp.http.Cache-Control ~ "private") {return (pass);}if (req.request == "GET" && req.url ~ "\.(js|css|mp3|jpg|png|gif|swf|jpeg|ico)$") {set beresp.ttl = 7d;}return (deliver);}sub vcl_deliver {set resp.http.x-hits = obj.hits ;if (obj.hits > 0) {set resp.http.X-Cache = "HIT cqtel-bbs";} else {set resp.http.X-Cache = "MISS cqtel-bbs";}}sub vcl_error {set obj.http.Content-Type = "text/html; charset=utf-8";synthetic {"<?xml version="1.0" encoding="utf-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""/TR/xhtml1/DTD/xhtml1-strict.dtd"><html><head><title>"} obj.status " " obj.response {"</title></head><body><h1>Error "} obj.status " " obj.response {"</h1><p>"} obj.response {"</p><h3>Guru Meditation:</h3><p>XID: "} req.xid {"</p><hr><address><a href="/">bbs cache server</a></address></body></html>"};return (deliver);}Varnish 启动与停止,动态加载配置文件创建www用户# useradd www启动:# /opt/varnish/sbin/varnishd -u www -g www -f /opt/varnish/etc/varnish/bbs.vcl -a 192.168.0.125:80 -s file,/data/varnish_cache/varnish_cache.data,3G -w 1024,51200,10 -t 3600 -T 192.168.0.125:3500参数:-u 以什么用运行-g 以什么组运行-f varnish配置文件-a 绑定IP和端口-s varnish缓存文件位置与大小-w 最小,最大线程和超时时间-T varnish管理端口,主要用来清除缓存停止:# pkill varnishd #结束varnishd进程动态加载配置文件# /opt/varnish/bin/varnishadm -T 192.168.0.125:3500vcl.load vcl-name_vcl "配置文件路径" # vcl-name 这里可以任意取名e vcl-namevcl.show vcl-name #显示vcl-name配置文件内容Varnish 日志启动与日志切割启动日志,方便分析网站访问情况。