月度存档: 七月 2012

linux:vim的退格删除键不能用

vim7.3的退格删除键不能用
backspace 无法删除文本

===========
解决办法:
~/.vimrc中加入
set backspace=indent,eol,start
即可,测试时需要注销重新登录

或者进入vim后执行:set backspace=indent,eol,start

可直接生效

jsp中取客户端ip

一直以来取客户端的ip使用的是:

getRequest().getRemoteAddr();

在绝大多数情况下,这是可以正确取到客户端的ip的。

昨天服务器改为使用nginx转发后,无法获得到客户端的真实ip,只能取到nginx所以的服的ip。

在网上查询后了角到nginx要设置http header: X-Real-IP才可以取到真实IP。

proxy_set_header        X-Real-IP       $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

设置之后,果断无效,查询对比多次,配置无误。

最后终于发现:这种情况下,应该改为先取header中的x-real-ip。如果为空的话,再去调用getRemoteAddr();

String realIP = getRequest().getHeader(“X-Real-IP”);
return realIP != null ? realIP : getRequest().getRemoteAddr();

这样似乎解决掉问题了。

但又遇到另一个棘手的事情了。

我们的程序要通过一个统一的nginx进行proxy转发至目标主机,然后在目标主机上再用proxy转发至目标主机tomcat所在端口8080。通过这两次转发后,x-real-ip取到的是第一次进行转发的主机ip,这仍旧不是我们所希望的。

我们所要求的是无论通过直接访问目标主机,还是通过proxy代理访问主机,都希望获得客户端请求的ip,最终解决方案如下:

在统一nginx转发的proxy上配置:

proxy_set_header        X-Real-IP       $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

在目标主机的nginx上proxy配置:

proxy_set_header X-Forwarded-For  $http_x_forwarded_for;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

修改代码如下:

String address = getRequest().getHeader(“X-Forwarded-For”);
if (address != null && address.length() > 0
&& !”unknown”.equalsIgnoreCase(address)) {
return address;
}
String realIP = getRequest().getHeader(“X-Real-IP”);
return realIP != null ? realIP : getRequest().getRemoteAddr();

呜呼,终于能正确的取到客户端ip了。

dev-c++ debug problems

Your project does not have debugging information, do you want to enable debugging and rebuild your project

http://tempvariable.blogspot.com/2008/04/dev-c-can-debug.html

 

  1. “Go to the “Tools/Compiler Options” menu.
  2. Put “-g” (without the quotation marks) in both boxes on the Compiler tab.
  3. Make sure to check both boxes labeled “Add the following commands …”.”

no resolver defined to resolve

2012年7月6日晚配置nginx

location /wgame {
proxy_pass http://s$arg_GroupID.sina.rxwl.263wan.com ;
}

报错:

no resolver defined to resolve s1.sina.rxwl.263wan.com,

修改nginx config如下:

location /wgame {
resolver 8.8.8.8;
proxy_pass http://s$arg_GroupID.sina.rxwl.263wan.com ;
}

顺利通过。

ok解决问题。