一,什么是json

json是一种数据结构,易于人阅读和编写,同时也易于机器解析和生成。

json建构两种结构:

1,“名称/值”成对的集合,不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
2,值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。


json具有以下这些形式:

对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称 /值’ 对”之间使用“,”(逗号)分隔。


二,我遇到的问题
看下面的例子:
  1. <?php
  2. $string = '{"skus" : [
  3.                      {
  4.                         "SHADENAME" : null,
  5.                         "HEX_VALUE_STRING" : "",
  6.                         "SKU_BASE_ID" : 5912,
  7.                         "pricePlusTax" : 8400,
  8.                         "PRODUCT_SIZE" : "220g",
  9.                         "PRICE" : 8000,
  10.                         "SKU_ID" : "SKU5912",
  11.                         "INVENTORY_STATUS" : 2,
  12.                         "PRODUCT_CODE" : 016500
  13.                      }
  14.                   ],
  15.                 "shaded" : 0,
  16.                 "PROD_CAT_IMAGE_NAME" : 0165,
  17.                 "SKINTYPE_DESC" : "",
  18.                 "PRODUCT_ID" : "PROD2158"
  19.              }
  20. ';

  21. //下面的正则是把0615这样数据,转换成"0615"
  22. $pattern = "/:(\s*)0(\d+)/ui";
  23. $replacement = ':\\1"0\\2"';
  24. $string = preg_replace($pattern, $replacement, $string);

  25. $result = json_decode($string, true);
  26. print_r($result);

  27. $string = json_encode($result);
  28. echo $string;
  29. ?>
复制代码



操作和分析:

1,如果我把正则的东西拿掉的话,print_r($result);根本显示不了任何东西,问题就出在016500这样的数据上,他搞不清楚,这样的数据到底是字符串类型,还是数值类型。加上双引号就好了。

2,我把数组又重新$string = json_encode($result);并把json字符串打印出来,发现在json_encode会把016500加上双引号,由此可以断定,php代码中的那段json字符串是手动生成的。

3,即使像016500这样的数据没有加上双引号,我想json_decode也可以做出准确的判断,因为这个逻辑不复杂,所以我想json_decode是不是应当改进一下,还有我用php版本是5.2.3,不知道最新的版本有没有修正这个bug

posted @ 2011-01-27 17:44 小马歌 阅读(268) | 评论 (0)编辑 收藏
 
脱发是一种常见疾患,主要有斑秃,早秃,脂溢性脱发等。  防脱发的方法也有很多,包括食物疗法,梳头方法,防脱秘方和日常禁忌等。现在简单介绍几种防脱发的方法

防脱发方法一:防止秃头的早晚梳发
每天早晚防脱发方法各梳发百次,能相机头皮改善头发间的通风,由于头皮是容易出汗弄脏的地方,勤于梳发可能有助于防止秃头和头皮屑的发生。我们最好能费一点心思在自己的头发上,使头发保持光润的状态。

防脱发方法二:治疗脱发的食物。
摄取过多的糖分及盐分或动物性脂肪,有害于血液循环。这种人应该多喝生水或多吃蔬菜。含有丰富铁质的食品,瘦肉,鸡蛋的蛋白,菠菜,包心菜,芹菜,水果等都是最佳的治疗食物。脱发或秃头的人,头皮都已硬化,上述食品有助于软化头皮。

还有几种防脱发的方法小秘方:
防脱发的方法1、枸杞子酒:枸杞子100克浸泡在白酒400毫升里,2周后可以饮用。每天10--15毫升,治疗脱发。 
防脱发的方法2、生姜:将生姜切片,在脱发处反复擦拭,每天2--3次,可以促进毛发的生长。或把生姜切碎,放入水中煮开,把姜末滤出,用生姜水洗头。 
防脱发的方法3、何首乌粥:取何首乌30克、粳米100克、大枣3枚、冰糖少许,何首乌加水煎汤,去渣留汁,加粳米、大枣、冰糖同煮成粥,每日1次,改善 发质,治疗脱发。  
防脱发的方法4、淘米水:把淘米水搁置两天后会自然发酵,此时用来洗头可以改善干枯的发质,洗头时不用洗发剂,用淘米水洗完后直接用清水冲洗干净即可。
防脱发的方法5、 可以选用一些专门治疗脱发的洗发水和药物,如止脱1+1生发露,能增强头皮血液循环,促进毛发蛋白合成及新陈代谢,滋润肤发,使毛发再生;长期服用可使头 发乌黑亮丽,滋养毛发,防止头发分叉变质、白发、脱发等。
更多关于防脱发的方法信息咨询科发源电话:400-888-0050
posted @ 2010-12-25 20:33 小马歌 阅读(202) | 评论 (0)编辑 收藏
 

