2011年10月 的存档

nginx+tomcat配置负载均衡

2011年10月31日 没有评论

使用nginx做为前端服务器,tomcat作为后端服务器,通过一些简单的配置就可以达到tomcat集群的目的。一般情况下,只需要在nginx的配置文件nginx.conf进行如下配置即可。

http {
    upstream  tomcat-host{
        server 192.168.1.201:8080 weight=3;
        server 192.168.1.202:8080;
        ip_hash;
    }  

    server {
        listen 80;
        server_name www.domain.com;  

        location / {
            proxy_pass              http://tomcat-host;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header        Host $http_host;
        }
    }
}

其中upstream是配置后端服务器列表、load balance的权重,ip_hash能够把来自同一个客户端的多次请求指派到某个固定的后端服务器,能一定程度的解决session问题,如果完美的解决集群后session问题,可以采用memcached的方式来处理。在server段配置中,主要就是proxy_pass,prxoy_pass目标地址就是上述设置的upstream名字,注意,不能缺少“http://”,proxy_set_header处理客户端的IP信息,由于前端是nginx,在tomcat的java应用中用request.getRemoteAddr(),得到的ip信息不再是客户端的ip,而是nginx服务器的ip,解决办法是需要修改java应用,大致可以使用如下代码:

String ip = request.getHeader("x-forwarded-for");

if (ip == null || "".equals(ip.trim())) {
	ip = request.getRemoteAddr();
} else {
	String[] ars = ip.split(",");
	ip = ars[ars.length-1].trim();
}

http状态码204理解

2011年10月31日 没有评论

HTTP的状态码有很多种,主要有1xx(临时响应)、2xx(成功)、3xx(已重定向)、4xx(请求错误)以及5xx(服务器错误)五个大类,每个大类还对应一些具体的分类。平时我们接触比较多的是200、400、500等。

这里我们主要讨论一下状态码204,在HTTP RFC 2616中关于204的描述如下:

If the client is a user agent, it SHOULD NOT change its document view from that which caused the request to be sent. This response is primarily intended to allow input for actions to take place without causing a change to the user agent’s active document view, although any new or updated metainformation SHOULD be applied to the document currently in the user agent’s active view.

意思等同于请求执行成功,但是没有数据,浏览器不用刷新页面.也不用导向新的页面。如何理解这段话呢。还是通过例子来说明吧,假设页面上有个form,提交的url为http-204.htm,提交form,正常情况下,页面会跳转到http-204.htm,但是如果http-204.htm的相应的状态码是204,此时页面就不会发生转跳,还是停留在当前页面。另外对于a标签,如果链接的页面响应码为204,页面也不会发生跳转。

所以对于一些提交到服务器处理的数据,只需要返回是否成功的情况下,可以考虑使用状态码204来作为返回信息,从而省掉多余的数据传输。

分类: web前端 标签: , ,

更改Centos的yum源

2011年10月31日 没有评论

前段时间一直使用http://centos.ustc.edu.cn/的源,最近发现更新有问题,遂换成默认的源,执行yum update的时候还是报错,似乎原因是还在使用默认的ustc的源,后来查了一下,把/etc/yum.repos.d目录下的文件全部干掉,即 rm -rf /etc/yum.repos.d/*就可以了。在国内163的源似乎也不错,添加方法为:

cd /etc/yum.repos.d/
wget http://mirrors.163.com/.help/CentOS-Base-163.repo
mv CentOS-Base-163.repo CentOS-Base.repo
yum makecache
yum update
分类: Linux 标签: ,

nginx设置wordpress静态资源压缩和过期时间设置

2011年10月27日 没有评论

通过对一些静态资源简单的设置,例如设置静态资源的过期时间、以及压缩,可以减少网站的加载时间,同时也能减少服务器的带宽。

在nginx下对静态的过期时间设置为:

        location ~* \.(ico|gif|bmp|jpg|jpeg|png|swf|js|css) {
            root    /var/www/netingcn.com;
            expires 7d;
        }

上述配置能对图片、flash、js、css文件设置了过期时间为7天,当用户在7天内再次访问网站时,大部分情况下都是直接使用本地的缓存,减少网络传输,从而加快了页面加载速度。

压缩的配置如下:

        gzip  on;
        gzip_min_length  1000;
        gzip_buffers     4 8k;
        gzip_types       text/plain application/x-javascript text/css;

对文本、js和css文件进行压缩,一般情况下,压缩后的大小是原始大小的25%,甚至更小。

centos、utunbu安装软件

2011年10月26日 没有评论

centos下配置好软件源,可以通过yum方便的安装需要的软件,例如:yum install vim,注意执行这样的操作需要root权限,切换到root下,或者用sudo yum install vim。不过有时候软件的名字和包名并不是一致的,在某个版本后centos就没有包含whois命令,当使用 yum install whois提示No package whois available,想要知道whois对于的包名,可以借助于yum search whois,执行后发现有jwhois.i686 : Internet whois/nicname client这行信息,然后使用yum install jwhois,顺利安装上whois了。

