mod_jk
MOD制作详细教程(不断更新中)

以下我已经掌握的部分,和大家分享,内容会不断更新,已有的内容中的不足欢迎大家补充,我也会加上去。
MOD基础部分MOD的核心文件为MOD.XML,在此文件里包含所有需要进入MOD的xml文件其他XML文件都可以从Mod SDK\CnC3Xml文件夹下找出来。
如果要修改武器的话,可以找到weapon.xml,但是我想做出我的武器来,不想把那么多原始武器信息也一起放入MOD,我是这么做的:打开weapon.xml 找出头和尾《?xml version="1.0" encoding="us-ascii" ?》《AssetDeclaration xmlns="uri::eala:asset"》《Tags /》《Includes》《Includetype="all"source="DATA:GlobalData/GlobalDefines.xml" /》《/Includes》中间是武器设置语句,我可以把需要的武器设置复制进来最后用《/AssetDeclaration》结尾以对应上面的《AssetDeclarationxmlns="uri::eala:asset"》xml语句和HTML语句是一样需要开头和结尾的,会HTML语言的人应该没有问题。
mod.xml此文件的修改可以在samplemod里面的mod.xml为基础修改语法为《Include type="all" source="DATA:SampleMod/Data/SampleUpdatedLogicCommand.xml"/》其中SampleUpdatedLogicCommand.xml是包含的文件名,DATA:SampleMod 是说明MOD的名称,如果MOD文件夹名称是supernod ,那么就写成DATA:supernod其中《Include type="reference" source="DATA:static.xml" /》《Include type="reference" source="DATA:global.xml" /》这两句我暂时认为是必须的,曾经去掉之后出错过。
密码学常识

密码学常识□秋雨灰灰目录密码常识字母表顺序-数字进制转换密码Mod算法倒序间隔字母频率凯撒密码(Caesar Shifts, Simple Shift)凯撒移位(中文版)栅栏密码(The Rail-Fence Cipher)维吉尼亚密码(Vigenère Cipher)Polybius密码(Polybius Cipher)ADFGX/ADFGVX密码(ADFGX/ADFGVX Cipher) ADFGXADFGVX乘法密码(Multiplication Cipher)仿射密码(Affine Shift)希尔密码(Hill Cipher)加密解密Playfair密码(Playfair Cipher)莫尔斯电码置换密码(Transposition Cipher)替代密码(Monoalphabetic Substitution)字母表数字字母表代码反字母表随机乱序字母棋盘密码键盘密码键盘移位软键盘密码数字小键盘密码手机键盘密码数字记忆编码百度/Google/网页字符百度字符(GB2312)Google字符(URI)网页编码(Unicode)Alt+数字小键盘MD5【密码常识】字母表顺序-数字加密的时候,经常要把A至Z这26个字母转换成数字,最常见的一种方法就是取字母表中的数字序号。
A代表1,B代表2,C代表3……字母 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z数字 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26进制转换密码例如二进制:1110 10101 1101 10 101 10010 1111 1110 101转为十进制:14 21 13 2 5 18 15 14 5对应字母表:numberMod算法我们可以对字母序号进行数学运算,然后把所得的结果作为密文。
apache2.2.16+mod_jk.1.2.30+tomcat7.0.2集群session复制

Apache+tomcat集群+session复制作者:吴钢奇时间:2010/09/23MSN:w7374520@目标:在服务器上搭建1个apache+4个tomcat应用,tomcat之间实现session复制。
Tomcat解析所有的网页,apache此刻的作用就是做代理。
参考了很多网上好文档,非常感谢前人无私奉献,谢谢!1、环境硬件:一个四核3.0CPU,4G内存,200GSATA硬盘系统:Redhat AS 5.3源码包下载:1、Httpd下载/apache//httpd/httpd-2.2.16.tar.gz2、Tomcat下载//tomcat/tomcat-7/v7.0.2-beta/bin/apache-tomcat-7.0.2.tar.gz3、mod_jk 下载地址:/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.30/tomcat-connectors-1.2.30-src.tar.gz2、安装apache[root@adman ~]# cd /usr/local/src/ #进入源码包下载目录,这个可以随便定[root@adman src]# tar zxvf httpd-2.2.16.tar.gz #解压缩[root@adman src]# cd httpd-2.2.16 #进入解压目录[root@adman httpd-2.2.16]# ./configure --prefix=/usr/local/apache2 \> --enable-cache \ #configure参数根据自己的需要添加> --enable-mem-cache \ —可以使用help获得相关参数> --with-mpm=prefork \> --enable-so \> --enable-rewrite \> --enable-ssl[root@adman httpd-2.2.16]# make #编译[root@adman httpd-2.2.16]# make install #安装[root@adman httpd-2.2.16]# cd /usr/local/apache2[root@adman apache2]# vim conf/httpd.conf52 # LoadModule foo_module modules/mod_foo.so53 LoadModule jk_module modules/mod_jk.so #添加jk模块,模块是编译jk1.2.30得到106 DocumentRoot "/usr/local/webapps" #修改文档主目录133 <Directory "/usr/local /webapps"> #修改文档主目录146 Options Indexes FollowSymLinks158 Order allow,deny159 Allow from all160161 </Directory>416 Include conf/mod_jk.conf #添加jk配置文件,在末尾直接添加如果apache日志出现: session cache no configuration 警告信息请添加下面两行。
JAVA技巧(mod_jk配置过程)

