梦.:如此短暂已经搬到了RapidXen的VPS。RapidXen的10%off优惠码是OMFGWHT已过期。当初考虑VPS是为了避免再出现DreamHost那样的oversell的问题,但直到这时我才发现——DreamHost凭什么 oversell了10年虚拟主机却没有被淹没在口水中——同样价位的VPS,性能绝对比不上DreamHost的虚拟主机。对VPS的配置分三条主线,一条是Web服务器,用于接替DreamHost;另一条架设VPN,提供我和Cindy的私用网关;还有一条是跟两者都关联的网络设置和 iptables。为了避免无聊人士的打扰,先把iptables做好。
网络设置和iptables
配置IPv6地址,IPv6 is assigned on request. 找客服要到IPv6地址后,在/etc/network/interfaces中添加以下内容:
iface eth0 inet6 static
address IPv6地址(不包括/64)
netmask 64
gateway IPv6网关地址(不包括/64)
在/etc/modules里加入:
tun
ipv6
iptables配置如下:
# Generated by iptables-save v1.4.4 on Fri Aug 14 11:31:59 2009
*nat
:PREROUTING ACCEPT [17437:1397521]
:POSTROUTING ACCEPT [15:2914]
:OUTPUT ACCEPT [613:56924]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Fri Aug 14 11:31:59 2009
# Generated by iptables-save v1.4.4 on Fri Aug 14 11:31:59 2009
*filter
:INPUT DROP [3219:531606]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [37490:51670766]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m multiport --dports 22,80,143,4662 -m tcp -j ACCEPT
-A INPUT -p udp -m multiport --dports 53,4672 -m udp -j ACCEPT
-A INPUT -i tun+ -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A FORWARD -o tun+ -j ACCEPT
-A FORWARD -i tun+ -j ACCEPT
COMMIT
# Completed on Fri Aug 14 11:31:59 2009
ip6tables:
# Generated by ip6tables-save v1.4.4 on Fri Aug 14 18:00:32 2009
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [141570:116032574]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m multiport --dports 22,80,143 -m tcp -j ACCEPT
-A INPUT -p udp -m multiport --dports 53,1194 -m udp -j ACCEPT
-A INPUT -p ipv6-icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
COMMIT
# Completed on Fri Aug 14 18:00:32 2009
ip6tables必须开icmp,否则会连不通网关。
Web服务器
在只有128M内存的VPS上,Apache显然不是可行方案。最初选择nginx作为Web服务器,搭配以spwan-fcgi,但后来发现 nginx跟spwan-fcgi配合不怎么样,经常出现HTTP500。nginx名声在外,显然应该先从自己找原因,最后只能归结到自己不会配置,于是开始考虑lighttpd做Web服务器。Debian lenny提供的无论是lighttpd还是php、mysql的版本都不能让我满意,于是干脆升级到了unstable。后面的配置都是在debian unstable下做的。
整个配置需要以下这些包:
lighttpd
mysql-server mysql-client phpmyadmin
php5-cgi php5-mysql php5-curl php5-gd php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-xmlrpc php5-xsl php5-xcache
fam
注意不要安装php5-suhosin,会导致phpmyadmin不停地HTTP500。
在/etc/mysql/my.cnf的[mysqld]段中加入skip-innodb可以省10~20M内存,但是关掉了innodb引擎,firestats无法运行了,终于被我换成了Google Analytics。query_cache方面的设置如下:
query_cache_size = 16M
query_cache_type = 1
query_cache_limit = 1M
lighttpd的优化配置05-optimize.conf :
server.stat-cache-engine = "fam"
server.network-backend = "linux-sendfile"
server.event-handler = "linux-sysepoll"
server.max-keep-alive-requests = 0
为梦.:如此短暂写的50-briefdream.conf:
server.modules += ("mod_rewrite", "mod_redirect")
$HTTP["host"] == "www.briefdream.com" {
server.name = "www.briefdream.com"
server.document-root = "…"
server.errorlog = "…"
accesslog.filename = "…"
url.rewrite-once = (
"^download/([^/]+)$" => "wp-content/plugins/download-monitor/download.php?id=$1"
)
server.error-handler-404 = "/index.php"
}
else $HTTP["host"] == "briefdream.com" {
url.redirect = ( "^/(.*)" => "http://www.briefdream.com/$1" )
}
server.error-handler-404实际上起到了rewrite rule的作用。为WordPress Download Monitor设置的rewrite没起作用。把Drain Hole换成WordPress Download Monitor也是考虑Drain Hole直接用PHP读文件的方式对服务器造成的压力太大。
- https://www.briefdream.com/notes-on-moving-to-vps/
- Tags:Dreamhost, IPv6, Linux, RapidXen, VPN, VPS, WordPress, 虚拟主机
- (0)comments | leave a reply
- Trackback URI