工作,学习,生活,这里将会有一些记录. 备用域名:http://meisw.wdlinux.cn 注册 | 登陆
浏览模式: 标准 | 列表全部文章

马云演讲实录

创业不是为了赚钱

创业永远挑选最容易做最快乐做的事情,创业不是为了赚钱,而是你喜欢他,你喜欢这个工作,你喜欢做这件事情,那是最大的激情,最大的动力所在。如果 你为了挣钱我告诉你,永远有比你想的更挣钱的东西。你选择是因为你喜欢,你喜欢你就不要抱怨。这个世界上我们可以批判,但是我讨厌那些几种,中国社会不能 再这样那样,而你们一定会替我们找到未来。今天中国的问题,所有的问题会出现我告诉大家,60年以前中国也有过,50年以前中国也有过,40年以前中国也 有过,600年以前中国还会有,你来到这个世界丰富多彩就是因为有这些东西,不是每个80后、90后都会成功的,但是有人会成功。

不是每个60后的人都会成功的,但是有人会成功,谁会成功?你勤奋、你执着、你完善自己、你改变去完善自己去完善社会这样的人会成功。我不是一个成功 学的人,我不喜欢看成功学,我只看别人怎么失败,从别人失败里反思什么事情我不该做,从别人成功里也会反思,他为什么成功?我要学他的成功还是学他的精神?

清楚我有什么?我要什么?

所以没有什么抱怨的,坦荡的看自己。刚才有同学说做自己,怎么做自己?我们做自己问自己这些问题,我有什么?我要什么?我愿意放弃什么?我们人生到这一世,不是来创业的,不是来做事业的,我们是来体验生活的。世界本来就是不公平的,怎么可能公平?你出生在农村,盖茨的孩子出生叫盖茨家里面你能比吗?但 是有一点是公平的,比尔•盖茨一天24小时,你一天也是24小时。这24小时有3个8小时,8小时你在路上走在挤公共汽车的时候,你根本不知道自己在干什 么,这时候需要好的朋友。还有8小时你睡在床上不知道干什么,你这个时候需要自己有一个好的床,床上有一个好的人。还有一个8小时你知道自己在干什么,那 就是工作。假如你工作是不开心的,你做的事情是你不爽的你可以换,千万别做做这份工作讨厌这份工作,我觉得这些人是没有意义的。娶了这老婆天天骂老婆又不离婚什么意思?对不对?

幸福是自己去找的

所以我想每个人要清楚,世界不公平,你如果想改变它,第一告诉你不可能,第二去从政去,也不可能。只是人可以不一样,出生的条件不一样但人是可以幸福 的。幸福是自己去找的。我走过民工的都市的创业者到城市里打工者,我对他们尊重到城市里打工就是创业者,对我来说没有区别,只是我走了这条路他们走了那条 路,每次走过工棚发现他们的笑声,我进去发现他们在打牌,2、3块钱的赌注每个人都很开心。

幸福很容易找,盖茨并不幸福。幸福是自己找出来的,今天中国的经济的高速发展我刚才讲了,但是我们的价值体系,我们的文化体系受到了摧毁,最早新文化 运动摧毁了旧文化没有建设新文化,文化大革命又把我们很多价值体系搞乱了,今天有的学者来讲,我并不完全同意中国不是法制社会,好像有了一套法律我们就能 解决这些问题,不是那回事。

重要的是如何改变自己

美国发展是因为法制吗?就是这个人漂亮是因为鼻子漂亮。不对。大家记住美国社会的发展它是基于基督教文化的,在基督教文化上面建立法律体系,在这个法 律体系建立政治体系,在这个上面建立起他们的领导人的选举体系,整个体系比你的想的复杂得多,这仅仅是简简单单的一部分,假如我们今天这个价值文化体系被 摧毁的情况下,随便拿一点价值体系,等于沙滩上建楼,建不起来。

我们需要重新找回价值体系,让年轻人明白不要怪人家富怪人家有钱,而是我要如何改变自己,我对社会有贡献,我寻找快乐寻找幸福感。创业不会给你带来幸 福感,会给你带来快感,但快感的背后会带来很多痛苦,而真正的幸福感是你知道自己在做什么,知道给别人在做什么,你会逐渐从痛苦中找到那些快乐。

