nginx下配置dabr
星期三, 一月 27th, 2010
主要是修改rewrite规则——我曾试图修改php程序,费老大劲,效果差不多。
下面配置代码中,HOME为你站点的根目录,DIR为你需要部署的子目录
location /DIR {
root /HOME;
index index.html index.htm index.php;
if (-f $request_filename) {
break;
}
if (-d $request_filename) {
break;
}
rewrite ^/DIR/(.+)$ /DIR/index.php?q=$1 last;
}
hosts
星期三, 十二月 2nd, 2009
hack GFW是选用国外主机的一大优势……
最近似乎twitter和facebook的访问速度又慢了,写了一个php脚本在站点上跑了下,获取了最新的hosts
128.121.146.228 twitter.com
128.121.146.228 www.twitter.com
168.143.162.69 assets0.twitter.com
168.143.162.69 assets1.twitter.com
168.143.162.69 assets2.twitter.com
168.143.162.69 assets3.twitter.com
168.143.162.69 assets4.twitter.com
168.143.162.69 static.twitter.com
67.219.156.130 help.twitter.com
208.96.32.3 apiwiki.twitter.com
69.63.181.12 www.facebook.com
69.63.184.142 facebook.com
69.63.181.22 login.facebook.com
69.192.18.110 s-static.ak.facebook.com
69.63.176.69 secure-profile.facebook.com
69.63.176.59 secure-media-sf2p.facebook.com
69.63.178.15 ssl.facebook.com
77.67.91.82 profile.ak.facebook.com
208.19.38.26 b.static.ak.facebook.com
前端有dns轮询的,不过我们能用一个就ok,再跑一次脚本,或者用下面这个
查看全部内容 >>
Linode VPS with Nginx的进一步优化
星期三, 十二月 2nd, 2009
-
清理系统服务
可以关闭不必要的系统服务,linux下常用chkconfig,在ubuntu系统上最常用sysv-rc-conf,界面更友好使用更方便,直接通过源安装即可运行。
sudo apt-get install sysv-rc-conf sudo sysv-rc-conf
通过软件可以发现,Linode提供的系统已经关闭了很多不必要的服务,但是系统自带了apache,直接取消选择关闭即可。
SyntaxHighlighter
星期二, 十二月 1st, 2009
作为程序员,blog难免要贴不少代码,简单的pre标记显得比较平板,不象ide里面的代码排版颜色那么漂亮。
在网上搜了一把,SyntaxHighlighter应该是目前最美观最全面的代码着色器了,唯一的缺点就是需要引入的文件太多……不过要做到这么全的代码类型覆盖,这也是不可避免的。
Setup on Linode.com with ubuntu+nginx+php+fastcgi+mysql 续
星期天, 十一月 29th, 2009
嗯嗯,继续。
-
nginx和fastcgi启动配置
2个配置文件,放于/etc/init.d下面。
cd /etc/init.d touch fast-cgi touch nginx sudo chmod +x /etc/init.d/nginx /etc/init.d/fast-cgi
nginx
#! /bin/sh ### BEGIN INIT INFO # Provides: nginx # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts the nginx web server # Description: starts nginx using start-stop-daemon ### END INIT INFO PATH=/usr/local/nginx/sbin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/local/nginx/sbin/nginx NAME=nginx DESC=nginx test -x $DAEMON || exit 0 # Include nginx defaults if available if [ -f /etc/default/nginx ] ; then . /etc/default/nginx fi set -e . /lib/lsb/init-functions test_nginx_config() { if nginx -t then return 0 else return $? fi } case "$1" in start) echo -n "Starting $DESC: " test_nginx_config start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \ --exec $DAEMON -- $DAEMON_OPTS || true echo "$NAME." ;; stop) echo -n "Stopping $DESC: " start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \ --exec $DAEMON || true echo "$NAME." ;; restart|force-reload) echo -n "Restarting $DESC: " start-stop-daemon --stop --quiet --pidfile \ /var/run/$NAME.pid --exec $DAEMON || true sleep 1 test_nginx_config start-stop-daemon --start --quiet --pidfile \ /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS || true echo "$NAME." ;; reload) echo -n "Reloading $DESC configuration: " test_nginx_config start-stop-daemon --stop --signal HUP --quiet --pidfile /var/run/$NAME.pid \ --exec $DAEMON || true echo "$NAME." ;; configtest) echo -n "Testing $DESC configuration: " if test_nginx_config then echo "$NAME." else exit $? fi ;; status) status_of_proc -p /var/run/$NAME.pid "$DAEMON" nginx && exit 0 || exit $? ;; *) echo "Usage: $NAME {start|stop|restart|reload|force-reload|status|configtest}" >&2 exit 1 ;; esac exit 0
Setup on Linode.com with ubuntu+nginx+php+fastcgi+mysql
星期五, 十一月 27th, 2009
我对Linux系统还处于初入门阶段,在配置安装Linode VPS的服务过程中学到了不少东西,了解了不少概念,特记之。
-
启用
Linode的网站设计非常简洁,一个粗略认识英文的同学都可以轻易申请搞定,就不需要再介绍了。
在选择服务器网络物理位置的时候,Linode提供了一个下载测试列表供大家测试,你可以选择访问速度最优的位置。网上其它同学很多选择Fremont,不过我测试下来(杭州ADSL4M)Newark最快,浏览器单线程下载速度稳定达到300K+,所以我选择了Newark。估计各地网络不同有所区别,大家选用建议自行测试。
系统我选择的是ubuntu(嗯,已经提供9.10Server了),主要是出于我对ubuntu桌面版的使用习惯和偏爱。网上很多说法是ubuntu服务器版不够专业,不过我本来也不太够专业,也不知道ubuntu哪里不够专业,呵呵,也就无所谓了。
-
环境基本配置
在web面板开启虚拟机以后,你就可以通过root用户和密码在客户端(推荐putty)登录。登陆后第一件事情,增加一个新账号(用你的常用名 例如myname)。
adduser myname visudo
在该文件中增加以下行
myname ALL=(ALL) ALL
此操作使myname用户可以使用sudo命令,如果要给其他账号提供sudo操作权限,类推。
ok,exit命令退出putty登录再重启,通过myname账号和你设置的密码重新登录系统。Linode默认提供的ubuntu的源缺少一些开发包,所以我们先编辑一下源。
sudo vi /etc/apt/source.list
我们需要做的仅仅是将文件中已经注释掉的几行源去掉前面的“#”,重新开启即可——不需要为具体的源担心,默认的已经飞速了。然后我们需要刷新一下
sudo apt-get update
我习惯使用vim,所以先安一个
sudo apt-get install vim
我们还需要一个中文UTF的本地环境,不过这得看情况,也许你不需要?
sudo locale-gen zh_CN.UTF-8 sudo /usr/sbin/update-locale LANG=zh_CN.UTF-8
将服务器时间设置为上海时间
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
dreamhost to Linode
星期一, 十一月 23rd, 2009
Web 开发与设计师速查手册大全
星期二, 七月 21st, 2009
非常丰富且有用的资源,copy记录存照。
来源:http://www.tripwiremagazine.com/tools/design/40-must-have-cheat-sheets-for-effective-web-designers.html
整理:COMSHARP CMS
Cheat Sheet 一词在中文中并没有很贴切的对译,大概是考试作弊条一类的东西,这要求 Cheat Sheet 必须短小精悍又覆盖广泛,作为 Web 开发与设计师,免不了在工作时查询大量资料,某个 Web 色值,某个 JavaScript 库的核心语法,这类资料如果攒齐了,怕有半间屋子那么多,如果用 Cheet Sheet 也许几十页纸就够了,本文收集了近百份用于 Web 开发与设计的 Cheet Sheet,你会发现他们非常实用。
HTML, XHTML, CSS2
CSS2 Cheat Sheet
一份完整的 CSS2 速查手册。预览 | 下载 (PDF)
Gosquared CSS help sheets
设计和结构都很整齐,漂亮。下载(PDF)
some conception in java
星期三, 七月 15th, 2009
-
JNDI: (Java Naming and Directory Interface) 这是在javaEE体系内部的一个“域名”系统,你可以通过配置指定某种资源的命名,然后通过该命名来引用资源,以达到程序代码和资源之间解耦的目的。这里的资源最常见的是jdbc数据源,通常还会有某种环境实体、EJB组件或者其他资源引用。
-
RMI: (Remote Method Invocation) RMI内置于java语言核心,是java最高效的远程对象访问和调用技术。实现类似功能的技术每个平台都有,.NET平台下有.net remoting,不过到3.0以后都整合为WCF了。RMI是基于TCP/IP的,效率很高,是EJB的实现基础,但是不能穿越防火墙。要能穿越防火墙当然得走http,最常见的就是web service得soap了,不过公认soap的效率是非常低的。我google了一下,java常用的技术还有Hessian/Burlap/Httpinvoker,这些都是基于http协议的,可以穿越防火墙。其中Hessian基于二进制代码,协议公开,在.net/php/python等各个语言都有相应实现。Burlap是基于xml,效率相对低些。Httpinvoker内置于Spring,据说效率和RMI差不多,但是应用不多不太成熟。目前除了EJB基于RMI以外,其他情况下最常用的是Hessian。
-
JMS: (Java Message Service) 共享空间和消息传递是软件系统中最常用的数据传播方式,jms就是java提供的消息传递服务,一般也叫做消息中间件,基本来说这也是每个技术平台必备构成,例如.net或者说ms的消息队列(MQ)组件。如何控制消息的传递?点对点?分发订阅?异步传输?这些特性都由jms提供,不需要程序员自己再从头开发了。特别的,javaEE提供了一种特殊的消息驱动bean(message-driven bean,MDB),他将ejb和jms联系起来,利用jms消息来调用bean。
thinking of java web develop learning
星期四, 七月 9th, 2009
看了几天java web开发的东东,简单梳理一下。
- 容器
这是java web开发过程中非常强调的一个概念。顾名思义,在它的内部存放着某些东西,各种java对象,包括所谓的bean等等。java的容器也可以称其为一个应用服务,或一个框架,用户通过配置指定代码或者说对象、构件存放的路径,以及对象之间的关系、对象和容器直接的关系。这通常有一套标准,例如javaEE本身的servlet/jsp的规范,或容器本身特定的某些标准,你的配置和代码必须符合这种标准,才能被容器调用使用。标准有很多形式,xml的配置、java接口的实现、对象的继承、java的标注等等,他们决定了对象如何被容器调用、对象之间的关系、以及对象在容器中的运行状态。
目前作为java web开发最常用的servlet/jsp容器是tomcat,企业应用服务器是jboss。spring框架虽然没有服务器的概念,但是从其包含、组织、调用java组件的特征来看,也可以说是容器了。
回忆.net,虽然没有特别强调容器的概念,但是从程序的流程和组织架构来说,iis就是.net web程序运行的容器了。
- web生命周期
在任何技术平台的web开发中,web的生命周期都是一个核心概念。由于web应用都是基于http协议和b/s模式,所以不论采用何种技术,其生命周期都是类似的。