Tomcat encoding 设置

一种是加在server.xml里面connector后面。
1. 可以用URIEncoding标签,如URIEncoding=”UTF-8″
2. useBodyEncodingForURI=true 则表示用请求内容的编码作为encoding

以上仅仅作为输出客户端的编码,相当于在httpd中的encoding设置。如果要修改输出文件的编码,如静态化,则要对java进行设置:
修改tomcat目录中bin/setenv.sh, 加入

JAVA_OPTS="-Dfile.encoding=GBK"

则java以GBK的编码输出。

注意,不能手动加在执行脚本后面,否则无效,既不能以以下方式启动tomcat

$ bin/catalina.sh start -Dfile.encoding=GBK

Why are house prices so high?

兔子月薪5千,打算用20万建一个窝。 狼不允许,说私自建就是违章建筑,只允许向王八买。王八是搞房地产的,先用20万贿赂狼取得开发权,再用50万元向狼买这块地,投资10万元把兔子窝盖好,向兔子要价200万元。兔子拿不出这么多钱于是向狐狸借200万元,连本带利300万,20年还清, 兔子全家二十年给狐狸打工。狼、狐狸、王八都挣了钱,只有兔子亏,连孩子也不敢生了。兔子越来越少,狼觉得这样下去大家没肉吃,于是调控。狼显得非常重视兔窝价格太贵的问题,研究部署了遏制兔窝价格过快上涨的政策措施。最后认定兔窝价格卖得太高的原因是因为有的兔子买了兔窝后自己不住而进行倒卖所致。于是狼规定:兔子买了兔窝5年内卖了的,要向狼交纳营业税。结果兔窝价格没降下来,狼却发了大财。狼又对狐狸说:只借钱给首先交了更多钱的兔子,并提高高利贷的利息,多买兔子窝的不借,全交现钱。这样狐狸在兔子的购窝过程中也发了财。王八借着兔窝价格上涨的行情,以更高的价格向狼买地,并转嫁到兔窝价格上,再加价后卖给兔子。看到狼辛苦地为自己操劳,兔子很感谢狼,但还是发现兔窝价格越来越贵。狼说:这事挺复杂,还真不太好办,不过兔子们放心,我们将继续调控,可以向已经有兔窝的兔子征收兔窝税┉

翻了一本计算热力学的书

大致翻了一下 《Computational Thermodynamics The Calphad Method》 by Hans Leo Lukas. 基本围绕Thermo-Calc写的。包括从热力学基础,再到实现算法,优化方法,再到数据来源及采集处理 (包括实验及第一性原理计算),最后到应用。整体来说还是很实用的一本书,基本上重要的东西都cover到了,如果要做Thermo-Calc数据库的话,这本书还是很有价值的。

ps 最后应用部分引用了我二老板相场模拟超合金凝固的工作。不错不错…

Moved to WordPress

Finally, fully moved to WordPress successfully. Manually modified some articles. Now better looking [lol]. The previous one will no longer be used. It seems that WP has better technical support, so no longer need to worry about the endless bugs!!!

tomcat垂直负载

今天配置了一个tomcat的垂直负载,就是一台机器运行几个tomcat服务,再做一个负载均衡,和mod_jk搭在一起,这样以后万一要改个什么tomcat的参数就不用完全停止对外服务了。mark一个…

Tomcat 垂直负载 — jkstatus

cam, language condition waived

做了个EAP测试,今天一个叫Karen的给我面好后说剑桥的语言条件可以waive掉。不错不错,mark一个,再把official transcript 给post过去就可以拿unconditional offer了。担心的还是牛津那边的funding。。。不知道啊不知道…

tomcat 的 chroot 配置

最近配置tomcat,看到网上的一些教程,觉得有些缺陷,故摘抄至此(红色为修改部分)。至于新版本tomcat和java的配置,略有不同,特别是库文件的位置,但大同小异,也就leave them here了…

chroot命令格式

chroot <new root path> <command> <command args>

 

(1)建立chroot目录

mkdir /usr/local/chroot
cd /usr/local/chroot