力就上不去了。
第四个问题Examda提示: 是关于worker.localnode.connection_pool_timeout=600和tomcat设置中的 connectionTimeout="600000",一开始worker设置中使用的是缺省值600s,而tomcat端口中设置是从原来http端口中拷贝过来 的是20000ms,后来在生产环境发现每个服务器每隔十几分钟会有一条“refuse connect”日志,在上找了一下也语焉不详。后来 分析可能是jk端timeout设置和tomcat短设置不一样,jk端timeout时间长,tomcat端时间短,导致连接可能处于“half-open”状 态,可以发送请求,但是tomcat端不能响应,经过参数调整后这个问题解决。这个参数最终定为600s是因为设定为20s时会经 常有大量time_wait状态的连接,影响服务器性能,而如果定为太大,会导致服务器活动连接数太大,也会影响服务器性 能,600s是一个比较合适的中间值。 第五个问题是一个低级错误,在写jkmount时,将JkMount /community/* localnode写成JkMount //community/* localnode, 导致相关url无法访问,而且非常难查,真是一个猥琐的错误!所以对待配置文件需要非常仔细,要字字查看才行。
CentOS5.3编译安装mod_jk 1.2.15 链接器 整合apache httpd和tomcat

重新启动Apache和Tomcat。。。
[root@localhost bin]# ./shutdown.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
###### Where to put jk logs
JkLogFile /usr/local/apache2/logs/mod_jk.log
###### Set the jk log level [debug/error/info]
JkLogLevel info
###### Select the log format
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300
-------------------
worker.list=worker1
####### Set properties for worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
Using JRE_HOME: /usr/java/jdk1.7.0
mods名词解释

mods名词解释模组(Mods)全名为Modification,字面意思为“修改”,是指对游戏进行修改的程序或插件。
在游戏界中,Mod一般指的是游戏玩家或第三方开发者自行开发的增强游戏体验的程序。
下面是对Mods的名词解释:1. 游戏改版:Mods可以改变游戏原有的功能、场景、人物、道具等,为玩家提供了新的体验和游戏内容。
通过安装Mods,玩家可以享受到游戏中原本没有的功能和特色。
2. 自定义内容:一些游戏开发者在设计游戏时,留给玩家一些空间来进行自定义创作。
通过安装Mods,玩家可以自定义创建新的角色、道具、地图等内容,使游戏更具个性和趣味性。
3. 游戏优化:有些Mods专注于提高游戏性能和体验,通过优化游戏内部的运行机制,提高帧率、减少卡顿等问题。
4. 存储文件:Mods通过修改游戏的存储文件,实现对游戏的改动。
Mods可以修改游戏内的文本、图像、音频等文件,为游戏添加新的元素和特性。
5. 社区创作:Mods通常是由游戏玩家或第三方开发者创建,并通过在线社区共享给其他玩家。
这种社区创作的方式促进了游戏玩家之间的交流和合作。
6. 合法性:从法律角度来看,是否允许使用Mods是因游戏发行商而异。
有些游戏发行商支持并鼓励玩家使用Mods,而有些则对其持有保守态度。
在某些情况下,非官方的Mods可能会侵犯游戏版权,因此在使用Mods时必须注意合法性。
7. 兼容性和稳定性:由于每个Mods都是由不同的开发者开发的,所以在使用Mods时可能会遇到兼容性和稳定性的问题。
在安装Mods之前,玩家需要仔细读取Mods的说明文件,并确认其与游戏版本相互配合,以确保游戏的正常运行和稳定性。
总的来说,Mods是为游戏玩家提供了个性化和改进游戏体验的方式。
通过安装和使用Mods,玩家可以享受到相对原版游戏更多的内容和乐趣。
mod教程

mod教程MOD(short for modification)是指对电子游戏、软件或硬件的修改,以改变原有的游戏玩法、添加新的功能或改进游戏体验。
MOD通常由游戏玩家自行制作或下载安装,而不是由游戏开发商提供。
下面是一份关于MOD的教程,帮助初学者了解MOD的创建和使用。
一、MOD的制作要制作一个MOD,你需要掌握一些基础的编程知识和技巧。
首先,选择一个适合你的游戏的开发工具,比如Unity、Unreal Engine等。
然后学习相关的编程语言,比如C++、C#、Lua等。
接着,了解游戏的资源文件结构和API接口,以便能够修改和添加新的内容。
二、MOD的安装1. 下载MOD文件:在MOD的官方网站或社区论坛上,你可以找到大量其他玩家制作的MOD。
选择你感兴趣的MOD并下载到你的电脑上。
2. 解压MOD文件:MOD文件通常是一个压缩包,你需要使用一个解压软件将其解压缩到游戏的根目录下或指定的MOD文件夹中。
3. 启动游戏:打开游戏,进入MOD管理界面。
在该界面中,你可以查看已安装的MOD列表,并选择要使用的MOD。
4. 激活MOD:在MOD管理界面中,找到你下载和解压的MOD,点击激活按钮。
三、MOD的注意事项1. 确保游戏版本与MOD兼容:有些MOD只能在特定版本的游戏中使用,所以在下载和安装MOD之前,确保你的游戏版本与MOD兼容。
2. 选择安全可靠的MOD:尽量选择官方网站或知名的MOD社区来下载MOD,以保证其安全性和质量。
3. 指定MOD的加载顺序:如果你安装了多个MOD,有时它们之间可能会产生冲突。
在MOD管理界面中,你可以指定MOD的加载顺序,以解决可能出现的冲突问题。
总结:MOD为玩家提供了丰富多样的游戏体验,使游戏更具个性化,增加了游戏的可玩性和乐趣。
通过学习制作和安装MOD,你可以自由地改变游戏的各个方面,创造属于自己的独特游戏世界。
希望这篇MOD教程对你有所帮助!。
Linux平台Apache高可用双机集群Tomcat负载均衡集群配置手册

Linux平台Apache双机高可用集群+ Tomcat负载均衡集群配置手册在这个配置手册中,使用的操作系统和软件清单如下:操作系统:RedHat Enterprise Linux AS4 U4 64bit(安装时最好选择完全安装)软件:jdk-1_5_0_15-linux-amd64.binTomcat5.5.26httpd-2.0.63.tar.gzjakarta-tomcat-connectors-jk2-src-current.tar.gzipvsadm-1.24.tar.gzlibnet.tar.gzheartbeat-2.1.3-3.el4.centos.x86_64.rpmheartbeat-pils-2.1.3-3.el4.centos.x86_64.rpmheartbeat-stonith-2.1.3-3.el4.centos.x86_64.rpm因为是linux操作系统,所以在安装软件时请使用对应自己操作系统内核的软件,这是整个集群成功的第一步。
本配置手册中的软件都是对应RedHat Enterprise Linux AS4 U4 64bit 这个版本的软件。
jdk-1_5_0_15-linux-amd64.binJAVA环境包使用的是64位1.5版Tomcat版本为公司指定的5.5版本Apache为2.0.63版jakarta-tomcat-connectors-jk2-src-current.tar.gz是连接Apache和Tomcat的连接插件,具体可以去Tomcat网站上查找下载ipvsadm-1.24.tar.gzlibnet.tar.gz这两个是用于2台Apache服务器虚拟一个IP地址使用heartbeat-2.1.3-3.el4.centos.x86_64.rpmheartbeat-pils-2.1.3-3.el4.centos.x86_64.rpmheartbeat-stonith-2.1.3-3.el4.centos.x86_64.rpm这3个软件是用于2台Apache服务器之间的心跳检测结构图Apache1以以以以以Tomcat1Tomcat2Apache22台Tomcat服务器使用Tomcat软件可以自己做集群,2台Apache服务器需要其他的软件实现虚拟服务器功能,工作站访问虚拟IP地址访问2台Apache服务器,再通过Apache服务器访问Tomcat服务器第3 页总13 页1.安装JAVA环境包1)输入命令:./ jdk-1_5_0_15-linux-amd64.bin执行完毕后,会在当前目录下生成一个JDK-1.5.0_15的文件夹2)在 /usr/local/下新建一个名字为JAVA文件夹,将个JDK-1.5.0_15的文件夹拷入到该文件夹下3)设置环境变量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 mod_jk 模块的总体功能
由于 tomcat 的 HTTP 处理部分都由 Java 所写(5.5.12 版本以后出现了 native 库,用以 提高其 I/O 和 SSL 的性能[1]),在高并发的情况下负载较高。而 apache 对于静态文件的处 理能力比 tomcat 强,所以 tomcat 开发组开发了与 apache 结合使用的 mod_jk 模块。该协议 由 apache 作请求代理,将 HTTP 协议的请求转化为 AJP 协议包,并传给后端的 tomcat。mod_jk 和 apache 现在普遍使用 AJP1.3 协议[2]。它是一个二进制格式的协议,比 字符格式的 HTTP 协议解析速度要快。
由于 apache 的基本处理方式(prefork 和 worker 模式)就是一个线程/进程负责一个 连接,所以 mod_jk 各线程中对于网络 IO 处理都是阻塞的。
2.2 worker 对象
从具体的 worker 对象的角度来讲,mod_jk 由 ajp_worker、jni_worker、lb_worker 和 status_worker 组成。这些对象参考了设计模式中 factory 的模型。每类 worker 都有生产 workers 的 factory。
/* 初始化及合并 jk 模块的配置结构体*/
jk_cmds,
/* 所有在 apahce 中的命令及操作函数 */
jk_register_hooks
/* 具体的操作函数处理钩子 */
};
3.1.2 mod_jk 模块的主要处理函数
/* mod_jk 将各处理函数挂到相应的钩子上,钩子实际上就是一些函数指针。针对某个 HTTP 请求,这些函数会自上而下执行。*/
在 mod_jk 中,线程内(外)的同步均是通过线程锁(pthread_mutex_lock)来实现的。 而进程之间的全局同步,是用文件记录锁(flock 或 fcntmSize 大小的文件,然后 mmap 到内存,由于各进 程 mmap 到内存的是相同的镜像,所以可以实现数据的共享,但是写入共享内存时,要做好 互斥。
由于 mod_jk 模块是 apache 的处理模块,本节主要是讲述 mod_jk 模块从客户端到后端 服务器的处理流程。中间会涉及一些 apache 模块的一些结构。
3.1 mod_jk 模块在 apache 中的定义
3.1.1 mod_jk 定义
/* 这是 jk 模块的主要定义结构体*/
module AP_MODULE_DECLARE_DATA jk_module = {
STANDARD20_MODULE_STUFF,
NULL,
/* dir config creater */
NULL,
/* dir merger --- default is to override */
create_jk_config,
/*创建 jk 模块的配置结构体*/
merge_jk_config,
static void jk_register_hooks(apr_pool_t * p)
{
/* 该函数在 apache 读入配置后运行,用以初始化全局互斥锁,jk 日志,全局变量的初 始化,以及读入 workers.properties、uriworkermap.properties 文件,初始化各 worker 的属性,建立 worker 名称到 worker 结构体的映射,uri 到 worker 的映射*/
2 mod_jk 模块的框架
2.1 线程
从宏观上来讲,mod_jk 由一个 watchdog 线程和一组 worker 线程(进程)组成。 watchdog 线程是在 apache 内部新创建的线程,它是一个维护线程。每隔 JkWatchdogInterval 的时间(当然,所有 worker 线程也有一个统一的 worker.maintain 时 间,JkWatchdogInterval 应该至少大于 worker.maintain),它会扫描所有 worker 线程。 watchdog 线程会检查每个 worker 线程的空闲链接、负载情况、与后端的链接情况,并使共 享内存同步。worker 线程是就是一些 ajp13,ajp14,jni,lb 或 status 类型的线程,负责 所有实际的工作。
lb_worker,lb_sub_worker 和 ajp_worker 一些配置信息都位于其结构体中,而状态信 息或在运行中可变的参数则位于共享内存中的对应结构体中,当然也并不绝对,有些参数是 冗余的。
从正在运行的某个线程的角度上来讲,ajp_worker 就是对应了一个线程。
3 从 HTTP 到 AJP 的处理流程
在 mod_jk 中,其中的 worker 主要在 worker.list 中列出。其中,lb_worker 可以含有 balance_workers,以 lb_sub_worker 的形式存储于 lb_worker 中。lb_sub_worker 可以是各
种类型的 ajp_worker。所以真正工作的 ajp_worker 既可以“单干”,也可以由 lb_worker 来分配任务。这主要取决于 URI 到底映射到哪个 worker 上以及该 worker 是否在 worker.list 配置。
除了性能的提升,mod_jk 另外的一个作用可以实现 apache 与 tomcat 一对多的对应, 使后端 tomcat 负载均衡。mod_jk 也提供 apache 与 tomcat 链接情况的监控。
mod_jk 模块的典型工作流程是这样的:一个 HTTP 请求过来,mod_jk 模块根据其 URI 选 择合适的 worker 来进行处理。如果是 lb_worker(负载均衡的 worker),就再根据各种条 件选择后台合适的 ajp_worker(处理 AJP 协议的 worker)。ajp_worker 将 HTTP 协议的包, 组装成 AJP 协议格式的包,然后选取一条空闲的链接,发送给后台的 tomcat 服务器。等到 后台将数据发送过来时,接收并解析 AJP 协议,重新组装成 HTTP 协议,然后把结果发送给 客户端。