重要通知:Log4D 的域名由 http://dddspace.com 迁移到 http://log4d.com 。 订阅地址现在改为 http://log4d.com/feedhttp://feeds.feedburner.com/dddspace 。(FeedBurner 的地址未发生变化)

这一次域名迁移的同时,我更换了服务器,由原先的虚拟空间迁移到独立 VPS。 现在使用的 VPS 是 PhotonVPS

月付5.95美元,使用优惠码 TENOFFPHOTONLEB 可以打7折, 换算汇率之后是26人民币每月。

这款VPS的内存只有128,我们就要精打细算考虑如何省内存。经过我几天琢磨, 我终于配置的可用率比较高,使用 siege -c 100 -t 100 时候可以保持 100% 可用率。 (其实做不到这么高的并发,大概10个并发每秒)下面就是我记录的安装配置过程。

安装 LNMP

Linux 发行版选用

CentOS 据说有较好的安全性和性能,我个人更喜欢 Arch。查询了相关资料, 在生产环境使用 Arch 的似乎不多。

CentOS 里面的包比较旧,不像 Arch 里面,滚动最新。 所以这里需要用到的LNMP大部分都需要自行编译。

Nginx 安装

Nginx 的性能在小内存低配置的服务器上跑得比 Apache 要好。这是我们为什么选用 Nginx。

目前 Nginx 的最新稳定版是1.0.9版。CentOS 官方源里面搜索不到 Nginx,需要自行编译。

准备编译环境,需要安装一堆工具,使用下面这个命令 yum 安装。

下载Nginx

因为我们需要安装使用https,所以需要SSL模块支持,我们需要OpenSSL源码。

编译Nginx,使用www作为用户和用户组,同时加入http ssl模块支持。

这样nginx就安装完了,执行 /usr/local/ngxin/bin/nginx -V 可以查看nginx信息。

nginx: nginx version: nginx/1.0.9 nginx: built by gcc 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC) nginx: TLS SNI support enabled nginx: configure arguments: –user=www –group=www –prefix=/usr/local/nginx –with-http_ssl_module –with-openssl=/tmp/openssl-1.0.0c/

为nginx 创建软链接

ngxin 启动关闭

运行 nginx 就可以启动服务器了,在浏览器输入服务器ip, 能够看见 nginx 的字样。

MySQL安装

MySQL我没有自行编译,使用CentOS官方源里面的Mysql。

PHP安装

PHP需要自行编译,原因是Nginx使用Fast-CGI调用PHP服务。 我们需要php-cgi常驻后台。在PHP 5.3.3之后, 一个名为php-fpm的小东西被php核心加入。这个php-fpm可以常驻后台响应Fast-CGI请求。

悲剧的是,截至目前位置,CentOS官方源里面PHP版本是5.3.2, 好死不死的差一个小数点。只能自行编译了。

安装libmcrypt,这是某个依赖包,另外phpmyadmin也需要这个模块。

安装php 5.3.8

运行LAMP

现在环境已经安装好了,我们稍作配置,然后启动系统。

在nginx的 /usr/local/nginx/html/ 下创建 info.php

配置nginx,编辑 /usr/local/nginx/conf/nginx.conf 其中的 server 段。

配置php-fpm,编辑 /usr/local/php/etc/php-fpm.conf

运行 nginx -s reload 重新启动nginx服务器。运行 /etc/init.d/php-fpm start 启动php-cgi监听。

在浏览器输入 your.domain/info.php 会出现php信息,成功的话, 就说明LNMP配置成功了。

小内存主机配置

经过上面的步骤,已经可以成功的配置完LNMP系统,但是默认的配置情况下面, 内存会相当吃紧。一会会就系统内存爆掉,Nginx会频繁报出 The page you are looking for is temporarily unavailable. Please try again later. ,不配置就不能用啊。

Nginx配置

我的nginx优化配置如下,主要是配置 worker_processes 数量和 fastcgigzip 缓存。

MySQL配置

mysql的配置文件在 /etc/my.cnf ,我们需要配置两样东西, 一个是禁用innodb,因为innodb比较消耗内存;另外是配置mysql缓存。

PHP配置

我们使用php-fpm来作为后台daemon响应FastCGI请求。 默认的php-fpm会启动比较多的子进程,很容易耗光内存。

有的配置手记是建议把上面几个数字改为5,我经过多次调试之后, 发现使用最小/最大连接数为2的时候,可用率比较高,内存消耗也比较小。

运行结果

经过一番折腾之后,我的 Log4D 终于配置完成了。 打开速度还算凑合,用WebKaka测试截图如下。

原来的虚拟主机 dddspace.com 的响应情况:

dddspace
dddspace

现在 log4d.com VPS 的响应情况:

log4d
log4d

内存使用情况:

free
free

siege -c 100 -t 100 log4d.com 的测试结果:

Transactions:               1711 hits
Availability:              96.61 %
Elapsed time:             416.72 secs
Data transferred:          18.20 MB
Response time:             22.12 secs
Transaction rate:           4.11 trans/sec
Throughput:             0.04 MB/sec
Concurrency:               90.84
Successful transactions:        1711
Failed transactions:              60
Longest transaction:           30.31
Shortest transaction:           1.06

参考链接


原文链接: https://blog.alswl.com/2011/11/vps-lnmp-setup-config/
3a1ff193cee606bd1e2ea554a16353ee
欢迎关注我的微信公众号:窥豹

Comments

comments powered by Disqus