代码改变世界

Web服务器那些招

2012-11-26 20:07  轩脉刃  阅读(2242)  评论(0编辑  收藏  举报

服务器每天日志处理

使用服务器自带的/etc/logrotate

配置文件:

/etc/logrotate.d/nginx

比如nginx:

/usr/local/nginx/logs/access.log {

rotate 3

compress

delaycompress

daily

dateext

ifempty

maxage 3

sharedscripts

postrotate

/usr/bin/kill -USR1 `cat /var/run/nginx.pid`

endscript

}

http://blog.csdn.net/iiisan/article/details/1180419

注意这里的postrotate,发送一个USR1信号给nginx,这样nginx收到这个信号就会重新获取新的accesslog文件的句柄了。否则nginx持有的文件句柄有可能是错误的。

nginx的fast-cgi param

fastcgi_param RELEASE 1可以设置下

来区分是开发环境还是线上环境

代码中可以使用$_SERVER[‘RELEASE’]获取

如何估计单机可承受的在线数量

1 获取机器内存

2 看每个php-fpm会占用多少内存,计算可以开多少个php-fpm

3 看每个php进程会占用多少时间

4 计算每秒一个php-fpm会处理多少请求

5 可以计算出单个机器可以处理多少请求

nginx的access_log

nginx的access_log必须设置off才会停止

如果什么都没有设置,它还是会记录access_log

Linux内核升级

2.6.32比以前的版本对系统的稳定和性能提升有指数级的优化。所以建议低版本都升级到这个版本以上

xarg参数i

问题:

echo a|xarg echo b

这样会返回b a

要想返回a b就要这样设置

echo a|xarg –i echo {} b

xarg就会代替大括号

suggest表现

对于前端有suggest的功能

千万不要监听onchange事件,当输入框输入一个键的时候就调用一次接口,这样对后端压力会很大。

应该使用setTimeOut或者setIntval之类的方式,定期判断输入框是否有变化,然后再决定是否调用接口。

nginx的worker_processes该怎么设置

设置和cpu核数一样

并且还需要设置nginx_worker_cpu_affinity

这里有详细的文章参考:

http://www.1990y.com/nginx-worker-process-affinity/comment-page-1/#comment-4973

其中nginx_worker_cpu_affinity如果不设置的话就是让计算机自己判断,其实效率和一般的也没有什么大的区别

Get请求的Url长度限制

HTTP协议并没有限制url长度

PHP没有限制url长度

一般浏览器限制url长度为2000字节

apache限制url为8000字节,在LimitRequestLine中设置

nginx对header的限制为large_client_header_buffers