我坚定不移你们会为我们,为这个国家为中国找回价值体系,而这才是中国真正腾飞的时代,永远是如此,一代胜过一代,而最最高兴和高傲的事,我从你们眼光里看到了希望。

80后有资格但没有权利抱怨

所以今天请大家我们不要抱怨,如果你想成功看任何问题积极乐观的看,这个时代还不是你的,我刚才就说了,你们有权利抱怨,但你们没有资格抱怨,等你们 四五十岁的时候,你们有资格抱怨但你没有权利抱怨,你必须把它干好,今天你没有坐到那个位置,20年以后别轮到我们抱怨你们,你们当年吹的很牛,现在轮到 你们干你们试试看。所以准备20年以后的你们,中国是你们的,毛主席说世界是年轻人的。我今天觉得他讲的太对了,一定是你们的,你们没坐到那个位子的时 候,你不知道那个位子有多么的痛苦。

心态决定姿态,姿态决定生态


所以我今天来讲创业,我的网站公司将会全力支持大家。但是我不想谈具体怎么做一家公司,碰到这个问题在网上可以交流,我们有个语音计划大家可以交流。 人的心态决定姿态,再决定你的生态,心态好自然会好起来的。你们要比的是20年以后,谁能够成为这样的,至于哪家公司哪个行业,阿里巴巴、腾讯、百度、新 浪、微博抓住了这个时代,什么是下一个最好的机遇?告诉大家上一个世纪的商人,你抓住机会为成功商人,下一个世纪商人的企业家,解决社会问题的人才真正成 为一家伟大的公司,去想你为未来你为社会解决什么问题?这样的人会成功,而真的要做这些事情从完善自己开始。

没有人是完美的,社会不可能完美,因为社会是由所有不完美的人组成在一起,你的职责就是比别人多勤奋一点、多努力一点、多有一点理想世界才会好起来, 我就是这么走过来的,我没有任何理由走到今天。唯一的理由我比我同龄一代的人更加乐观,更加会找乐子,更加懂得左手温暖右手,相信明天还会更好。

 

Squid使用总结(安装、配置、优化...,转)

1. 编译和安装

暂时使用CENTOS 5.2上缺省安装的2.6STABLE7版本

2. squid配置

2.1 最简单配置

http_port 80
cache_peer 127.0.0.1   parent    8080  0 no-query default originserver  name=bes
acl all src all
http_access allow all

access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log

2.2 监控管理

acl snmppublic snmp_community public
snmp_port 3401
snmp_access allow snmppublic localhost
snmp_access deny all

2.3 更安全的配置

acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443        # https
acl Safe_ports port 80        # http
acl Safe_ports port 443        # https
acl purge method PURGE
acl CONNECT method CONNECT

http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all

cache_effective_user squid
cache_effective_group squid

2.4打开相关性能告警

high_response_time_warning 1000
high_page_fault_warning xxx
high_memory_warning xxx

2.5 其他

visible_hostname proxy.hostname

3. 调试

3.1 在配置文件中设置debug_options ALL,9
3.2 cache.log
3.3 squid -XF 
3.4 squid -k parse  分析配置文件语法

4. 网络相关优化

4.1 减少TIME_WAIT套接字数量

#vi /etc/sysctl.conf
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024    65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
#/sbin/sysctl -p
详见http://blog.s135.com/read.php?338

5. DISK IO相关的优化

5.1 cache_dir设置的考虑

• cache_dir采用二级目录方式保存cache object,做配置时不宜过大,建议为规划容量的1倍,否则建立swap目录会花费较多时间。推荐保留10%的空间。这些额外的空间用于存放squid的swap.state文件和临时文件。
• 可以配置多个cache_dir,建议每个cache_dir都放在不同的物理硬盘上,以改善IO效率

5.2 squid相关的目录设置

• log和cahce_dir不要放在一个物理盘上
• cache_dir所在的盘建议使用ReiserFS格式
• mount cache_dir盘时建议使用noatime参数

