Archive

Posts Tagged ‘linode’

Linode VPS上安装pptpd VPN服务

February 12th, 2010 Wei 2 comments

从购买了Linode VPS服务之后,就一直考虑弄个VPN。今天终于实现了,该文档讲述了如何在Linode上配置基于pptpd的VPN服务,以及一些troubleshooting的问题。

前提:必须有VPS;必须有SSH。

接下来的步骤将完成pptpd的安装:

  1. 安装pptpd服务
    sudo apt-get install pptpd
  2. 修改pptpd服务的配置文件/etc/pptpd.conf(只需要修改最后的localip和remoteip部分):
    localip 192.168.10.1
    remoteip 192.168.10.100-150
    
  3. 修改/etc/ppp/chap-secrets文件
    username pptpd password *
  4. 设置pptpd的DNS服务器,修改/etc/ppp/pptpd-options文件:
    ms-dns 208.67.222.222
    ms-dns 208.67.220.220
    
  5. 设置ip4v转发,修改/etc/sysctl.conf文件,去掉如下行的注释:
    net.ipv4.ip_forward=1
  6. 使ipv4转发生效,运行:
    sysctl -p
  7. 重新启动pptpd服务,运行:
    /etc/init.d/pptpd restart
  8. 开启ipv4转发,运行如下命令:
    /sbin/iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE
    /sbin/iptables -p FORWARD ACCEPT
    

需要注意的是,我的VPS不知为什么,FORWARD rule默认的action是DROP(可能是由于我之前配制了防火墙的缘故。这也令我在一段时间内,纠结于为啥VPN无法正常转发。

Categories: Computer Science Tags: , , , ,

Linode优化LAMP配置

September 1st, 2009 Wei 7 comments

我的网站在经过2周左右的测试后,正式决定搬家到Linode。受经济和访问量等因素的综合考虑,我选择了最便宜的VPS方案(Linode 360:360MB内存,16GB存储空间,200GB月流量)。

操作系统上,我选择了Debian 5.0 (Lenny) 64bit。原因是Debian和我常用的Debian/Ubuntu系统最为贴近,安装、配置、管理都比较得心应手。至于64bit和32bit,简单一句话就是,64bit应用会相对更快一些,但也占用了更多的内存(例如一个int在32bit系统中占用4bytes,而在64bit系统中则占用8bytes)。

与很多采用Linode 360方案的人不太一样,我并没有使用传说更加高效的NgineX,而是使用了比较传统的LAMP结构。这样的代价是对于内存的消耗更加苛刻,而优点则是更加传统、经典、久经考验的Apache方案。

正是基于这些原因,我经过大约2周时间的调试,总结出针对我的个人网站来说比较合理的配置方案。

首先是Apache的配置(/etc/apache2/apache2.conf):

KeepAlive                On
MaxkeepAliveRequest      20
MaxKeepAliveTimeOut      25

<IfModule mpm_prefork_module>
    ServerLimit          30
    StartServers          3
    MinSpareServers       3
    MaxSpareServers       7
    MaxClients           20
    MaxRequestsPerChild 500
</IfModule>

接下来是PHP的配置(/etc/php5/apache2/php.ini):

max_execution_time = 180
max_input_time = 60
memory_limit = 64M
error_reporting  = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
register_globals = Off

最后是MySQL的配置(/etc/mysql/my.conf):

key_buffer              = 16K
max_allowed_packet      = 3M
thread_stack            = 64K
thread_cache_size       = 8
table_cache             = 3
query_cache_limit       = 1M
query_cache_size        = 16M
#skip-innodb

经过上述配置,在我的网站上,剩余物理内存空间基本能达到100MB左右,即使是峰值流量,也基本不会出现OOM了。

迁移至Linode VPS

August 14th, 2009 Wei 5 comments

考虑再三,终于还是决定把主机迁移到Linode VPS了。

什么是VPS呢?Virtual Private Server,简单说就是虚拟机,与之类似的概念可以提到Hyper-V、VMWare等等。VPS利用虚拟机技术,在一台物理主机上安装多个虚拟主机。每个VPS主机都相当于独立的操作系统,与像Dedicated Hosting一样。

VPS(Unmanaged Virtual Private Server)与Shared Hosting的相比:

  1. VPS的资源是独立的,分配给你100MB内存,这些内存就是你的,别人抢不走
  2. 虚拟机操作系统上只有你一个人使用,拥有root权限,想装什么都装什么,想怎么tuning,就怎么tuning
  3. 可以安装多种操作系统,从Fedora到Ubuntu,再到CentOS。玩儿腻了,重装一个就行。

而与Dedicated Hosting相比,最大的优点就是价格了。Dedicated Hosting动辄就是每月上百甚至几百美元的费用,对于一般的用户来说,也是承受不起的。再者,Dedicated Hosting提供的硬件配置,一般也是用不到的。

当然VPS的独立操作系统既是它的优点,也是它很大的缺点。系统是独立的,你需要自己安装软件,自己配置,自己做performance tuning。对于Linux操作系统的能力还有有一定要求的。

这样,基于种种这些原因。VPS就浮现到我的迁移计划中。经过反复的比较,终于在SliceHost、fcksvps和Linode之中选中了Linode。其实SliceHost和Linode口碑都是非常不错的,唯一的缺点是SliceHost的机房到中国的速度比较低,而Linode这个老牌的VPS服务提供商,有全美4个机房的选择。我则选择了号称最快的Fremont, CA, USA机房。

我选择了Linode VPS最便宜的方案:RAM 360MB,Storage 16GB,Bandwidth 200GB,基于Xen的虚拟机技术。配置不高,而对我这样一个小的网站来说,很合适了。与超售严重、资源要求苛刻的Shared Hosting来说,这个配置是非常值得的。

在操作系统上,我选择了Ubuntu 9.04 64bit。在经过1~2个网站迁移后的试用之后,觉得正式全部迁移过来。

在目前的配置上,我使用了Apache2、MySQL、PHP5。具体配置如下:

Apache:

KeepAlive                 On
MaxKeepAliveRequest       20
KeepAliveTimeOut           5
<IfModule mpm_prefork_module>
    StartServers           5
    MinSpareServers        3
    MaxSpareServers       10
    MaxClients            25
    MaxRequestsPerChild  500
</IfModule>

PHP:

memory_limit = 64M

本来为了内存设置,想设置memory_limit=16M,可设置为16M、24M和32M,WordPress不是显示有问题(白屏),就是不能升级。权衡一下,还是保留了64M。

MySQL:

key_buffer             = 16K
max_allowed_packet     = 3M
thread_stack           = 64K
thread_cache_size      = 8
table_cache            = 3
#skip-innodb

在如上配置情况下,内存占用是这样的:

.            total       used       free     shared    buffers     cached
Mem:           360        355          4          0          1         27
-/+ buffers/cache:        326         33
Swap:          255        129        126

从配置和性能上看,剩余物理内存只有33M,这时的SSH也会变慢。如果准备在VPS上host较多的网站,还是采用高一级别(540M)的配置比较好,或是使用高性能、轻量级的web服务器(比如nginX或Lighttpd)。Linode支持升级,无论是单一的内存、流量、磁盘,还是统一的level升级,都可以做。而这些只需要在后台即可完成。

如果你也对Linode VPS感兴趣。可以通过下面链接申请(链接带有推荐代码):

http://www.linode.com/?r=d399a85050ef9caca9080683c2b2249dd45454f6

Categories: Uncategorized Tags: , , , ,