预览模式: 普通 | 列表

varnish的安装使用

Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang (http://www.vg.no) 使用3台Varnish代替了原来的12台squid,性能居然比以前更好。
 
Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多。在1975年时,储存媒介只有两种:内存与硬盘。但现在计算 机系统的内存除了主存外,还包括了cpu内的L1、L2,甚至有L3快取。硬盘上也有自己的快取装置,因此squid cache自行处理物件替换的架构不可能得知这些情况而做到最佳化,但操作系统可以得知这些情况,所以这部份的工作应该交给操作系统处理,这就是 Varnish cache设计架构。
 
varnish项目是2006年发布的第一个版本0.9.距今已经八年多了,此文档之前也提过varnish还不稳定,那是2007年时候编写的,经过varnish开发团队和网友们的辛苦耕耘,现在的varnish已经很健壮。很多门户网站已经部署了varnish,并且反应都很好,甚至反应比squid还稳定,且效率更高,资源占用更少。相信在反向代理,web加速方面,varnish已经有足够能力代替squid。
 
端口和官网
varnish 的监听端口是6081 squid 的端口号3128
 
varnish 官网:http://varnish-cache.org/
varnish官方网站
varish官方文档-6.3
 
varnish 特点:
相比squid
 
1) 缓存方式:
varnish可以基于内存缓存,也可以在磁盘上缓存,可以利用虚拟内存缓存,支持设置0-60S精确缓存时间。
而squid 是将元数据缓存在内存,存储缓存在硬盘
 
2) ACL
varnish 配置是通过VAL语言来完成的,配置要先转换成C代码,所以使用 VCL所写的配置要先转换C语言代码,因此要依赖于GCC临时编译VCL配置,编译完成后才能运行
 
varnish缓存数据的原理
varnish的安装
1. 安装依赖包
yum install autoconf.noarch automake.noarch jemalloc-devel.x86_64 libedit-devel.x86_64 libtool.x86_64 ncurses-devel.x86_64 pcre-devel.x86_64 pkgconfig.x86_64 python-docutils.noarch python-sphinx.noarch graphviz.x86_64 -y

2. 上传安装包并解压
[root@xinsz08-62 桌面]# ls
nethogs-0.8.5-1.el7.x86_64.rpm
varnish-6.2.3.tgz

使用file查看文件
[root@xinsz08-62 桌面]# file varnish-6.2.3.tgz
varnish-6.2.3.tgz: gzip compressed data, from Unix, last modified: Fri Jan 31 20:18:02 2020, max compression


[root@xinsz08-62 ~]# file varnish-6.2.3.tgz
varnish-6.2.3.tgz: gzip compressed data, from Unix, last modified: Fri Jan 31 20:18:02 2020, max compression
[root@xinsz08-62 ~]# gunzip varnish-6.2.3.tgz
[root@xinsz08-62 ~]# ls
varnish-6.2.3.tar
解压:
[root@xinsz08-62 ~]# tar xf varnish-6.2.3.tar
[root@xinsz08-62 ~]# ls
varnish-6.2.3
varnish-6.2.3.tar
3. 进入目录并编译安装
[root@xinsz08-62 ~]# cd varnish-6.2.3/
[root@xinsz08-62 varnish-6.2.3]# ls
aclocal.m4 configure lib README.Packaging
autogen.sh configure.ac LICENSE README.rst
bin doc m4 varnishapi.pc.in
build-aux etc Makefile.am varnishapi-uninstalled.pc.in
ChangeLog include Makefile.in varnish-legacy.m4
config.h.in INSTALL man varnish.m4
[root@xinsz08-62 varnish-6.2.3]#

编译安装
[root@xinsz08-62 varnish-6.2.3]# ./autogen.sh
[root@xinsz08-62 varnish-6.2.3]# ./configure && make && make install
[root@xinsz08-62 varnish-6.2.3]# ldconfig

查看更多...

Tags: varnish

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 189

VB.net读取不同编码文本 解决乱码问题

Public Function ReadAsString(ByVal buff() As Byte) As String
Dim stream As Stream = New MemoryStream(buff)
Dim position As Int64 = 0
Try
stream.Position = position
Dim reader As New StreamReader(stream, New UTF8Encoding(False, True), True)
Return reader.ReadToEnd
Catch exception As DecoderFallbackException
stream.Position = position
Dim reader2 As New StreamReader(stream, Encoding.Default) '.GetEncoding(&H4E4))
'Debug.Print(reader2.CurrentEncoding.ToString)
Return reader2.ReadToEnd
Catch ex As Exception
Debug.Print(ex.Message & vbCrLf & ex.StackTrace)
End Try
Return ""
End Function

c#和asp.net的版本参见下面的链接:
http://stackoverflow.com/questions/90838/how-can-i-detect-the-encoding-codepage-of-a-text-file/5830273#5830273