5.3 DISK Cache的相关设置

• max_open_disk_fds
This directive defines an upper limit on the number of file descriptors that Squid should open for reading and writing cache files on disk. 当达到这个限制后,squid会跳过DISK cache,从而避免IO持续恶化。
缺省为0(无限制)。[建议]For a single disk cache, 900 is a good choice.  For a dual disk cache, try 1400. 
• max_filedescriptors 
允许打开的最大文件描述符,实际允许打开的数量也受编译squid的--with-maxfd的影响。缺省为0。[建议]
• maximum_object_size
maximum_object_size 1024 KB
• cache_swap_low/cache_swap_high  ???

5.4 Linux设置

• filedescriptors
一共有两个方面的限制: 整个系统,当前用户。
http://prefetch.net/blog/index.php/2009/07/31/increasing-the-number-of-available-file-descriptors-on-centos-and-fedora-linux-servers/

整个系统:

动态调整,每次启动后该设置会丢失:

#ulimit -HSn 4096

 

在/etc/sysctl.confg中设置:
# vi /etc/sysctl.conf
fs.file-max = 100000
# sysctl -p
[ulimit显示的值和/proc/sys/fs/file-max中显示的值有什么关系]
ulimit command provides control over the resources available to the shell and to processes started by it, on systems that allow such control. The maximum number of open file descriptors displayed with following command

 

#vi /etc/security/limits.conf

单个用户

* - nofile 8192

6. MEM优化考虑

• cache_mem
Squid占用内存量似乎不受这个参数的控制,此参数不必设得太大,适量就行。服务器:cache_mem 100 MB
• maximum_object_size_in_memory:
设置较小的maximum_object_size_in_memory值有助于有效控制squid过度占用内存
• client_db off
• The ratio of memory-to-disk can be important. We recommend that you have at least 32 MB of RAM for each GB of disk space that you plan to use for caching. 

7. CPU优化相关

Squid is a single process application and can not make use of SMP. If you want to make Squid benefit from a SMP system you will need to run multiple instances of Squid and find a way to distribute your users on the different Squid instances just as if you had multiple Squid boxes. 

8. 其他问题

 

8.1 和Redirect合作的关系
8.2 log rotate

定期进行log rotate

8.3 cachemgr.cgi

 

 

9. 参考资料

 

dns,bind

一、DNS常识
1、DNS查询:分为递归查询和迭代查询两种
  (1) 递归查询: 即客户端向本地DNS服务器请求查询域名,本地DNS服务器收到查询任务后如自身无法回答则向其他服务器查询,直到查到结果后返回结果给客户端。期间DNS服务器可能要查询很多其他DNS服务器。
(2)迭代查询:即客户端向本地服务器请求查询域名,本地DNS服务器无法回答,则给客户端返回另一个能查询域名的服务器地址,客户端再向另一服务器查询,期间可能客户端需查询多个DNS服务器,最终查到结果。

2、DNS服务器分类:

DNS服务器分为:
(1)master(主DNS服务器):拥有区域数据的文件,并对整个区域数据进行管理。
(2)slave(从服务器或叫辅助服务器):拥有主DNS服力器的区域文件的副 本,辅助主DNS服务器对客户端进行解析,当主DNS服务器坏了后,可以完全接替主服务器的工作。
(3)forward:将任何查询请求都转发给其他服务器。起到一个代理的作用。
(4)cache:缓存服务器。
(4)hint:根DNS internet服务器集。

 