官方地址:http://www.wu-ftp.org
http://mirrors.bevc.net/wu-ftpd/wu-ftpd/wu-ftpd-2.6.2.tar.gz
ftp://ftp.pbone.net/mirror/archive.download.redhat.com/pub/redhat/linux/8.0/en/os/i386/RedHat/RPMS/wu-ftpd-2.6.2-8.i386.rpm

一、实验环境
AS4+wu-ftpd-2.6.2

二、安装<推荐rpm安装>
1、源码安装
# cd wu-ftpd-2.6.2/src
# cp ftpcmd.y ftpcmd.y.orig
# sed -e "s/=[ "$'\t'"][ "$'\t'"]*{/'=' {/" ftpcmd.y.orig > ftpcmd.y
# cd ..
# ./configure
# make
# make install

2、rpm安装
# rpm -ivh wu-ftpd-2.6.2-8.i386.rpm

三、实验要求
1、将组设置成real,guest,anonymous三个组进行控制;
2、用户身份有real,guest,anonymous,其中real只允许来自222.220.162.0/24网络,而guest,anonymous可来自所有网段,但除了60.179.149.0/24网段;
3、允许可用的被动端口,65501-65510端口
4、系统中小于499以及大于65000的UID与GID都被拒绝登录;
5、任何时候,最大的在线人数为30人,guest最多10人,anonymous0800-2000最多5人;
6、实体用户tangye被限制只以在主目录中工作,无法退出主目录,其他实体用户则不受限制;
7、有二个系统用户分别为user01,user02,将这个两个用户定为guest身份,设置主目录为/home/user01/data,/home/user02/data,并且设置传输速度最大为100KB/s;隶属于ftpuser
8、还有一个用户user03用户,上传\下传比例1.0,传输速度为64KB/s;
9、anonymous(匿名用户)的主目录设置为/home/ftp,并且限制anonymous一次连网最长30分钟,而且最多能下20个文件,20M的数据量,传输速度最快仅到32KB/s;上传的目录为/home/ftp/upload中,默认文件拥有ftp所属的组sys,上传速度最快为16KB/s;