以下所有的路径是相对于/usr/local/chroot

 

(2)建立相关文件夹,并赋于权限

mkdir -p lib etc tmp dev usr
chmod 755 etc dev usr
chmod 1777 tmp

 

(3)复制jdk到相应目录

mkdir usr/jdk
cp -R /usr/local/jdk1.6.0_10/ usr/jdk/

 

(4)以下添加jvm需要的lib

# jvm need lib
ldd /usr/local/jdk1.6.0_10/bin/java
cp /lib/tls/libpthread.so.0 lib/tls
cp /lib/libdl.so.2 lib
cp /lib/tls/libc.so.6 lib/tls
cp /lib/ld-linux.so.2 lib
cp /lib/libm.so.6 lib
cp /lib/libnsl.so.1 lib

 

(5)添加dev

/dev/MAKEDEV -d /usr/local/chroot/dev null random urandom zero loop* log console
cp /dev/MAKEDEV /usr/local/chroot/dev/
cp -R /dev/shm dev/

 

(6)mount proc filesystem

mkdir proc
mount -t proc proc /usr/local/chroot/proc/

 

(7)复制conf

cp -a /etc/hosts /etc/resolv.conf /etc/nsswitch.conf etc

 

(8)添加dns需要的lib

cp -p /lib/libresolv.so.2 lib/
cp -p /lib/libnss_dns.so.2 lib/
cp -p /lib/libnss_files.so.2 lib/

 

(9)添加bash shell需要的lib,并添加shell命令 (按照tomcat安全配置的书上说最好不要加入bash,防止提权以致jail失效,但无shell似乎tomcat的启动脚本无法执行)

# bash shell
mkdir bin
cp /bin/bash bin/
ln -s /bin/bash bin/sh
cp -p /lib/libtermcap.so.2 lib/
cp -p /lib/libdl.so.2 lib/
cp -p /lib/libc.so.6 lib/
cp -p /lib/ld-linux.so.2 lib/

# add command
cp /bin/uname /usr/local/chroot/bin/
cp /usr/bin/dirname /usr/local/chroot/bin/
cp /bin/touch /usr/local/chroot/bin/
cp /lib/tls/librt.so.1 /usr/local/chroot/lib/tls
cp /usr/bin/tty /usr/local/chroot/bin/

 

(10)在chroot中运行java命令看是否能正确运行

# run chroot
chroot /usr/local/chroot/ /usr/jdk/jdk1.6.0_10/bin/java -version
strace chroot /usr/local/chroot/ /usr/jdk/jdk1.6.0_10/bin/java -version

如果不能正确运行,看缺少什么库,添上它

 

(11)复制tomcat,配置环境,并启动tomcat
cp -R /usr/local/apache-tomcat-5.5.28/ .

# add JAVA_HOME CATALINA_HOME to catalina.sh
export JAVA_HOME=”/usr/jdk/jdk1.6.0_10/”
export CATALINA_HOME=”/usr/apache-tomcat-5.5.28″

 

(12)Edit passwd等
cp /etc/passwd /usr/local/chroot/etc/
cp /etc/group /usr/local/chroot/etc/
编辑passwd,只剩一个受限账户,即为tomcat运行的账户

 

(13) start tomcat
chroot –userspec=USERNAME:GROUP /usr/local/chroot/ /usr/apache-tomcat-5.5.28/bin/catalina.sh start
USERNAME为启动的用户名,GROUP为启动的GROUP

 

摘自Wiki:

特权分离 一个被允许打开文件实例(如文件、链接、网络连接)的软件被放入chroot中,这是对不必要留下在chroot目录工作文件的简单设计。同时也是一个简单的沙盘,也可以防御安全漏洞。注意!有root特权的程序,chroot是没有防御力的。

所以勿以root执行tomcat,否则chroot形同虚设。

The Newsroom

The Newsroom, 初看感觉不错的美剧。里面的辩论以及对信息的呈现相当有力,提供了一个全新的角度思考问题,特别是第一集对美国自身的反思,不错的开头。打算继续追下去。