【主机名或域名】ttl] [calss] [type] [orgin] [mail] 
主机名或域名:一般 用@代替。每个区域都有自已的SOA记录,此处的为指定的域名。用@表示当前的源,也可以手工指定域名。
ttl:通常省略
class:类别,SOA记录的类别对internet乖哦说缺省为IN
type:类型,SOA记录的类型就是SOA,指明哪个DNS服务器对这个区域有授权。
origin:域区文件资 源,这个域区文件源就是这个域主DNS服务器的主机名,注意这里要求是完整的主机名,后面一定要加上“."。上例中:www.29zjt.com.  而不是www.29zjt.com  如果没有加后面的点,结果将是:www.29zjt.com.29zjt.com
mail:一般指管理员的邮箱。但和一般 的邮箱不同,用"."代替了"@",尾部也 要加上“."


       2009121001  //作为版本控制,当域区文件修改时,序号就增加,辅助服务器对比发现与自已的不同后,就会做出更新,与主服力器同步
       28800  //辅助服务器与主服务器进行更新的等待时间。间隔多久与主服务器进行更新,单位为秒。
      14400    //重试间隔。当辅助服务器请求与主服务器更新失败后,再间隔多久重试传递
       720000  //到期时间。当辅助服务器与主服务器之间刷新失败后,辅助服务器还提供多久的授 权回答。因为当与主服务器失去联系一定时间后,(这个时间就是此处定义的时间),辅助服务器会把本地数据当作不可靠的数据,将停止提供查询。
如果主服务器恢复正常,则辅助服务器重新开始计时。
       86400 )  //最小TTL,即最小有效时间,表明客户端得到的回答在多长时间内有效。如果TTL时间长,客户端缓存保存时间长,客户端在收到查询结果时开始计时(TTL)时间内有相同的查询周日不再查询服输务器,直接查自已的缓存。如果TTL时间短,则缓存更新的频率快

squid TCP_NEGATIVE_HIT 缓存错误页面时间 negative_ttl

由于页面问题或web服务器临时不可用,会导致squid缓存一个错误信息(400,500等错误),正好是首页出错并被老板发现了。。。。
如何不缓存这些错误页面呢?


要想不缓存错误页面据说可以设成negative_ttl 1 second
# TAG: negative_ttl    time-units 
#       Time-to-Live (TTL) for failed requests. Certain types of     
#       failures (such as "connection refused" and "404 Not Found") are
#       negatively-cached for a configurable amount of time. The
#       default is 5 minutes. Note that this is different from
#       negative caching of DNS lookups

状态:
TCP_NEGATIVE_HIT

在对原始服务器的请求导致HTTP错误时,Squid也会cache这个响应。在短时间内对这些资源的重复请求,导致了否命中。 negative_ttl指令控制这些错误被cache的时间数量。请注意这些错误只在内存cache,不会写往磁盘。下列HTTP状态码可能导致否定 cache(也遵循于其他约束): 204, 305, 400, 403, 404, 405, 414, 500, 501, 502, 503, 504。



TCP_MEM_HIT

Squid在内存cache里发现请求资源的有效拷贝,并将其立即发送到客户端。注意这点并非精确的呈现了所有从内存服务的响应。例如,某些cache在内存里,但要求确认的响应,会以TCP_REFRESH_HIT, TCP_REFRESH_MISS等形式记录。

TCP_IMS_HIT

客户端发送确认请求,Squid发现更近来的、貌似新鲜的请求资源的拷贝。Squid发送更新的内容到客户端,而不联系原始服务器。

 

-----------------------------------

 


通过域名访问 返回 400错误,通过ip地址访问没问题

查看squid 日志发现 TCP_NEGATIVE_HIT/400 错误

由于squid 默认设置 会缓存错误页面,主要用来防止服务不可用攻击

修改配置文件

negative_ttl 1 second

暂时解决问题

 

rpmforge-release

php正则判断必须是字母或数字的组合及ctype function使用

if(preg_match("/^[0-9a-zA-Z]{3,12}$/",$variable)){
              echo "<script>alert('只能是英文字母或数字, 且长度必须是3-12个字');history.back(-1);</script>";die;
}

//其实判断是否是字母和数字或字母数字的组合还可以用PHP ctype_alnum函数
if(!ctype_alnum($vipurl)){
echo '只能是字母或数字的组合';exit;
}

顺便复习下ctype functions
1.ctype_alnum(string $text)://不用说了,检查是否是字母或数字或字母数字的 组合
2.ctype_alpha(string $text):check for alphabetic character(s) //检查字符串是否是字母
3.ctype_cntrl(string $text):check for control character(s) //是否是控制字符如\n,\r,\t
4.ctype_digit(strint $text):check for numeric character(s) //是否是数字表示的字符