四、系统配置
# useradd tangye
# groupadd ftpuser
# useradd -m -g ftpuser -s /sbin/nologin user01
# useradd -m -g ftpuser -s /sbin/nologin user02
# useradd -m -g ftpuser -s /sbin/nologin user03
# passwd user01          //分别设置密码为'123456'
# passwd user02
# passwd user03
# passwd tangye
# vi /etc/xinetd.d/wu-ftpd
service ftp
{
        socket_type             = stream
        wait                    = no
        user                    = root
        server                  = /usr/sbin/in.ftpd
        server_args             = -l -a
        log_on_success          += DURATION
        nice                    = 10
        disable                 = no   <===NO表示,启用wu-ftpd
}
# /etc/rc.d/init.d/xinetd restart
# netstat -tl | grep ftp    //出现以下提示,表示开启FTP成功
tcp        0      0 *:ftp                       *:*                         LISTEN
# vi /etc/ftpaccess         //主要配置文件
###############针对组设置#################
class   all             real,guest,anonymous *
class   allreal         real                  222.220.162.0/24
class   allguest        guest                 !60.179.149.0/24 *
class   allanonymous    anonymous             !60.179.149.0/24 *
###############针对主机设置###############
email postmaster@tglm.3322.org    //管理员的e-mail信箱
hostname tglm.3322.org            //主机名称
shutdown /etc/shutmsg             //用来设置关闭FTP服务的时间 2008 7 15 12 0 0130 0030 “提示文字” 表示2008/7/15的12:00要关闭FTP,在12点之前的一个半小时内(10:30),不允许新的连网登录,在12点三十分钟前(11:30)断掉已经存在的连网。FTP服务没关,只是无法登录。
loginfails 5                      //允许错误的登录次数5,超过则断开
log transfers anonymous,guest,real inbound,outbound //记录anonymous,guest,real用户文件传输上传下传动作,记录/var/log/xferlog文件中
passwd-check rfc822 warn          //匿名的验证方式<密码格式二种trivial和rfc822,前者必须含有@字符,后者字母和数安>;<动作二咱warn和enforce,前者用户输入错误密码,显示警告,及允许登录。后者,显示警告,并中断连网>
#################信息管理#################
readme README*    login
readme README*    cwd=*            //当用户登录或变换目录,若目的端有README*所有的文件,则向用户提醒用户的使用,
message /welcome.msg            login   //welocome.msg欢迎画面
message .message                cwd=*   //不公提醒用户使用,当登录或变换到任何文件名为.message的目录时,该文件内容会显示在屏幕上。
#################命令管理#################
compress        yes             all
tar             yes             all           //允许所有用户压缩解压指令
chmod           no              guest,anonymous   //不允许guest,anonymous设置目录文件权限
delete          no              anonymous
overwrite       no              anonymous
rename          no              anonymous     //不允许anonymous 删除改名
#################登录管理#################
deny-uid %-499 %65000-
deny-gid %-499 %65000-         //系统中小于499以及大于65000的UID、GID将被拒绝
allow-gid ftpuser              //允许ftpuser组登录
#################时间设置#################
timeout accept 120            //由于某种原因或网络带宽影响,无法立即登录。等待客户端120秒连网
timeout connect 120            //三次握手客户端回应ACK的时间120秒
timeout data    2400           //允许上传下载一个文件的时间,2400表示40分钟。建议大一点
timeout idle    1800           //多久没有和服务器交互,1800S会自动断线
timeout maxidle 1800           //与idle类似,客户端可以要求延长时间
#################主机连接数#################
<limit> <人物组名称> <连接数> <时间>     <被拒绝时显示内容>
limit        all        30      Any                /etc/ftpmaxnumber
limit      allguest     10      Any                /etc/ftpmaxnumber
limit    allanonymous    5      Any0800-2000       /etc/ftpmaxnumber
##################被动端口##################
passive ports <CIDR地址> <最小端口> <最大端口>
passive ports 0.0.0.0/0     65501     65510         //来自任何地方的IP在请求passive连网模式,将以65501-65510之间被动端口来连;
##################实体用户##################
restricted-uid tangye           //限制用户的主目录,无法到到达其他的目录中
#################guest设置##################
guestuser user01 user02 user03        //将user01-03设置成guest
guest-root /home/user01/data    user01
guest-root /home/user02/data    user02
guest-root /home/user03         user03       //设置用户的主目录
throughput      <根目录>       <次目录> <文件名> <bytes/s> <倍数> <地址>
throughput /home/user01/data      *         *      102400     -      *
throughput /home/user02/data      *         *      102400     -      *
throughput /home/user03           *         *       65536     -      *
ul-dl-rate     1     allguest   //这表示allguest组上传下载的
##############anonymous设置##################
linmit-time    anonymous     10                         //anonymous每次登录连网10分钟,如果超过10分钟,系统会强制断开
file-limit        out        20         allanonymous    //allanonymous组中任何用户,在一次登录中可以下载20个文件
data-limit        out      10485760     allanonymous     //allanonymous组中任何用户,在一次登录中可以下载10M数据
throughput     /home/ftp         *            *      32768     -      *
throughput     /home/ftp       /upload        *      16384     -      *
anonymous-root /home/ftp
upload      /home/ftp     /upload yes ftp sys 0666
# mkdir -pv /home/ftp/upload
# chown ftp:sys /home/ftp/upload
# mkdir /home/user01/data
# mkdir /home/user02/data
# chown user01:ftpuser /home/user01/data
# chown user02:ftpuser /home/user02/data
# cat /etc/shells |grep sbin       //确认/sbin/nologin在该文件内
# vi /welcome.msg
Welcome to my FTP site.
Now is the time ==> %T
The host name is %L
You are %U and from %R
There are %N person in my site, now.
If you have any problem please call me
%E
# vi /home/user01/data/.message
hello user01
# vi /home/user02/data/.message
hello user02
# vi /home/ftp/welcome.msg
Welcome to my FTP site.
Now is the time ==> %T
The host name is %L
You are %U and from %R
There are %N person in my site, now.
If you have any problem please call me
%E
# reboot

