人若无名,便可专心练剑

nginx+tomcat+memcache 集成

  |   0 评论   |   3,097 浏览

环境:


nginx: 192.168.10.111
tomcat1(7.xx):192.168.10.112
tomcat2(7.xx):192.168.10.110 
memcached:192.168.10.112


nginx:用于负载均衡
tomcat1,tomcat2 用于后端应用部署
memcached  用于tomcat1,tomcat2 session同步

一:nginx配置:
location / {
            proxy_pass http://localhost;
 }
 location /status {
     stub_status on;
        access_log off;     
  }
。。。。其他省略。。。。。。
upstream localhost {
        server 192.168.10.110:8080;
        server 192.168.10.112:8080;
}
二:memcached 安装启动
安装,略。。。。(很简单,编译安装)
启动:


memcached -d -m 64 -p 11211 -u root -c 256 -P /var/run/memcached.pid 


(配置参数视自己的服务器而定吧)


三:tomcat配置

tomcat:所需jar包:

tomcat(memecached)配置 
位置:tomcat 安装目录下 conf/context.xml
加入如下配置:
  <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
    memcachedNodes="n1:192.168.10.112:11211"
    sticky="true"
    sessionBackupAsync="false"
    lockingMode="uriPattern:/hy-dp-bgweb"
    requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
    transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
    />
两个tomcat 均要进行此项配置:并需要将 相应jar包 拷贝到 tomcat的lib目录

quartz 定时job的使用

  |   0 评论   |   3,065 浏览

demo使用官方最新版本 详情demo移步:https://github.com/c2y2/quartzDemo

示例代码如下:

JobDetail job = JobBuilder.newJob(SimpleJob.class).
                     withIdentity( "JobDetail-1", "SimpleJob")
                     .build(); 
           
           Trigger trigger = TriggerBuilder. newTrigger()
                     .withIdentity( "trigger_1", "SimpleJob")
                     .withSchedule(
                                SimpleScheduleBuilder
                                . simpleSchedule()
                                .withIntervalInMilliseconds(500) //每分钟执行一次
                                .withRepeatCount(1)) //重复次数(2次 0,1)
                     .build();
           
           SchedulerFactory sf = new StdSchedulerFactory();
            try {
                Scheduler scheduler = sf.getScheduler();
                 scheduler.scheduleJob( job, trigger);
                 scheduler.start();
           } catch (SchedulerException e) {
                
           }
那么我们要实现具体步骤分为以下:
第一:建立job的实现类
第二:生成jobdetail详细类用于调用(JobBuilder)
第三:生成Trigger 触发类 (执行频度,执行时间,等等。另:调度类中需要设置调度规则 )
第四:生成SchedulerFactory 用于获取scheduler(调度类)
第五:用调度类调度job和trigger
第六:执行job(如有需要,我们也可以停止job)

附:时间格式


==========================================================================
格式:秒 分钟 小时 日期 月份 星期 年                                                                                  ==
==========================================================================
表2 Cron表示式示例
"0 0 12 * * ? "     每天12点运行
"0 15 10 ? * *"     每天10:15运行
"0 15 10 * * ? *"   每天10:15运行
"0 15 10 * * ? 2008"  在2008年的每天10:15运行
"0 * 14 * * ?"    每天14点到15点之间每分钟运行一次,开始于14:00,结束于14:59。
"0 0/5 14 * * ?"   每天14点到15点每5分钟运行一次,开始于14:00,结束于14:55。
"0 0/5 14,18 * * ?"  每天14点到15点每5分钟运行一次,此外每天18点到19点每5钟也运行一次。
"0 0-5 14 * * ?"  每天14:00点到14:05,每分钟运行一次。
"0 10,44 14 ? 3 WED"  3月每周三的14:10和14:44,各运行一次。
"0 15 10 ? * MON-FRI"  每周一,二,三,四,五的10:15分运行。
"0 15 10 15 * ?" 每月15日10:15分运行。
"0 15 10 L * ?" 每月最后一天10:15分运行。
"0 15 10 ? * 6L" 每月最后一个星期五10:15分运行。
"0 15 10 ? * 6L 2007-2009" 在2007,2008,2009年每个月的最后一个星期五的10:15分运行。
"0 15 10 ? * 6#3" 每月第三个星期五的10:15分运行。



隐藏tomcat 版本信息

  |   0 评论   |   3,773 浏览

1.找到tomcat目录下lib/catalina.jar的文件

2,复制备份,然后新建目录并将catalina.jar复制进去并 解压jar xvf catalina.jar

3,修改 org/apache/catalina/util/ServerInfo.properties

如:

server.info=httpd_server
server.number=1.0
server.built=May 19 2014 11:49:25
以上是修改后的


4,打包 jar cvf catalina.jar  *

5,将新生成的jar包 catalina.jar 替换掉lib下的catalina.jar包,然后服务器重启,这样就能将

   服务器版本信息隐藏


让jvm运行在server模式

  |   0 评论   |   3,455 浏览
jvm 运行模式(一般默认client模式)
-client 
特点是启动速度比较快,但运行时性能和内存管理效率不高,通常用于客户端应用程序或者PC应用开发和调试。
-server
特点是启动速度比较慢,但运行时性能和内存管理效率很高,适用于生产环境。64为默认server模式