大多数时也许应该用is_numeric
这个要特别注意与is_numeric()的区别
例:$numeric_string='42';
$interger = 42;
ctype_digit($numeric_string);//true
ctype_digit($interger);//false
is_numeric($numeric_string); //true
is_numeric($interger); //true


5.ctype_graph(string $text):Check for any printable character(s) except space
6.ctype_lower():check for lowercase character(s)//检查是否是小写字母
7.ctype_upper():check for uppercase character(s)//检查是否是大写字母
8.ctype_space: check for whitespace character(s)//是否是空白字符
9.ctype_xdigit: check for character(s) representing a hexadecimal digit//检查是否是十六进制数字

关于squid对gzip压缩的支持(支持nginx,IIS,apache)

通常Web服务器都会通过gzip压缩来减少用户下载的流量,提高页面打开速度。

gzip压缩分为两种,http1.0压缩和http1.1压缩,这两种压缩的压缩方法和response header都一样,只是客户端和服务器通讯的http协议不同。

Squid2.7之前,是不支持http1.1的。在2.7版本开始,有限支持http1.1。从3.0版本开始,才完整的支持http1.1。但是因为squid3是完全重构的,很多2.7的功能并没有加到3.0当中,所以squid3并没有被大规模的应用在生产系统中,基本上都还是使用 squid2.6或2.7来进行内容加速,所以需要搞定Squid支持各种Web服务器的HTTP1.0 GZIP压缩。

具体配置:

1, 配置Web服务器,支持HTTP1.0压缩

    Apache, 默认就支持http1.0压缩,不需要特定配置

    IIS, 通过修改MetaBase.xml第三段IIsCompressionSchemes中的

    * HcNoCompressionForHttp10="TRUE"
    * HcNoCompressionForProxies="TRUE"
    * HcNoCompressionForRange="FALSE"

    将HcNoCompressionForHttp10="TRUE" 修改为FALSE

    Nginx, 修改nginx.conf中的gzip_version配置项,修改为gzip_version http1.0;

    配置后,再发http1.0的压缩请求到nginx,就能够获得压缩后的内容。

2, 配置Squid,支持对http1.0压缩内容的缓存

    首先,将cache_vary设置成on。使squid能够缓存带有vary头的内容

    然后,将broken_vary_encoding设置成all。squid.conf.default中,这个参数的示例是

    acl apache rep_header Server ^Apache
    broken_vary_encoding allow apache

这个挺有趣,我理解这个参数应该是很早加入的,那时候web服务器还是apache一家的天下。所以作者直接就写了一个allow apache,并一直沿用至今。

这个参数是针对那些压缩前和压缩后etag完全一致的web服务器,让squid通过vary头来区分压缩和未压缩的内容。事实上,现在 apache已经不需要通过broken_vary_encoding来区分vary头了。Apache会修改经过压缩的内容的etag头, 在原来的etag后面加上-gzip。用来区分压缩和非压缩内容。而其他的web服务器都没有这样的功能。都需要通过配置 broken_vary_encoding来支持。

通过配置上面两个参数,你就可以配置squid正确的缓存Apache,IIS,Nginx输出的压缩内容。

上面介绍的方法,已经经过实际环境的验证并稳定运行了近一年,没有出现过压缩缓存失效的情况。

Squid 限制用户并发连接数

client_db  on
acl client_10 src 192.168.0.0/32
acl maxconnect maxconn 10
http_access deny client_10 maxconnect
 
-------------------------
查了一下,该错误是因为打开的文件数超过了linux的限制造成的。因此对系统和squid配置文件进行了修改:
1)对系统进行修改,取消对打开文件数的限制。
  ulimit -HSn 65535
    为了防止重启后失效,在/etc/profile文件中增加该命令。
    查看是否生效,使用命令:ulimit -n
2)修改squid配置文件,增加并发数
    打开配置文件:gedit ../squid/etc/squid.conf
    a) 增加如下内容:acl OverConnLimit maxconn 2000
    b) 将以前的设置"http_access deny all" 修改为 "http_access allow all"