修改FTP默认端口方法
# vi /etc/xinetd.d/wu-ftpd
service wuftp         <===修改这里
{
        socket_type             = stream

# vi /etc/services //添加以下内容
wuftp    3344/tcp
# /etc/rc.d/init.d/xinetd restart

五、客户端命令
ftp> dir                        显示远程主机的内容
ftp> cd                         变换远程主机的目录
ftp> quit/close/bye/exit        退出远程主机
ftp> get file                   下载远程主机的文件
ftp> mget file                  取得所有文件
ftp> put file                   当本地端的文件,上传到远程主机
ftp> mput file                  将本地端的所有文件,上传到远程主机
ftp> delete file                删除远程主机文件
ftp> mkdir file                 建立目录
ftp> lcd                        变换本地端路径
ftp> ascii/binary               传输格式
ftp> help                       帮助命令

posted @ 2010-12-22 17:07 小马歌 阅读(829) | 评论 (0)编辑 收藏
 

1.rpm包可以在http://rpmfind.net/linux/RPM/WByName.html处下载得到,以rpm包方式安装非常简单
安装包到 http://www.wu-ftpd.org 下载最新版本的 WU-FTPD。
2.进入 Linux, 并以 root 的身份登陆。
tar zxvf wu-ftpd-2.6.0.tar.gz
cd /usr/local/src/wu-ftpd-2.6.0
3../configure
注意,在 64位元的 linux 上,可能会出现这种情况checking host system type... Invalid configuration
'x86_64-pc-linux-gnuoldld': machine 'x86_64-pc' not recognized
解决办法:修改 buildutils/config.guess , 将一行
UNAME_MACHINE=`(uname -m) 2>/dev/null' || UNAME_MACHINE=unknown
改为
#UNAME_MACHINE=`(uname -m) 2>/dev/null' || UNAME_MACHINE=unknown
UNAME_MACHINE=i686
4.在执行 ./configure 之后, 配置脚本会自动生成 Makefile. 如果在设置的过程中没有任何的错误, 我们就可以开始编译源码了. 相应的

命令为:

make
make install

是用make编译的时候可能出现
make[1]: *** [ftpcmd.c] Error 1
make[1]: Leaving directory /usr/local/src/wu-ftpd-2.6.0/src'
make: *** [all] Error 2
或者之类的错误
这时候可以通过在目录wu-ftpd-2.6.2/src/下使用以下代码进行修正。
cp ftpcmd.y ftpcmd.y.orig
sed -e "s/=[ "$'\t'"][ "$'\t'"]*{/'=' {/" ftpcmd.y.orig > ftpcmd.y

安装 WU-FTPD 至缺省的目录(/usr/sbin)下.

posted @ 2010-12-22 17:04 小马歌 阅读(556) | 评论 (0)编辑 收藏
 

from:http://niyunjiu.javaeye.com/blog/740812


其实这个Bug是由分两种情况的:

1.和Nginx无关,是针对CSS背景图片的。

一般用户不会碰到,更多的时候是开发者将自己的IE的缓存策略从默认的”自动”改为“每次访问都查询”才发生 的。特点是鼠标一旦浮动到有背景图片的地方,IE会不顾已经缓存的图片,自行去服务器再次获取图片,造成图片短暂消失。这个问题比较简单,可以通过以下脚 本解决。

1 <script type=”text/javascript”>// <![CDATA[
2 try {
3 document.execCommand('BackgroundImageCache', false, true);
4 } catch(e) {}
5 // ]]></script>

2. 但是实际上更常见的原因是Nginx上打开了Gzip压缩功能。

这个是IE6 的著名Bug,早在2002年就被人详细讨论过了,在IE7中有所改进,但微软永远也不会去修复IE6了。

根本原因是Nginx对于启用了Gzip的http上下文,即使你在之前的配置文件里声明过 gzip_disable “MSIE [1-6].”,Nginx不再对IE6用Gzip压缩了,但是送出的http报头却仍然采用了和Gzip压缩数据包相匹配的Vary: Accept-Encoding。IE6不认识这个报头,IE6对除了Vary: User-Agent的报头外,都不查询缓存,直接去服务器申请。更绝得是,不是使用查询文件是否更新,而是强行要求一份完整文件。(IE7总算客气了 点,就是先查询一下文件是否更新在下载,减轻了这个bug的影响)。

这个Bug的级别很高,靠前面1中的方法是不行的。在 NGINX中,通过add-header Cache-Control “post-check:3600, pre-check:43200″; ,象这里 介绍的方法, 也是不行的。通过一番痛苦的摸索,才发现要解决这个Bug,有两个方法,一个是使用Nginx的headers-more-nginx-module, 遇到User-Agent是IE6(或者不管三七二十一),修改报头为Vary: User-Agent。不过这个模块并不是标准配置,需要重新编译Nginx。

另一个更为简便易行的方式就是在诸如图片和CSS,JS文件存取的地方加上一下语句,显示关闭Gzip,并手工加上报头。

1 if ($http_user_agent ~ “MSIE [1-6].”) {
2 #Must explicitly turns off gzip to prevent Nginx set Vary:Accept-Encoding
3 #which will prevent IE6 from caching anything
4 gzip off;
5 add_header Vary “User-Agent”;
6 }
经过我的测试这样是可以解决问题的。这里只能用$http_user_agent来获取浏览器参数,曾经试过$ancient_browser,不 过没有成功。

另外,Nginx本身是有一个Gzip的Derective来控制Header的, 就是gzip_vary。设成gzip_vary off应该也能解决问题,但这是这个参数只能存在与http, location,server这些上下文里,不能添加到if上下文里,所以只能用gzip off; 把gzip完全给关了。

posted @ 2010-12-20 16:45 小马歌 阅读(313) | 评论 (0)编辑 收藏
 

from:http://codeigniter.org.cn/forums/thread-692-1-1.html

 

CI默认过滤了$_GET

需要传递get参数时一般直接 /参数一/参数二
详见手册说明:http://codeigniter.org.cn/user_guide/general/controllers.html#passinguri

但是有时候需要传递很长的复杂的url,比如常用的 http://www.nicewords.cn/index.php/controller/method/?backURL=http://baidu.com/blog/hi

这时 这种模式就行不通了。参数中本身的/会与默认的分隔符冲突

解决方案:

1) 在config.php 中,将‘uri_protocol’ 设置为 ‘PATH_INFO’.