上述代码为VB.NET函数,C#和ASP.NET版,参见上面注释里的链接。
 
C#、VB.NET、ASP.NET 通用解决获取网页源码乱码问题原因,中文文本乱码完美方案。
 
这里强调一下,网络上所谓的使用请求头、Html中的编码都不能完美解决乱码问题,上述代码方案,只管读取结果,不管什么头、什么Html指定,都是扯淡。没用的,这个方案读取任意txt文件可以保证不再乱码,txt指任意文本内容,不是指txt后缀文件。
 
参数为二进制数组,二进制数组哪里来?看下面
 
1.   io.file.readallbytes(file)
 
2.   webclient.downdata(url)
 
3.   System.Net.HttpWebResponse     .GetResponseStream 获取字节数组。
 
以上99.99%解决编码问题,当然非要说还是乱码的也还是会有,那就是你给你二进制保存到txt用记事本打开本身就会乱码,但极端情况还是手动人工指定一下因定编码解析吧。以上用于自动分析编码使用。
 
如果只是要自动获取编码的类型,可以在上述两处打印:
 

Select Case reader2.CurrentEncoding.CodePage
Case 1200
ReturnEncodeMode = "Unicode"
Case 1201
ReturnEncodeMode = "BigUnicode"
Case 936
ReturnEncodeMode = "ANSI"
Case 65001
ReturnEncodeMode = "UTF8"
End Select
 

 

Tags: vb.net

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 195

C#获取当前日期时间

我们可以通过使用DataTime这个类来获取当前的时间。通过调用类中的各种方法我们可以获取不同的时间:如:日期(2008-09-04)、时间(12:12:12)、日期+时间(2008-09-04 12:11:10)等。


//获取日期+时间
DateTime.Now.ToString();            // 2008-9-4 20:02:10
DateTime.Now.ToLocalTime().ToString();        // 2008-9-4 20:12:12

//获取日期
DateTime.Now.ToLongDateString().ToString();    // 2008年9月4日
DateTime.Now.ToShortDateString().ToString();    // 2008-9-4
DateTime.Now.ToString("yyyy-MM-dd");        // 2008-09-04
DateTime.Now.Date.ToString();            // 2008-9-4 0:00:00

//获取时间
DateTime.Now.ToLongTimeString().ToString();   // 20:16:16
DateTime.Now.ToShortTimeString().ToString();   // 20:16
DateTime.Now.ToString("hh:mm:ss");        // 08:05:57
DateTime.Now.TimeOfDay.ToString();        // 20:33:50.7187500

查看更多...

Tags: c#

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 184

PHP怎么将字符串转换成数字

下面给大家介绍PHP将字符串转换成数字的四种方法。
方法1:
使用number_format()函数。number_format()函数用于将字符串转换为数字。它会在成功时返回格式化的数字,否则会在失败时给出E_WARNING。
PHP代码
  1. <?php  
  2. $num = "1000.314";  // 使用number_format()函数将字符串转换为数字  
  3. echo number_format($num), "\n";  // 函数的作用是:将字符串转换为数字  
  4. echo number_format($num, 2);  
  5. ?>  
输出:
1,000
1,000.31
方法2:
使用类型转换:类型转换可以直接将字符串转换为float,double或integer基本类型。这是将字符串转换为数字而不使用任何函数的最佳方法。
例:
PHP代码
  1. <?php  
  2. // 字符串格式的数字$num = "1000.314";  // 使用int类型转换  
  3. echo (int)$num, "\n";  // 使用float 类型转换echo (float)$num, "\n";  // 使用double 类型转换  
  4. echo (double)$num;  
  5. ?>  
输出:
1000
1000.314
1000.314
方法3:
使用intval()和floatval()函数。intval()和floatval()函数也可用于将字符串分别转换为其对应的整数和浮点值。
例:
PHP代码
  1. <?php  
  2. // 字符串格式的数字$num = "1000.314";  // intval函数的作用是:将字符串转换为整数  
  3. echo intval($num), "\n";  // floatval函数的作用是:将字符串转换为浮点数  
  4. echo floatval($num);  
  5. ?>  
输出:
1000
1000.314
方法4:
通过添加0或执行数学运算。通过在字符串中添加0,也可以将字符串编号转换为整数或浮点数。在PHP中,执行数学运算时,字符串将隐式转换为整数或浮点数。
PHP代码
  1. <?php  
  2. // 数字转换成字符串格式  
  3. $num = "1000.314";  // 对隐式类型转换执行数学运算echo $num + 0, "\n";  // 对隐式类型转换执行数学运算  
  4. echo $num + 0.0, "\n";  // 对隐式类型转换执行数学运算  
  5. echo $num + 0.1;  
  6. ?>  
输出:
1000.314
1000.314

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 193

 广告位

↑返回顶部↑