另外,在linux的另外一个发行版Ubuntu中,是采用apt来管理软件包的,对于的安装命令为apt-get install xxx,如果要搜索软件对应的包名,则是使用apt-cache search xxx

搜狗输入法–调整字词的顺序

2011年10月26日 没有评论

个人习惯,不喜欢词出现的位置经常变动,所以在设置–>高级–>动态词频前面的勾去掉,这样一来,词的位置就固定的,但比如我们经常输入的某个词默认不是第一个,这就比较不友好,不过可以通过两种方法来调整。一种是选中“动态词频”,然后再输入法输入那个那个词的拼音,通过数字选择哪个词,不出意外,下次再输入的时候就出现在第一位,如果还不是第一位,就多操作几盘,应该就可以在第一位了,然后再把“动态词频”前面的勾去掉即可;另外方法是输入词后,把鼠标移动到需要的那个词上面,会出现提示,选择“固定首位”即可。

对于单字的顺序调整,采用上述调整词的第二种方法即可。例如,在默认情况下,输入b出来的第一个字是“吧”,但是我更习惯第一个是“不”,调整方法就是输入b后,在出来的候选字上找到“不”,把鼠标指针移动到“不”上,在出来的提示框中点击“固定首位”,下次再输入“b”时,首位就变成“不”了。

javascript中如何判断某变量是否存在

2011年10月25日 没有评论

如果js代码中用到了某个变量,但是该变量又没有声明,只是script就会报错,大致是“变量xx没有定义”,可以用如下方法来判断一个变量是否已经定义了。

if (typeof(x) == "undefined") {
    alert("未定义");
}

该方法判断一个变量是否未定义,适用于两种情况:

1、x 从来没有出现过。

2、x 只是用 var 声明了,但没有赋值。

rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted

2011年10月25日 没有评论

出现rsync: failed to set times on “xxxx”: Operation not permitted的原因大致是对文件夹(或文件)xxxx没有操作权限。如果执行同步的用户是root,是不会有这样的问题,但是rsync也可以不使用root用户来进行同步,不使用root用户的情况下,即使使用了-o,-g,同步到目的文件夹的文件用户和组都变成了同步使用的用户,但是用-p后文件权限可以保留。当目的文件夹(或文件)xxxx事后做过修改使owner不是rsync使用的用户,即使xxxx的权限是777,也会出现上述错误。

分类: Linux 标签: , ,

PHP Warning: date(): It is not safe to rely on the system’s timezone settings

2011年10月25日 没有评论

通过观察nginx的错误日志,发现大量的如下错误:

PHP Warning: date(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Asia/Chongqing’ for ‘CST/8.0/no DST’ instead in

通过搜索,发现从php5.3 ,当对使用date()等函数时,如果timezone设置不正确,在每一次调用时间函数时,都会产生E_NOTICE 或者 E_WARNING 信息。知道了问题的根源,解决的方法有三种,任选一种即可。

一、在页头使用date_default_timezone_set()设置 date_default_timezone_set(‘PRC’);
二、在页头使用ini_set(‘date.timezone’,'Asia/Shanghai’);
三、修改php.ini。打开php5.ini查找date.timezone 去掉前面的分号修改成为:date.timezone =PRC

注意:上述设置都是针对中国大陆来设置的,同时PRC也可以用Asia/Shanghai,Asia/Chongqing,Asia/Urumqi来代替。

分类: Linux 标签: ,

rsync同步隐藏文件和排除文件

2011年10月21日 没有评论

rsync同步命令的基本写法

rsync 命令选项 源目录 目标目录

假如源目录写为 /var/www/就会把该目录下所有文件同步到目标目录,如果写为/var/www/*,那么当前目录下的隐藏文件(文件夹名或文件名是以”.”号开头)则不会被同步,不过子目录中的隐藏文件还是会被同步。

假设需要排除某个文件(或文件夹),可以用–exclude来指定,例如需要排除源目录下的dir1文件夹,可以写为:

/usr/bin/rsync -vzrtopg –exclude=dir1 /var/www/src/ /var/www/dest

可以同时排除多条,例如:

/usr/bin/rsync -vzrtopg –exclude=dir1 –exclude=dir2 /var/www/src/ /var/www/dest

除了上述方法,还可以通过–exclude-from来指定,例如:

/usr/bin/rsync -vzrtopg –exclude-from=exclude.list /var/www/src/ /var/www/dest

exclude.list文件中指定需要排除的列表,例如:

dir1
[0-9]*
dir2/.[a-z0-9]*
.svn

含义是排除/var/www/dir1、/var/www目录下所有以数字作为名字的文件和文件夹、/var/www/dir2/目录下的隐藏文件和/var/www目录下所有.svn文件夹,包括其子目录中的.svn文件夹。

注意:exclude和exclude-from前面都是有两个减号,如果漏写了一个,命令行不会报错,但是不能排除执行的文件或文件夹。

无觅相关文章插件,快速提升流量