PHP
$config['uri_protocol'] = "PATH_INFO";
复制代码



2) 在需要使用$_GET的之前加:

PHP
parse_str($_SERVER['QUERY_STRING'], $_GET);
复制代码



这样,形如 index.php/blog/list?parm=hello&page=52 就可以运行了。

官网说明:
http://codeigniter.com/wiki/QUERY_STRING_GET/

posted @ 2010-12-20 11:50 小马歌 阅读(196) | 评论 (0)编辑 收藏
 

NGINX 502错误排查

NGINX 502 Bad Gateway错误是FastCGI有问题,造成NGINX 502错误的可能性比较多。我将502 Bad Gateway错误有关的问题和排查方法列一下,先从FastCGI配置入手:

1.FastCGI进程是否已经启动

2.FastCGI worker进程数是否不够
运行 netstat -anpo | grep “php-cgi” | wc -l 判断是否接近FastCGI进程,接近配置文件中设置的数值,表明worker进程数设置太少

3.FastCGI执行时间过长
根据实际情况调高以下参数值
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;

4.FastCGI Buffer不够
nginx和apache一样,有前端缓冲限制,可以调整缓冲参数
fastcgi_buffer_size 32k;
fastcgi_buffers 8 32k;

5.Proxy Buffer不够
如果你用了Proxying,调整
proxy_buffer_size  16k;
proxy_buffers      4 16k;

6.https转发配置错误
正确的配置方法
server_name www.mydomain.com;
location /myproj/repos {
set $fixed_destination $http_destination;
if ( $http_destination ~* ^https(.*)$ )
{
set $fixed_destination http$1;
}
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Destination $fixed_destination;
proxy_pass http://subversion_hosts;
}

Nginx 413错误的排查:修改上传文件大小限制

在上传时nginx返回了413错误,查看log文件,显示的错误信息是:”413 Request Entity Too Large”, 于是在网上找了下“nginx 413错误”发现需要做以下设置:

nginx.conf增加 client_max_body_size的相关设置, 这个值默认是1m,可以增加到8m以增加提高文件大小限制;
如果运行的是php,那么还要检查php.ini,这个大小client_max_body_size要和php.ini中的如下值的最大值一致或者稍大,这样就不会因为提交数据大小不一致出现的错误。

post_max_size = 8M
upload_max_filesize = 2M

 

Nginx 400错误排查:HTTP头/Cookie过大

今天有人汇报nginx的HTTP400错误,而且这个HTTP400错误并不是每次都会出现的,查了一下发现nginx 400错误是由于request header过大,通常是由于cookie中写入了较长的字符串所引起的。