针对32位机如果运行模式工作在client模式 我们可以在jre/lib/i386/ 目录下找到jvm.cfg 

内容如下
-server KNOWN
-client IF_SERVER_CLASS -server
-hotspot ALIASED_TO -client
-classic WARN
-native ERROR
-green ERROR

我们只需要将client和server的位置交换一下即可,将server放首位就代表默认采用-server模式,将client放首位

代表将采用-client模式。

web 安全色

  |   0 评论   |   3,304 浏览

000000 000033 000066 000099 0000CC 0000FF
003300 003333 003366 003399 0033CC 0033FF
006600 006633 006666 006699 0066CC 0066FF
009900 009933 009966 009999 0099CC 0099FF
00CC00 00CC33 00CC66 00CC99 00CCCC 00CCFF
00FF00 00FF33 00FF66 00FF99 00FFCC 00FFFF
330000 330033 330066 330099 3300CC 3300FF
333300 333333 333366 333399 3333CC 3333FF
336600 336633 336666 336699 3366CC 3366FF
339900 339933 339966 339999 3399CC 3399FF
33CC00 33CC33 33CC66 33CC99 33CCCC 33CCFF
33FF00 33FF33 33FF66 33FF99 33FFCC 33FFFF
660000 660033 660066 660099 6600CC 6600FF
663300 663333 663366 663399 6633CC 6633FF
666600 666633 666666 666699 6666CC 6666FF
669900 669933 669966 669999 6699CC 6699FF
66CC00 66CC33 66CC66 66CC99 66CCCC 66CCFF
66FF00 66FF33 66FF66 66FF99 66FFCC 66FFFF
990000 990033 990066 990099 9900CC 9900FF
993300 993333 993366 993399 9933CC 9933FF
996600 996633 996666 996699 9966CC 9966FF
999900 999933 999966 999999 9999CC 9999FF
99CC00 99CC33 99CC66 99CC99 99CCCC 99CCFF
99FF00 99FF33 99FF66 99FF99 99FFCC 99FFFF
CC0000 CC0033 CC0066 CC0099 CC00CC CC00FF
CC3300 CC3333 CC3366 CC3399 CC33CC CC33FF
CC6600 CC6633 CC6666 CC6699 CC66CC CC66FF
CC9900 CC9933 CC9966 CC9999 CC99CC CC99FF
CCCC00 CCCC33 CCCC66 CCCC99 CCCCCC CCCCFF
CCFF00 CCFF33 CCFF66 CCFF99 CCFFCC CCFFFF
FF0000 FF0033 FF0066 FF0099 FF00CC FF00FF
FF3300 FF3333 FF3366 FF3399 FF33CC FF33FF
FF6600 FF6633 FF6666 FF6699 FF66CC FF66FF
FF9900 FF9933 FF9966 FF9999 FF99CC FF99FF
FFCC00 FFCC33 FFCC66 FFCC99 FFCCCC FFCCFF
FFFF00 FFFF33 FFFF66 FFFF99 FFFFCC FFFFFF

备用:很实用:来源:http://www.cnblogs.com/MingDe/archive/2010/06/30/1768292.html

shell 中 $$,$@,$1 等的含义

  |   0 评论   |   3,141 浏览
linux中shell变量$#,$@,$0,$1,$2的含义解释: 
变量说明: 
$$ 
Shell本身的PID(ProcessID) 
$! 
Shell最后运行的后台Process的PID 
$? 
最后运行的命令的结束代码(返回值) 
$- 
使用Set命令设定的Flag一览 
$* 
所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 
$@ 
所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。 
$# 
添加到Shell的参数个数 
$0 
Shell本身的文件名 
$1~$n 
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。 

从最近 公司服务器被黑到恢复的一些安全建议

  |   0 评论   |   2,949 浏览

1,作为服务器无论是内网还是直接暴露在公网没什么区别都是非安全的,因此必须要做好安全措施。

2,防火墙必须开启,开启必要的端口关掉不必要的端口,除必须的服务端口外,其余端口尽量选择非标准端口(端口开放越多,面临安全风险越高,标准端口与非标准端口比较成为目标可能性越大)。

3,开启必须的服务,关闭非必要的服务(服务越多,面临安全风险越高)。

4,做好权限控制(特别是上传目录,并尽可能的使应用采用非root权限运行,数据库的权限同样如此)。

5,做好关键位置文件的保护(如:、/etc/passwd ,以及一些系统关键命令程序如 /bin/ls 等,可以采用一些措施禁如chattr 命令禁止修改,替换等,修改完后可以删除或者修改chattr命令,这对于那些脚本小子能进行一定的保护)。

6,搞乱环境配置 (采用非标准环境,如系统一些关键命令的一些位置,常用目录进行改名或者移动到其他目录,这样即使被黑进来,一个奇葩的环境也会让大部分小黑望而却步,当然除非你已经被列为特定目标)。

7,做好相关应用服务器的配置(特别是安全配置)

8,对日志进行保护或备份,且尽可能的进行异地存储(日志对于后期分析漏洞或入侵乃至bug跟踪都有着至关重要的作用,因此必须保护好,防止被黑后日志记录直接被抹)。

9,尽可能设计安全的系统,或者做好安全审计(安全类问题不仅仅某一方面,同样遵循木桶原理)。

10,建立键全监控系统,并做好应急响应恢复机制(努力保证对外服务的不间断正常运行)。