Nov 02

VPS 系统在最小化安装后,执行一些命令时候,提示 locale 设置错误,具体如下:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "zh_CN"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

错误提示是没有设置好 locale 相关环境变量,因此尝试将其设置:

export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

解决办法是:

vi /etc/locale.gen,找到# en_US.UTF-8 UTF-8,去掉前面的#号;

执行一下命令,可以看到,提示 en_US.UTF-8 已经生成:

# locale-gen en_US.UTF-8
Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.

接着更新

# update-locale en_US.UTF-8

重新执行之前有报错的命令,已经不再报错。

参考资料:
1.http://blog.sina.com.cn/s/blog_4da051a60102vfrf.html
2.https://www.thomas-krenn.com/en/wiki/Perl_warning_Setting_locale_failed_in_Debian

Dec 18

1.确认vps支持tun/tap设备
运行

cat /dev/net/tun

如果返回File descriptor in bad state,说明支持tun/tap。否则请发ticket联系客服。

2.注册 IPv6 Tunnel Broker
进入 http://tunnelbroker.net/,点击左上角面板的Register按钮注册一个帐号。
注册完成后登录,点击左侧的 Create Regular Tunnel,在 IPv4 Endpoint (Your side):中填入 VPS 的 IPv4 地址,然后在下面的 Available Tunnel Servers 里选择一个离你 VPS 机房最近的地点。点击 Create Tunnel 创建隧道。

创建完成后进入刚申请的隧道的详情页面,记下以下信息:

Server IPv4 Address: 服务端的 IPv4 地址,假设为 1.2.3.4
Client IPv4 Address: VPS 的 IPv4 地址,假设为 5.6.7.8
Client IPv6 Address: 获得的 IPv6 地址,假设为 2000:200:a:f00::2/64

点击中间的 Example Configurations 选项卡可以看见各种系统上建立隧道的配置方法,不过OpenVZ 虚拟机都是用不了的。此时需要使用用户层的 tb-tun 隧道客户端。

3.编译 tb-tun

wget http://tb-tun.googlecode.com/files/tb-tun_r18.tar.gz 
tar xvf tb-tun_r18.tar.gz 
gcc tb_userspace.c -l pthread -o tb_userspace 

把编译出的程序移到 $PATH 里:

mv tb_userspace /usr/local/sbin 

用 tb_userspace 创建一个名为 tb 的虚拟接口并后台运行,第一个地址为服务端地址,第二个地址为 VPS 的本地地址:

setsid tb_userspace tb 184.105.253.14 181.215.100.97 sit 

启用虚拟接口:

ifconfig tb up 

为虚拟接口分配前面申请到的 IPv6 地址:

ifconfig tb inet6 add 2001:470:1f10:37e::2/64 

调整虚拟接口的最大传输单元:(这步可以不做)

ifconfig tb mtu 1480 

添加 IPv6 路由:

/sbin/route -A inet6 add ::/0 dev tb 
/sbin/ip -6 route add default dev tb 

参考资料:http://tieba.baidu.com/p/3153585015

Oct 16

1.命令行查看vps性能

主要测试如下几个方面:
CPU

cat /proc/cpuinfo     (查看CPU信息)

得到cpu信息后可以到如下两个网站:
www.anandtech.com/Bench
www.cpubenchmark.net
你可以在这个网站上,查到你使用VPS的CPU怎么样,综合评分如何等。而且你需要知道vps一共几核,每核的频率是多少。总体来讲,单核高频不限,比多核低频的性能要好一些。

内存

cat /proc/meminfo    (查看内存信息)

硬盘检测

df -lh               (查看硬盘信息)

硬盘IO性能

dd if=/dev/zero of=test_$$ bs=64k count=16k conv=fdatasync (硬盘IO性能测试)

如果超过10M,对正常建站就无影响。超过50M,就是非常给力状态。

下载速度

wget -O /dev/null http://cachefly.cachefly.net/100mb.test  (下载速度)

如果是11M/s,大概就是百兆口。70M/S,大概就是G口。您的VPS搭建好网站环境后,可以用其它的VPS去拽这个文件,得到出口的带宽。

2.使用unixbench测试vps性能

这个可以参考我的这篇文章:使用unixbench测试vps性能

3.VPS的访问速度测试

这个主要测试是PING值和观看TRACERT值来判断速度。大概这几个网站:

站长站:http://ping.chinaz.com ping.chinaz.com/tracert
17测:www.17ce.com
国外的:www.just-ping.com 
软件:speedtest.net/mini.php

转自:http://www.tennfy.com/1490.html

Oct 20

转自:https://liruqi.wordpress.com/2011/02/26/reverse-proxy-for-wordpress/

做这个的起因是之前 @annsherry_ 希望给自己的博客(http://annsherry.wordpress.com/) 绑定一个独立域名。我看了下后台配置,发现 wordpress.com 不让用A记录的方式配置,要想绑定域名,需要把自己的域名 nameserver 改成 wordpress的,让wordpress 帮你解析。作为一名互联网工作者,这种霸王条款当然是深深伤害了像我这种高端用户的感情。所以研究了一下用自己的主机给 *.wordpress.com 做反向代理的方法。

研究过程很纠结。我先把结论拿出来,然后大概解释下为什么。

比如,我希望把 annsherry.wordpress.com 绑定到 liruqi.me。步骤如下:

1. 重新编译 nginx, 加上 HttpSubModule(http://wiki.nginx.org/HttpSubModule) 模块。简而言之,是 ./configure 时加上参数 –with-http_sub_module 其它参数保持不变即可。
2. 修改Nginx 配置。在 http 块中加入 server:

server {
listen   80;
server_name liruqi.me;
location / {
proxy_set_header  X-Real-IP  $remote_addr;
proxy_set_header  Accept-Encoding  ”";
proxy_pass http://annsherry.wordpress.com;
sub_filter annsherry.wordpress.com liruqi.me;
sub_filter_once off;
}
}

3. 启动 nginx 或者重新加载配置文件.

只要 域名 liruqi.me 是指向正确的主机ip, 反向代理就做好了。而且点链接不会跳回到 annsherry.wordpress.com 域名上。

大概说下原理。
a) *.wordpress.com 上的连接不少是绝对路径。如果直接proxy_pass ,再点一次连接就会回到 wordpress 域名上。所以这里做了一个简单的文本替换。
HttpSubModule 仅支持单模式的纯文本替换,不支持正则表达式。如果希望用正则,做一个更复杂的替换,可以考虑一个华人开发的 HttpSubsModule (http://wiki.nginx.org/HttpSubsModule) 第三方模块。

b) proxy_set_header Accept-Encoding ””; 这一项,可以让nginx 不法送 Accept-Encoding HTTP header。这个时候,wordpress 返回的页面是不做 gzip压缩的。因为gzip 压缩之后,文本替换就会失效了。
国外有VPS的同学(而且ip没被墙的),可以考虑用类似的方式给自己的 blogspot 或者其它博客做反向代理。
另外,我现在没有给自己的 liruqi.com 做反向代理了(之前是反向代理到 appspot 上的 micolog),而是直接跳转到 http://liruqi.wordpress.com/。另外,我也建议大家少自己折腾搭建博客,不止一次见过把博客做在 VPS 上,然后因各种原因丢数据。而数据的价值,远大于技术本身。