最近发现博客访问速度极其的慢,查找原因,发现 VPS 的内存资源占用达到了 95%左右了,top 一下,发现基本都是 httpd 进程搞的,不用说,apache 的原因。查看了一下 error_log 没发现有什么异常,但是想查看 access_log 的时候发现,access_log 已经有 2G 多了,会不会是因为访问日志太大,导致每次访问网站的时候 apache 记录日志时候读写这个大文件造成的? 于是我就试着分割 apache 的 access_log。apache 有一个 rotatelogs 的功能(rotatelogs – Piped logging program to rotate Apache logs),可以按照配置来处理日志文件。(Nginx 的日志分割请参考《Nginx 虚拟日志配置相关-Nginx 学习笔记(三)》) 于是我对 apache 做了如下的配置: CustomLog "|/usr/local/apache/bin/rotatelogs /www/web_logs/access_%Y%m%d_log 86400 480" common 上面这条配置命令就是每天生成 access_20130207_log 这种格式的日志文件,这里的 480 其实是一个偏移量,具体可以查看官方的介绍。 重启一下 apache,打开博客,速度立马快起来了!! 转载请注明: 转载自Ryan 是菜鸟 | LNMP 技术栈笔记 如果觉得本篇文章对您十分有益,何不 打赏一下 本文链接地址: rotatelogs 分割 apache 日志文件 本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可

阅读全文

优化Apache,提高并发

模拟并发访问 ab -n 100000 -c 1000 -k http://weibo.cnsuning.com/index.php 检测 HTTPD 连接数: watch -n 1 -d “pgrep httpd|wc -l” 确定工作模式 prefork / worker httpd -l 并发参数设置 prefork 的工作原理是,控制进程在最初建立”StartServers”个子进程后,为了满足”MinSpareServers”设置的需要创建一个进程,等待一秒钟,继续创建两个,再等待一秒钟,继续创建四个……如此按指数级增加创建的进程数,最多达到每秒 32 个,直到满足 MinSpareServers 设置的值为止。 这就是预派生(prefork)的由来。这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销以增加性能。 MaxSpareServers 设置了最大的空闲进程数,如果空闲进程数大于这个值,apache 会自动 kill 掉一些多余进程。 这个值不要设得过大,但如果设的值比 MinSpareServers 小,apache 会自动把其调整为 MinSpareServers+ 1。 如果站点负载较大,可考虑同时加大 MinSpareServers 和 MaxSpareServers。 MaxRequestsPerChild 设置的是每个子进程可处理的请求数。每个子进程在处理了”MaxRequestsPerChild” 个请求后将自动销毁。 0 意味着无限,即子进程永不销毁。虽然缺省设为 0 可以使每个子进程处理更多的请求,但如果设成非零值也有两点重要的好处: 可防止意外的内存泄漏;在服务器负载下降的时侯会自动减少子进程数。 因此,可根据服务器的负载来调整这个值。但也不能太小,不然系统不断的开启新的 apache 进程,造成资源浪费。 MaxClients 是这些指令中最为重要的一个,设定的是 apache 可以同时处理的请求,是对 apache 性能影响最大的参数。

阅读全文

最近在看《Apache Cookbook》这本书,有章关于 Apache 的 SSL 模块来实现认证的功能,书上讲的比较精简,而且是在 Linux 下的配置。网上的资料很多但是都不详细,这里共享一份 CA 的一位哥们给我的 windows 下的 Apache SSL 的双向认证的配置文档,很全很详细!按照这个实现了一下感觉其实不是很难,主要是 SSL 的加密过程理论很复杂。 1.安装环境 Windows 2000 或以上 Apache 2.x + openssl PHP 5.1.x 或以上 2.安装前检查 确认 Apache + OpenSSL 已安装。 3.生成证书 3.1 生成 CA 证书和服务器证书 若已有 CA 证书和服务器证书,并已导入浏览器,可略过此步骤。 打开命令行窗口,进入{Apache}\bin,输入“openssl genrsa -out server.key 1024”,生成网站服务器公钥文件 server.key。 输入“openssl req -new -out server.csr -key server.key -config ..\conf\openssl.cnf” (Common Name 为要申请域名证书的域名) 输入“openssl genrsa -out ca.key 1024”,生成 CA 私钥文件 ca.key。 输入“openssl req -new -x509 -days 365 -key ca.

阅读全文

作者的图片

Ryan是菜鸟 | LNMP技术栈笔记

一步一个脚印,一直在路上!记录LNMP技术栈,Web架构,区块链等笔记

菜鸟码农

南京