解决方法是不要在cookie里记录过多数据,如果实在需要的话可以考虑调整在nginx.conf中的client_header_buffer_size(默认1k)
若cookie太大,可能还需要调整large_client_header_buffers默认4k),该参数说明如下:
请求行如果超过buffer,就会报HTTP 414错误(URI Too Long)
nginx接受最长的HTTP头部大小必须比其中一个buffer大,否则就会报400的HTTP错误(Bad Request)。

posted @ 2010-12-17 13:16 小马歌 阅读(1852) | 评论 (0)编辑 收藏
 

系统
Red Hat Enterprise Linux AS release 4 (Nahant Update 7)
X86_64
软件
nginx-0.6.35.tar.gz
apache-tomcat-5.5.27.tar.gz
jdk-1_5_0_17-linux-amd64.rpm
参考

http://blog.chinaunix.net/u2/83793/showart_1354266.html

http://www.sudone.com/nginx/nginx_ssl.html

http://zys.8800.org/?p=286

部署
192.168.1.62 nginx 做负载均衡
192.168.1.64 tomcat1
192.168.1.66 tomcat2

分别在64和66上安装jdk和tomcat
环境变量设置 /etc/profile
export JAVA_HOME=/usr/java/jdk1.5.0_17
export PATH=$JAVA_HOME/bin/:$PATH
export CLASSPATH=$JAVA_HOME/lib:$CATALINA_HOME/lib:.
export CATALINA_BASE=/usr/local/tomcat-5.5.27
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
export CATALINA_HOME=/usr/local/tomcat-5.5.27

编辑 server.xml
去掉 cluster段的注释
增加
保存
由于linux本身不支持组播,因为需要添加组播
命令如下
route add -net 228.0.0.0 netmask 255.0.0.0 dev eth0
只在tomcat的其中一台机器添加就可以了
提醒一下,记得关闭iptables和selinux

现在去编译nginx
./configure --prefix=/usr/local/nginx-0.6.35 --with-md5=/usr/lib --with-sha1=/usr/lib --with-http_ssl_module --with-http_stub
_status_module
make -j10
make install

修改nginx.conf
worker_processes 4;
pid logs/nginx.pid;
worker_rlimit_nofile 51200;
events {
use epoll;
worker_connections 9812;
}

