- 浏览: 1008863 次
- 性别:
- 来自: 北京
最新评论
-
lizuodu:
非常不错
使用mysql federated引擎构建MySQL分布式数据库访问层 -
u010620626:
除了 libmysql 和 mysqlnd, 在 linux ...
PHP 5.3.0以上推荐使用mysqlnd驱动 -
嵌入式小小鸟:
很不错的!力荐!
集中化Linux日志管理系统 -
wfqwang82:
楼主,你好,我配置了一个负载均衡集群两台服务器,都可以启动ke ...
keepalived配置及典型应用案例 -
xialluyouyue:
完全不经过脑子考虑
ThinkPHP 3.1中的SQL注入漏洞分析----论ThinkPHP 3.1中的半吊子的PDO封装
文章列表
对于使用过squid的朋友来说,其存在相应的配置项,可忽略体积过大的对象被缓存。同样在varnish中也存在这种需求,但varnish并未提供现成的配置,需要我们手工配置VCL以实现。
原理:
对于静态文件,web服务器会在header中返回 Content-Length,标识出当前资源的体积大小(以字节计算),这也就是一些下载工具(浏览器,迅雷)在未下载完整个文件时,能显示其大小的关键所在。
知道这个原理之后,我们即可在varnish接收到后端的内容后进行适当判断,例如对超过1M的文件不缓存
if (beresp.http.Content-Length &g ...
一定要在/etc/vsftpd/vsftpd.conf中增加
virtual_use_local_privs=YES
然后再重启vsftpd即可:
service vsftpd restart
windows防火墙批量开放端口
- 博客分类:
- web服务器技术
windows自带的防火墙没有增加端口范围的功能,这让一些常见的配置变得非常麻烦(比如FTP被动模式下,就需要在防火墙上开启端口范围),经过查询资料,使用以下cmd批处理内容,即可增加端口范围:
echo off
cls
set var=5000
:continue
set /a var+=1
echo add port %var%
netsh firewall add portopening TCP %var% ftp_data_%var%
if %var% lss 5100 goto continue
echo complete
pause
将以上内容,保 ...
falling back to vmalloc
原因是,ip_conntrack的hashsize设置过大,导致内存分配错误引起。
经过反复尝试,哈希表大小设置为 262144,是比较合理的值,一方面能避免因ip_conntrack哈希表过小(RHEL 默认为8192)导致防火墙丢包( ip_conntrack: table full, dropping packet. ),另一方面也会消除掉 falling back to vmalloc错误。
我之前写过一篇文章,描述如何修改ip_conntrack模块的hashsiz以避免iptables丢包,修改hashsize有两种 ...
the permanent hwaddr is still in use by bond0. set the HWaddr of eth0 to a defferent address to avoid conflicts.
公司最近使用了extmail+postfix作为邮件解决方案。现有一OA系统,员工登录OA时,须使用其合法账号登录之,但这样一来,至少需要两个独立账号和密码,对工作效率有一定的影响。
于是我们决定改造现有的OA系统登录机制,使其与extmail使用一致的账号及密码信息,这样的好处是,员工只要记好邮箱密码,也就可以用它登录OA系统,可显著提高工作效率。
经过了解,extmail使用mysql保存邮件账号信息,mailbox表的password即保存了加密后的密码信息,但extmail支持多种加密方式,具体可查看文件 /var/www/extsuite/extman/we ...
核心总结:php-fpm/apache 进程所使用的用户,不能是网站文件所有者。 凡是违背这个原则,则不符合最小权限原则。
根据生产环境不断反馈,发现不断有 php网站被挂木马,绝大部分原因是因为权限设置不合理造成。因为服 ...
问题的发现:
我使用firebug之类的工具检查squid的缓存加速效果(主要是检查squid的HTTP响应header),发现手工刷新浏览器时(这时squid会返回304状态),发现304状态的响应竟然是MISS状态,既然是MISS,则意味着squid会请求后端机器。
这证实我的怀疑,我使用iptables阻断squid和后段机器通信,再刷新浏览器,竟然无法加载已经被缓存的静态资源!
按常规的分析,缓存未过期时,应该直接使用缓存,不应该请求后端机器。可以想象,如果每一次刷新(表现为客户端请求header中包含If-Modified-Since),squid都要和后端机器 ...
我们在生产环境中尝试使用varnish替代squid的主要原因:
1. squid不支持多核cpu, 生产环境中大多使用Dell R610系列,这种类型机器配置为2个4核双线程cpu, 操作系统识别为16个,对squid来说,只能利用到一个逻辑cpu, 其它15个逻辑cpu相当于一直浪费!
2. squid无法批量清除缓存
3. squid3.0目前还无法支持http 1.1, 这对一些管理调整(如gzip压缩,cache-control)带来不必要的麻烦
4. 目前我还未找到squid的grace模式(指源站不可到达时,继续使用过 ...
Linux与网络有关的核心设置
- 博客分类:
- Linux学习笔记
time wait bucket table overflow
系统默认的net.ipv4.tcp_max_tw_buckets值为5000, 这个值偏小,可设置为65535
在 /etc/sysctl.conf中添加
net.ipv4.tcp_max_tw_buckets=65535
再执行sysctl -p让设置生效
iptables 丢包的有效解决方案:
/boot/grub/grub.conf的内核引导参数中添加
ip_conntrack.hashsize=524288
即类似
kernel /boot/vmlinuz-2.6.18-238 ...
典型的,提供大量静态文件访问的web服务器,缓存服务器(如squid), 均要注意这个问题
网上的教程,大约只是简单说明了如何设置ulimit和file-max, 但并没有说清楚这两者之间的差别,让人一头雾水
1. file-max的含义
man proc,可得到file-max的描述:
/proc/sys/fs/file-max
This file defines a system-wide limit on the number of open files for all processes. (See
...
varnish常见错误的解决方法
- 博客分类:
- web服务器技术
1. obj.ttl not accessible in method vcl_fetch
这是因为从2.0.6以后,obj.ttl 已经变更为beresp.ttl
2. beresp.cacheable的含义是什么?
官方的解释:beresp.cacheable
True if the request resulted in a cacheable response. A response is considered cacheable if HTTP status code is 200, 203, 300, 301, 302, 404 or 410 and pass was ...
笔者
工作中
负责
着
60
多
台Linux服务器的运维管理工作,
初期
每台机器日志的巡查,是一件相当耗时耗力的工作。后来经过
摸索
,整理出一个非常适合各种规模的服务器的日志集中化管理,巡查流程,为程序开发人员和运维人员提供单
简单直观
的web界面
巡查所有服务器日志
。
目前这套系统已经投入到我们的生产环境,
实践证明
效果
良好,
大大提高了运维工作中日
APC对
php
脚本的加速效果是明显的,基本可以将
php-fpm
服务器负载能力提高到
2
倍,所以在生产环境中,需要尽可能使用
APC
来加速
php
脚本。
这是我通过web bench
压力测试得出的结论,而在生产环境中,使用
APC
之后,脚本的执行速度确实有提高
(可能达到10-20%
)
生产环境中使用
session_set_save_handler
将
session保存到
MySQL
内存表中,并安装了
APC
扩展,就发现无法保存
session
,后经过反复排查是因为