Tags: VPS

nginx配置备忘

安装

在ubuntu 10.10里面还没有专门的fastcgi包,必须通过lighttp里面附带的fastcgi加上自定义的脚本来启动fastcgi进程。但是在ubuntu 11.10里面有了一个php5-fpm的包专门用来处理fastcgi,免去了自己倒腾脚本的麻烦。把这一堆包装上安装就算是完事了:

1
sudo apt-get install nginx php5 php5-fpm mysql-server mysql-client

配置

配置也很简单,直接在/etc/nginx/sites-avalable里面添加一个自己的配置文件,然后创建一个到/etc/nginx/sites-enabled/的软链接即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
server {
        listen   80; ## listen for ipv4; this line is default and implied
        root /path/to/root/;
        index index.php index.html index.htm;
 
        # Make site accessible from http://localhost/
        server_name _;
 
        location / {
                # 找不到页面的时候返回到index.html
                try_files $uri $uri/ /index.html;
        }
 
        # 将错误页面重定向到制定的文件
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                root /usr/share/nginx/www;
        }
 
        # 处理php文件
        location ~ \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                include fastcgi_params;
 
                # 在使用wordpress必须要有这个rewrite,否则访问rss的时候会出现404错误
                if( !-e $request_filename)
                {
                        rewrite ^/wordpress/(.+)$ /wordpress/index.php?q=$1 last;
                }                        
        }

尝试VPS中

前两周俱乐部买了一个VPS服务器,几天下来基本上明白VPS是个怎么个用法儿了。
首先VPS是一个运行在服务器上面的虚拟机,你可以通过ssh等方式来控制它。我们买的这个是centos的系统,搭配了Kloxo来进行管理。Kloxo是一个通过网页方式来控制VPS的管理程序,功能非常强大,域名、DNS、WEB服务器、配额管理、文件管理、进程管理、文件操作、文件解压,什么都可以做。通过Kloxo可以直接添加域名,设置web服务器的基本配置,启动服务,中间不用一个配置文件都不用改。

Kloxo另外一个很有用的功能是“客户”功能。你可以在Kloxo里面添加“客户”或者“代理”,他们就会拥有自己的一个Kloxo账户,还会自动生成Linux帐号、服务器配置文件、FTP帐号等等。客户和代理的区别在于后者拥有添加客户的权限。而对于每一个Kloxo帐号还可以添加一个子帐号来共同管理同一个Kloxo帐号(说的真绕,不知道说明白没有)。你可以买一个VPS然后给几个朋友分别开一个客户,分上限额,共同来用这个VPS。甚至都可以不会用命令行,只要明白了Kloxo那个网页界面就成。

通过ssh远程控制服务器的感觉的确比较酷,不过也出现了没有想到的问题。首先VPS价格会比普通的虚拟空间要贵,这直接导致我们买了只有128M内存的VPS。然后就是VPS不够稳定,这一点在我们这个小内存VPS上面就非常明显。一开始web服务器默认使用的是lighttpd,在换成apache以后一天之内死机了两次,而且都是在几乎没有流量的情况下发生的。检查了一下发现是内存用完了导致的死机。apache一启动以后就会有6个线程,每个线程显示占用20-30M内存。虽说实际使用的并没有这么多,但是随便来一点点访问量内存就全部耗完了。不得以换回了lighttpd,发现传说中lighttpd省内存还真不是吹的。

使用seige对VPS进行了一个小小的压力测试(其实没有多大访问量)。使用15个并发访问,每两次访问之间间隔1秒钟,也就是说每秒访问15次。总共持续10分钟。服务器方面,放了3个域名,分别对应了mediawiki, wordpress, drupal三个php程序。seige随机的访问三个域名中的任意一个。

seige统计如下:
Date & Time,      Trans,      Elap Time,      Data Trans,    Resp Time,    Trans Rate,    Throughput,    Concurrent,    OKAY,    Failed
2009-11-10 21:20:17,       5886,         598.99,        41,        1.02,        9.83,        0.07,        10.02,        5163,    0
这10分钟总共有接近6000次http访问,平均响应时间是1.02秒,最长响应时间7.7秒,最短0.49秒。

服务器端使用vmstatm每隔十秒记录一次内存使用量,内存余量一直在20-30M之间波动,在测试的后半段系统把一部分内存移到了swap分区,物理内存空余量回到了接近40M。CPU占用率一直在30%左右。