http {
include mime.types;
default_type application/octet-stream;

sendfile on;
tcp_nopush on;

keepalive_timeout 65;

gzip on;
upstream winalite.com
{
ip_hash;
server 192.168.1.64:80;
server 192.168.1.66:80;
}
server {
listen 443;
listen 80;
server_name ec.ben.com;

ssl on;
ssl_certificate /usr/local/nginx-0.6.35/key/server07.cer;
ssl_certificate_key /usr/local/nginx-0.6.35/key/server07.pem;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
error_page 497 “https://$host$uri?$args”;
location / {
root html;
index index.html index.htm;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://winalite.com;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
nginx的安装和参数就不详细叙述了。自己慢慢研究吧。我就这么配置起来的。现在session复制和负载均衡都正常了。

后续
现在跑应用的时候出现一个奇怪的现象
每次提交表单查询就会出现这样的现象。少个问号
https://192.168.1.62/wecs/poMemb … entMoney=1005337600
正常的应该是下面这样
https://192.168.1.62/wecs/poMemb … entMoney=1005337600
如果直接单独访问tomcat1和tomcat2都是正常的。就是通过nginx的负载均衡方式访问就会出现这样的现象
问题已经解决了,希望对大家能有帮助
error_page 497 “https://$host$uri$is_args$args”;
增加了$is_args

posted @ 2010-12-17 12:46 小马歌 阅读(793) | 评论 (0)编辑 收藏
 
首先,编译nginx时要打开SSL:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install

可以参考默认的配置文件,打开https访问:

    server {
        listen       443;
        server_name  localhost;

        ssl                  on;
        ssl_certificate      cert.pem;
        ssl_certificate_key  cert.key;

        ssl_session_timeout  5m;

        ssl_protocols  SSLv2 SSLv3 TLSv1;
        ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers   on;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }

接下来在nginx安装目录的conf下创建自行签名的证书。
生成RSA密钥:
[root@renzhe conf]# openssl dsaparam -rand -genkey -out myRSA.key 1024
0 semi-random bytes loaded
Generating DSA parameters, 1024 bit long prime
This could take some time
..+...+............+...................+................+...+......+.....+....+.....+.............................
+....+.+++++++++++++++++++++++++++++++++++++++++++++++++++*
.........+...............................+...........+.........+................+............+...+...........+...+
..............+.....+.+.+.....+...+.....+....+...................+............+............+..+.....+.........+...
...+......+......+..+.....................+...............+...............+.+............+...+++++++++++++++++++++
++++++++++++++++++++++++++++++*

生成CA密钥:(要输入一个自己记得的密码)
[root@renzhe conf]# openssl gendsa -des3 -out cert.key myRSA.key
Generating DSA key, 1024 bits
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:

用这个CA密钥来创建证书:
[root@renzhe conf]# openssl req -new -x509 -days 365 -key cert.key -out cert.pem
Enter pass phrase for cert.key:     ###此处输入上一步的密码
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:CN
State or Province Name (full name) [Berkshire]:GuangDong
Locality Name (eg, city) [Newbury]:GuangZhou
Organization Name (eg, company) [My Company Ltd]:Init5.cn
Organizational Unit Name (eg, section) []:security
Common Name (eg, your name or your server's hostname) []:security.init5.cn   ###此处最好跟https的域名保持一致
Email Address []:wulei5482@163.com

把证书设置为root专用:
[root@renzhe conf]# chmod 700 cert.*

现在nginx可以启动了,https也已经可以正常访问。
posted @ 2010-12-17 12:24 小马歌 阅读(433) | 评论 (0)编辑 收藏
 
1.jconsole是随着JDK 1.5而推出的。这是一个Java监测和管理控制台-JMX兼容的图形工具来监测Java虚拟机。它能够同时监测本地和远程的JVMs。详情可查看:jconsole工具介绍



2.VisualVM 集成了几个现有的JDK软件工具,轻量级内存和CPU信息概要能力。这个工具被设计为同时在生产和开发时使用,进一步提高监视的能力和Java SE平台的性能分析能力。


http://www.alphaworks.ibm.com/tech/heapanalyzer
3.HeapAnalyzer 能够通过它采用启发式搜索引擎和分析Java堆栈存储信息发现可能的Java堆栈泄漏区域,它通过解析Java堆栈存储信息,创建定向图表,变换他们成定向树和执行启发式搜索引擎。



4.PerfAnal 是在Java 2平台上为了分析应用表现的一个基于GUI的工具。您能使用PerfAnal的辩认性来查找出您需要调整的代码。



5.JAMon 是一个免费,简单,高性能,安全,允许开发者容易地监测生产应用程序的Java API。



6.Eclipse Memory Analyzer 是帮助您发现内存泄漏和减少记忆消耗量的一台快速和功能丰富的Java堆分析仪。



7.GCViewer 一个免费开源工具,使用Java VM属性-verbose:gc 和-Xloggc生成可视化数据。它也计算垃圾收集相关的性能指标(生产量、积累停留、最长的停留等等)。



如果您正在运行您的应用程序在HP - UX平台,看看下面:

8. HPjmeter

      1. 确定和诊断在HP-UX上运行的java 应用程序的问题;

      2. 监察正在运行的java应用程序和分析切面数据;

      3. 捕捉剖面数据与零制备时,使用JDK / JRE的5.0.04或更高;

      4. 在HP - UX , Linux和Windows 系统上运行HPjmeter控制台;

      5. 改善垃圾回收机制的表现。



9.HPjconfig 是为调整您的HP-UX 11i HPIntegrity Itanium? 和HP 9000 PA-RISC系统核心参量的Java配置工具,匹配您的应用的特征。 HPjconfig为专门制作您的HP-UX硬件工作台提供核心参量推荐。他提供了保持和还原的功能,根据您的客户的需要提供适合的建议,考虑到具体的Java和HP - UX的版本问题,HPjconfig决定所有最新的HP - UX的修补程序所需的Java性能和功能在系统上安装,并提示出所有遗失或取代补丁。



10.Java Out-of-Box Tool 一个独立的捆绑安装时将安装启动( RC )的脚本,修改核心参量,重建核心和重新起动系统。 在启动期间,启动脚本将修改系统tunables,因而为Java提供更好的Out of The Box行为。
posted @ 2010-12-14 16:24 小马歌 阅读(219) | 评论 (0)编辑 收藏
仅列出标题
共95页: First 上一页 56 57 58 59 60 61 62 63 64 下一页 Last