软件简介:
0 Z. @' n0 t" _5 T8 Q本版本为征途 1.03版服务端测试版本,对应的客户端为官方1.03,应用在LINUX系统上
3 x5 N( x+ p X8 L7 I. f( Y3 g1 m如果是自己无聊研究的话,请先自学LINUX系统知识,【本版本售价为1800 RMB 无实力者勿扰】 M1 `0 p) t- k
浪花网络
4 E3 x$ ^5 M" Q3 ]( y6 H客服QQ:516363674/ W" a+ i6 r' {4 ? J
电话:13231911761
) x7 G! S w. O网站:www.gm010.com
/ L: S' D. } h) [) F/ @【本版本售价为1800 RMB (送网站,登陆器300 RMB)无实力者勿扰】7 f! h3 v" V+ K T I' B5 }
测试版本不提供技术支持!!!!
; M, V+ Y% m$ M8 h8 [; ^- \- W! D: M" ] G& z b
征途服务端架设说明:; C1 ~- p+ J! b: A7 b7 C
游戏服务器注意事项
' ^6 F( Y7 _1 o% l, K一、硬件的安装
0 f% r" ?4 `9 o& a1、保证服务器风扇正常转动。
9 ^( a0 D5 r# ^ o* H! ~5 w2、保证服务器各个提示灯是否正常。 8 Y/ q5 Z# w) _/ b: v
3、开机察看服务器有无报警情况。
r9 G# r# ^9 l V" H' R# I4、开机察看服务器能否正常启动(不插鼠标键盘的情况下)
$ A n+ [5 o0 Y8 }8 R二、系统的安装 # S7 d. P8 [4 d: h/ O
1、 安装RHEL 4.1 , C f1 H- L. T9 B
2、 选择自动分区。
% z# K* Y% h/ c5 M6 Z2 w0 R7 ]3、 分别给2块网卡配置ip,方便以后配置,其中eth0配内网ip,eth1配外网ip。 ' N; } r) N9 |4 b* Y( W
4、 不启用防火墙。 * { W1 N% N5 O: P$ p) {" k
5、 增加中文语言包。 + I) v, F7 E3 t# O* ]5 n6 e
6、 选择软件包时,只选择开发包.- {6 B3 }2 j; G; Y+ i
4 o. s5 U+ [6 n9 A
三、系统的简单设置 : S* Y" R1 Z# i, f+ o
1、防火墙的简单设置: ( x& g8 L( e( m7 S6 w
vi /etc/rc.d/forward 8 n l/ M- u) s6 L
内容:(例子) ( i3 z) b0 E/ o
#!/bin/bash 4 @8 d: ]& |. B" z3 Z
echo 1 /proc/sys/net/ipv4/ip_forward
- v9 U5 B( a: A# Z& Wif [ -e /proc/sys/net/ipv4/tcp_ecn ] 5 p& T6 `0 d: i! U3 \0 m
then
, y; [$ ]& W( P2 V+ v( zecho 0 /proc/sys/net/ipv4/tcp_ecn
* g5 ]1 q8 D5 Cfi K0 f' f7 U$ a0 u' H# L D4 @' K
/sbin/iptables -F
; G& J+ l& N& M/ d8 P6 X5 y& ~/sbin/iptables -F -t nat $ v( V! x+ V1 y; B5 O1 T+ Z% O2 h1 g
/sbin/depmod -a 2 Y$ }0 o$ A# t6 ^5 E
/sbin/modprobe ip_tables , |: x0 [# K: a5 A% n7 Z
/sbin/modprobe ip_conntrack / B4 P, O" s" _( H+ @
/sbin/modprobe ip_nat_ftp 6 y* d7 d' C( ?& l& B7 n6 i7 D
/sbin/modprobe ip_conntrack_ftp & u3 m E8 ?! P3 a* {# z, T
/sbin/iptables -A INPUT -i lo -j ACCEPT
% |' \) C' ^! w3 [% {/sbin/iptables -A INPUT -i eth0 -j ACCEPT
4 b5 T/ {* u1 f' Q0 {/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
% P$ t; ]9 S$ A; C$ s: O7 B#/sbin/iptables -A INPUT -i eth0 -p tcp -j REJECT --reject-with tcp-reset 5 e5 w9 _! H# _5 ~! \. H
/sbin/iptables -A INPUT -i eth0 -p udp -j REJECT --reject-with icmp-port-unreachable# F& o. D* H" y& |0 e* K9 c
#sshd # L8 i* D3 D7 ?' s; h# b& S
/sbin/iptables -A INPUT -s 218.80.198.234 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
; M0 h$ _2 }3 O/sbin/iptables -A INPUT -s 218.80.198.250 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
# }% L/ A8 Q4 e( L/sbin/iptables -A INPUT -s 210.22.188.21 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
1 V$ T* ]/ d8 b, E, s7 m( g. f#ftp server ) n- @2 Z+ m5 J% g! o" p
#/sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
; v- L3 N: S M/ k0 t: f6 g#game server + |( d' ~' Y# ?) J5 j6 ~
/sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 6020 -j ACCEPT
4 d. P$ K# `3 P+ P0 k" L$ h#db server
2 O. [7 }! N! o8 V9 b {/sbin/iptables -t nat -A PREROUTING -s 218.80.198.234 -d 203.110.165.30 -p tcp --dport 3306 -j DNAT --to 192.168.102.158:3306
) U- P( S" ~. |/sbin/iptables -t nat -A PREROUTING -s 218.80.198.234 -d 203.110.165.30 -p tcp --dport 3307 -j DNAT --to 192.168.102.159:33068 S& W8 J4 l% A/ v
/sbin/iptables -P INPUT DROP, [6 w4 L7 Z j0 L4 S
/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 192.168.102.0/24 -j MASQUERADE ; l& P& i9 f9 V% d% c! c1 j
保存后退出。
: y" E& R8 t7 K4 ]/ O3 L# cchmod 744 /etc/rc.d/forward
0 Y" v/ n: y+ ~1 V" r6 s) K然后运行防火墙脚本,以后根据需求修改脚本。. G0 K& y7 Q; b9 m& z
再vi /etc/rc.d/only_forward ; z9 d0 Z# W& X9 |
#!/bin/bash
$ k4 C% d$ a) S/ d6 |echo 1 /proc/sys/net/ipv4/ip_forward
% Q0 f/ `2 L0 {) oif [ -e /proc/sys/net/ipv4/tcp_ecn ]
1 T6 `' f* u+ y( T E ]' \then
7 s/ H/ \2 b8 Cecho 0 /proc/sys/net/ipv4/tcp_ecn ' U& X7 s" j x% l- Q
fi
( v+ p N3 v/ q; N7 J/sbin/iptables -F 1 I- d/ N0 j8 U; }/ W
/sbin/iptables -F -t nat 8 z" `" p( Z, \/ y- \; P* n+ j0 e
/sbin/depmod -a
% e5 s) t' A2 ^* K* y/sbin/modprobe ip_tables 8 \: `" G" i) Z) w7 o
/sbin/modprobe ip_conntrack
& Y7 c5 J$ F/ @2 J% Z/sbin/modprobe ip_nat_ftp
% i1 [3 N: K& ]% e/sbin/modprobe ip_conntrack_ftp
" v" T! [4 K2 _/sbin/iptables -A INPUT -i lo -j ACCEPT
# ?3 a8 B8 q: f- k O P8 ~( M/sbin/iptables -A INPUT -i eth0 -j ACCEPT
& @9 D! H; v* a, W9 a/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
0 `5 |2 G$ m: `& }$ D" L, T#/sbin/iptables -A INPUT -i eth0 -p tcp -j REJECT --reject-with tcp-reset
. d y, W! w% Q; O% _/sbin/iptables -A INPUT -i eth0 -p udp -j REJECT --reject-with icmp-port-unreachable0 X5 y: m# \* u: x4 r0 z
2 B' w; e4 i; P d) E
#sshd ; g5 o( A7 Q# c6 p* Q, Z" b; ]
/sbin/iptables -A INPUT -s 218.80.198.234 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 9 A! ^3 M( w' |* z- z7 k$ ]
/sbin/iptables -A INPUT -s 218.80.198.250 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
) g- t# V" a: ]& z$ V+ M! ]# h/sbin/iptables -A INPUT -s 210.22.188.21 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
5 g! [* Q) A' }9 ]5 `+ x" J0 ]/ f#ftp server / n; `; D) I/ y
#/sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT Y2 U. o4 ~8 r; a3 q
#game server
& ^& ?2 d$ i9 T7 m2 {6 t- L) a/sbin/iptables -A INPUT -s 218.80.198.234 -p tcp -m state --state NEW -m tcp --dport 6020 -j ACCEPT/ O1 G# S' g- Q* u# p2 m* L
#db server , C5 q8 P) Z: \, B! F2 k. K
/sbin/iptables -t nat -A PREROUTING -s 218.80.198.234 -d 203.110.165.30 -p tcp --dport 3306 -j DNAT --to 192.168.102.158 7 w; t7 n6 F! _3 X$ c/ ^2 t+ l
/sbin/iptables -t nat -A PREROUTING -s 218.80.198.234 -d 203.110.165.30 -p tcp --dport 3307 -j DNAT --to 192.168.102.159:33063 d+ ?2 P" c K7 r
/sbin/iptables -P INPUT DROP! h# Q4 z* J# F$ }. F
/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 192.168.102.0/24 -j MASQUERADE9 M$ Y4 y( b- L* B
此防火墙只允许公司的电脑可以登录游戏。' q, P8 ], z" h3 f. s7 c- B* [' I
2、设置系统自动启动防火墙 0 @5 v! {% u2 V7 \# g8 {$ Q. ~
vi /etc/rc.d/rc.local ( R) z0 V& s c" f4 W) n4 T
增加一行
& i$ \( l$ n' o/etc/rc.d/forward & \) d* j/ e( b% i3 Y7 H. f; X
保存后退出
0 F4 h, B* M) m8 Z3、设置文件打开数
) L2 S, S& a2 l) w; Z2 I, M1) 修改/etc/security/limits.conf 增加2行:
: C/ N. O* M( Z$ L$ `) S* soft nofile 4096 L" P) U0 M! k5 v
* hard nofile 65535+ z8 r2 F* d- p0 [" y
2) 修改/etc/pam.d/login 增加1行
+ g. Y- H8 _& a [& ^/ u q# c3 Msession required pam_limits.so . c0 d* M, {7 r* Z9 C
可用:
1 g3 S* p2 j/ o+ b9 H" Lecho * soft nofile 4096 /etc/security/limits.conf ( } y2 B Y2 @ V2 ]5 O! i
echo * hard nofile 65535 /etc/security/limits.conf ) h/ D; ~' r& v6 d. @0 h/ O$ F
echo session required pam_limits.so /etc/pam.d/login
7 r- K2 u+ e/ D* M0 }) U: \4、修改默认语言 . g: h; `, m* _
vi /etc/sysconfig/i18n 修改
9 ]& f8 c. r+ S! kLANG=zh_CN.GB2312
% C. R! Y% @3 ?! D# ?6 t+ _0 t7、 新建游戏运行用户ztgame,设置密码
9 r" F. k- F: H3 _6 b7 `6 o- z9 Uuseradd ztgame : I4 T0 R0 l( c" j* B; o# Y$ c
passwd ztgame; e8 ] o3 x* K- ?5 @! X
8、 用ztgame用户登录服务器,修改vi /home/ztgame/.bash_profile增加一行 : E7 _5 S+ s! X
ulimit c unlimited
# p1 h4 E3 J2 r( ]2 J7 Y# ]保存后退出。
2 J: l- B4 F" k2 u* T! w2 F1 p
$ d- F9 r5 }" C% O8 C% Y. {四、游戏环境的搭建(按照4台网关服务器,5台场景服务器,1台数据库服务器的构架)
8 g; I/ J) R+ _9 u: K, v1、服务器IP设置
" K: f! j1 w6 X% |8 ~! v. Y9 w4台网关服务器配置外网ip和内网ip,5台场景服务器和数据库服务器只配置内网ip,并且服务器默认网关为第一台网关服务器的内网ip。
; q4 Y. c- i" Z) i; w0 x服务器以服务器应用-序号-机房序号命名(例GWServer01-CHJ01)。 $ j; G) ~ l/ `# R% g
修改/etc/hosts。
. v' @3 w" `% `* Q+ N0 d. f0 J例子:
0 d& K7 [$ b. ~" h127.0.0.1 GWServer01-CHJ01 localhost.localdomain localhost
4 s; v' n( k3 N+ u( [192.168.100.101 GWServer02-CHJ01
. T4 L6 m G6 H) G }( M 9 b0 E1 ^6 l) W# G/ ^
192.168.100.104 ScenServer01-CHJ01 + [; Y( I+ e" ~; m/ ^( J( {3 X' v. }
4 N1 @1 _/ |) b; j$ m8 k! X1 s192.168.100.109 DBServer-CHJ01! U* [' q% J0 S W; w, q- B% E
2、公钥的生成 , b& d7 v8 G6 r4 n( Y, a- B1 I
在ztgame的用户下登陆第一台网关服务器,输入ssh-keygen -t dsa & D5 I0 o8 p8 S7 y
接受 ~/.ssh/id_dsa 的默认位置。输入一个与你的帐号口令不同的口令句,再输入一次来确认。公钥被写入 ~/.ssh/id_dsa.pub。密钥被写入 ~/.ssh/id_dsa。 6 s4 Q9 K. g6 R3 W, ^) s, _, J
使用以下命令改变你的 .ssh 目录的许可权限:
% J6 p# g- U) h( X* f, |( Hchmod 755 ~/.ssh 7 o& a! K" o% n" S; _* o
把 ~/.ssh/id_dsa.pub用scp命令传到其它剩余9台服务器
. @2 U( k& I1 Y4 t2 Gscp~/.ssh/id_dsa.pub ztgame@192.168.102.108:~/.ssh/authorized_keys
. D+ g& w0 U, ]7 E在其它9台服务器下使用以下命令改变你的 authorized_keys 文件的许可权限: ! `8 _% t3 A& t3 @! V
chmod 755 ~/.ssh ' F% ]# Z( _! ~3 m' [0 d
chmod 644 ~/.ssh/authorized_keys+ _. X ^# ~7 j+ K
3、数据库服务器的安装 ) T5 e' ~/ Y8 |" U; m+ M: S; e8 \
#首先确定你是root用户 % p" ]# T4 p- s9 H
#确定你有以下包 ! ?/ n+ Z/ A. S
perl-DBD-MySQL-2.9004-3.1 : I" P' P- t6 w2 ^& Q' @2 C3 J
perl-DBI-1.40-5
: n, l! V1 y1 R# c! ^4 y+ D0 Gmysql-4.1.7-4.RHEL4.1
: X1 n4 `+ w8 E2 N+ N& C获得mysql-4.1.*.tar包,用tar zxvf mysql-4.1.*tar解开压缩包,然后进入mysql-4.1.*目录 6 _7 I" t& a9 `, p* m5 P4 O3 E6 n
#根据体统类型选择编译方式
; u, K; P/ n5 F& U0 N#i386体系结构的 0 w$ `9 b5 T- @" _) X
CFLAGS=-O3 -mcpu=pentiumpro CXX=gcc CXXFLAGS=-O3 -mcpu=pentiumpro -felide-constructors -fno-exceptions -fno-rtti ./configure --with-raid --enable-thread-safe-client --enable-assembler --with-server-suffix = for MySQL Database of Zebra by YhcMySQL Database of Zebra by Yhc /etc/profile /usr/local/mysql/bin:$PATH
" ]1 k2 g4 R+ S5 d) k8 D#strip可执行文件
! A" D# Z# H: x# c0 sstrip /usr/local/mysql/libexec/mysqld9 |: ~& }( o+ d6 o+ Y+ v- ~
#添加LIB PATH ' W4 t1 q3 ^$ G+ E2 O
echo /usr/local/mysql/lib /etc/ld.so.conf mysql_install_db0 F9 j% D6 F: ?
#启动服务器
& d8 j* R; H6 v: Isu - mysql -c mysqld_safe --skip-name-resolve --open-files-limit=40969 p# g; ^ X3 A0 V8 {0 }
#创建数据库和用户
- J& x& K3 I' |& \* fGRANT ALL PRIVILEGES ON *.* TO ztgame@'192.168.104.%' IDENTIFIED BY '' WITH GRANT OPTION;
! f9 Q/ K+ s. X0 M6 o1 |GRANT ALL PRIVILEGES ON *.* TO ztgame@'localhost' IDENTIFIED BY '' WITH GRANT OPTION; d5 ?+ ]( G) K; e4 \, y
GRANT ALL PRIVILEGES ON *.* TO ztgame@'218.80.198.234' IDENTIFIED BY '' WITH GRANT OPTION;( }$ a3 k5 j% c$ K3 x) z- h
4、数据库配置
* x8 C V" z; M. x! u9 }6 ]用mysql进入,然后用create database dbname创建数据库。分别创建SuperServer、RecordServer、Bill数据库,然后用安装包目录下的*.sql的文件建立相应的表。(SessionServer.sql也导入到RecordServer库中)。 : `. Y/ J# |& l) I# T
在SuperServer数据库SERVERLIST表内添加服务器配置信息。
' ^1 d. a9 f2 B+ ]例子: 0 E. u5 n, b2 R: a3 V! d
INSERT INTO `SERVERLIST` VALUES (1,1,'SuperServer','192.168.104.109',10000,'192.168.104.109',10000); ' g6 c2 V& y2 s ~
INSERT INTO `SERVERLIST` VALUES(20,20,'SessionServer','192.168.104.109',6000,'192.168.104.109',6000);
: E! p/ [: j2 J/ T6 ^INSERT INTO `SERVERLIST` VALUES(21,21,'SceneServer','192.168.104.104',6010,'192.168.104.104',6010);
. K0 g, D) q2 j j5 t: qINSERT INTO `SERVERLIST` VALUES(22,21,'SceneServer','192.168.104.105',6011,'192.168.104.105',6011);
$ ]2 a' A! s* @9 a/ x- y. I& k# I ~INSERT INTO `SERVERLIST` VALUES(23,21,'SceneServer','192.168.104.106',6012,'192.168.104.106',6012); 0 w& e0 T) q1 b& k& H0 p- Z
INSERT INTO `SERVERLIST` VALUES(24,21,'SceneServer','192.168.104.107',6013,'192.168.104.107',6013);
- b( ^$ \4 A. f: O5 r% Y5 EINSERT INTO `SERVERLIST` VALUES(25,21,'SceneServer','192.168.104.108',6014,'192.168.104.108',6014);
8 }* ~* j( ?- w: ?# O HINSERT INTO `SERVERLIST` VALUES(2200,22,'GatewayServer','192.168.104.100',6020,'210.51.23.132',6020);
$ n, g+ ]* g* s0 zINSERT INTO `SERVERLIST` VALUES(2201,22,'GatewayServer','192.168.104.101',6020,'210.51.23.133',6020);
+ L5 I; [* D- @+ D% Z* G8 N% E5 YINSERT INTO `SERVERLIST` VALUES(2202,22,'GatewayServer','192.168.104.102',6020,'210.51.23.134',6020);
5 y) L" K3 e" n' O+ [- _5 W/ PINSERT INTO `SERVERLIST` VALUES(2203,22,'GatewayServer','192.168.104.103',6020,'210.51.23.135',6020); ; y T" y- o; ]
INSERT INTO `SERVERLIST` VALUES(11,11,'RecordServer','192.168.104.109',7010,'192.168.104.109',7010); ) u" w1 K' ?; H9 Y( B- ~
INSERT INTO `SERVERLIST` VALUES(12,12,'BillServer','192.168.104.109',7020,'192.168.104.109',7020);
9 w6 @/ `' i# v# S5 F1 o在RecordServer数据库上初始化某些表格,目前有ANSWER,TECH,COUNTRY,NPCDARE,ACCPRIV。 6 F3 a1 u$ `/ L ~. L \, j
数据库服务器上跑SuperServer、SessionServer、RecordServer、BillServer四个服务,4个网关服务器分别跑4个网关服务,5个场景服务器分别跑5个场景服务。场景服务器对应的ID就是国家配置的ID号,这个ID号决定场景服务器上面跑几个国家
+ X; C6 l$ W( b1 {五、服务端的配置和安装 1、获得安装包: release-version.tar.bz2 map-version.tar.bz2 在/home/ztgame下建立以时间为名字的目录(game20050928),压缩包放入此目录,然后用tar jxvf release-version.tar.bz2 和tar jxvf map-version.tar.bz2解开压缩包9 n' D* o& t4 T9 C7 f
进入release目录,cp rf ../map . 按照config.xml.example格式创建文件config.xml 配置文件主要定义了服务器的各种参数: [global]这段主要定义了通用参数,如服务器本地网络设备名称,扩展网络设备名称,日志级别,SuperServer的服务器地址,端口等参数。
+ ]! ^) g; K* L4 i1 p: t其他各个段定义了具体的服务参数,主要是指定该服务对应的数据库,数据库的连接地址,端口,用户名,密码等数据库连接字符串。每个服务可以定义日志文件的存放位置,如果没有指定,缺省放置在/tmp/目录下面。如SuperServer服务 SuperServer !--MySQL database connection[mysql://user:passwd@host:port/dbName]-- mysqlmysql://test:123456@192.168.2.14:3306/SuperServer/mysql logfilename/home/test/tmp/superserver.log/logfilename /SuperServer 上面配置指明SuperServer服务,采用连接串用户名test,密码123456,访问192.168.2.14服务器上3306端口下SuperServer数据库,日志文件存放在/home/test目录下。其他服务配置类似。例子: ?xml version=1.0 encoding=GB2312? !--所有各种服务器参数-- Zebra global !-- Specify the log level[debug,info,warning,error,fatal,always]. -- logdebug/log !--MySQL database connection[mysql://user:passwd@host:port/dbName]-- !-- Use the specified local network device. -- ifnameeth0/ifname !-- Connected to the specified supserserver, property 'port' default value is 10000. -- superserver port=10000192.168.104.109/superserver /global SuperServer !-- 统一用户平台登陆服务器列表文件 -- loginServerListFileloginServerList.xml/loginServerListFile !-- 角色名称唯一性验证服务器的地址 -- RoleregServer port=9901218.80.198.252/RoleregServer !-- 服务器信息采集的服务器地址 -- InfoServer port=9903218.80.198.252/InfoServer !--MySQL database connection[mysql://user:passwd@host:port/dbName]-- mysqlmysql://ztgame:yS29wahvCH@192.168.104.109:3306/SuperServer/mysql !-- 如果要编码mysql连接字符串请使用工具,配置如下面的例子 mysql encode=yeslmOf.1kySwS0a09j11xyCdI1ySujl1hnCvT0hDitT0hjzv00gzSv00gDSw91tS9fE1/mysql -- logfilename/log/superserver.log/logfilename /SuperServer RecordServer !--MySQL database connection[mysql://user:passwd@host:port/dbName]-- mysqlmysql://ztgame:yS29wahvCH@192.168.104.109:3306/RecordServer/mysql logfilename/log/recordserver.log/logfilename /RecordServer BillServer !--MySQL database connection[mysql://user:passwd@host:port/dbName]-- mysqlmysql://ztgame:yS29wahvCH@192.168.104.109:3306/Bill/mysql logfilename/log/billserver.log/logfilename /BillServer BillClient !-- 交易记录log文件路径 -- tradelogfilename/log/clienttrade.log/tradelogfilename /BillClient SessionServer !--MySQL database connection[mysql://user:passwd@host:port/dbName]-- mysqlmysql://ztgame:yS29wahvCH@192.168.104.109:3306/RecordServer/mysql logfilename/log/sessionserver.log/logfilename dare_active_time3600/dare_active_time offlineMsgPath/log/offlineMessages/offlineMsgPath /SessionServer ScenesServer sceneinfofilescenesinfo.xml/sceneinfofile npctradefilenpctrade.xml/npctradefile messageSystemFilemessageSystem.xml/messageSystemFile charinitinfoFileinitcharinfo.xml/charinitinfoFile magicrangeFilemagicrangefile.xml/magicrangeFile questdirquest//questdir mapdirmap//mapdir tbldirmap//tbldir gm_logfile/log/gm_log.log/gm_logfile !--回写档案平率(单位是秒) -- writebacktimer300/writebacktimer ossdir/log//ossdir logfilename/log/scenesserver.log/logfilename /ScenesServer GatewayServer !-- 国家排序方式 0:不排序 , 1:在线人数排序 , 2:注册人数排序 -- countryorder2/countryorder logfilename/log/gatewayserver.log/logfilename sceneinfofilescenesinfo.xml/sceneinfofile rolereg_verify1/rolereg_verify forbidWordsFileforbidWords/forbidWordsFile /GatewayServer /Zebra 注意存放日至的目录是否建立,以及建立session服务所要求的日志存放子目录offlineMessages。
% N- T7 g( V5 R) S b修改loginServerList.xml,填入平台中心的FLServer服务器ip以及端口。例子: ?xml version=1.0 encoding=GB2312? LoginServerList server ip=218.80.198.252 port=7001/ server ip=210.22.188.20 port=7001/ /LoginServerList) B# Y# I- N4 j$ n J( O
然后将修改好的版本传至其它9台服务器。并启动服务
# k. E6 l e: L) V) K六、服务器的启动,停止和更新 1、将运行脚本传至各个服务器。0 @; S& ^7 _, c
2、开启游戏服务, A9 @ S6 ^3 k
通过ssh使用ztgame用户远程连接至第一台网关服务器,再通过网关服务器连接其他9台服务器, 10个窗口内分别进入最新的服务端存放目录/home/ztgame/game200508**/release/
7 e1 Q# T2 l# L7 |, h6 [+ V! W数据库服务器 启动服务./SuperServer -d 和 ./SessionServer -d 和 ./RecordServer -d 和 ./BillServer -d 场景服务器 启动服务./ScenesServer -d 网关服务器 启动服务./GatewayServer -d
3 d$ u& _+ ], A" i9 d. i6 `3 R$ t3 o以上操作可以通过/home/ztgame/tools/allstart game200508**来启动(由于程序是后台运行,所以如发现程序运行时间过长,可以CTRL+c中断,并不影响程序的正常运行。)4 ^5 S( U E# G1 h1 t5 Z. g0 b
3、停止游戏服务( J8 V9 y2 o( c7 x4 z( j9 v
通过ssh使用ztgame用户远程连接至第一台网关服务器,运行/home/ztgame/tools/allstop,中止所有服务 ,此脚本是并不是强行杀进程,所以如果发现进程无法kill的情况,用/home/ztgame/tools/allstop_9来强行杀死进程。8 i- T. J- X: {" {; q+ v1 x$ E6 h
4、查看游戏服务
% K! D2 a- M2 `7 b0 Y8 n$ V+ s通过ssh使用ztgame用户远程连接至第一台网关服务器,运行/home/ztgame/tools/allview,查看所有服务运行状态。
. d6 X9 V1 K' _$ E5、更新游戏服务
g% v, e% i0 v! R8 W通过ssh使用ztgame用户远程连接至第一台网关服务器,再通过服务器连接其他9台服务器, 分别在/home/ztgame目录下面建立最新的服务端存放目录game200508**.
& T; U# c* a* O( K0 d5 |然后将服务器端安装包通过scp传到第一台网关服务器,在game200508**下解压。 tar jxvf zebra-release-***** tar jxvf zebra-release-***** cp map release/ -rf 然后从上一个版本里拷贝出一些配置文件覆盖源文件 cp /home/ztgame/game_old/release/config.xml /home/ztgame/game_new/release/ cp /home/ztgame/game_old/release/loginServerList.xml /home/ztgame/game_new/release/ cp /home/ztgame/game_old/release/messageSystem.xml /home/ztgame/game_new/release/6 V4 \" u3 x+ ?6 n1 U3 z3 E
以上工作准备好后就可以将网关服务器上的版本传到其他服务器 scp -r /home/ztgame/game_new/* ztgame@192.168.100.111:/home/ztgame/game_new
4 e" L# c- p6 G/ u6 m3 r) j以上操作可以通过shell脚本来实现 /home/ztgame/tools/installPackage game_new game-old
5 \# k; A7 f2 b1 [ F七、服务器数据的备份 1、数据备份为了防止意外情况的发生造成数据的丢失,关键数据或整个系统或对有选择的系统部分,在本地和异地进行定时备份,以保证系统全部或部分在灾害出现时也能持续运行。 2、具体方案 1)、数据库每日备份 每天4:00,将RecordServer数据库拷贝至/root/back后进行压缩,然后上传至192.168.1.9服务器上,/root/back留有压缩版本。 运行脚本/root/scripts/back.sh 例子: #!/bin/bash rm /root/back/RecordServer/* -rf /usr/local/mysql/bin/mysqlhotcopy RecordServer /root/back/RecordServer -u ztgame -p yS29wahvCH sleep 5 cd /root/back tar zcf `hostname`-RecordServer`date +%Y%m%d`.tar.gz RecordServer sleep 5 echo tar ok! /usr/local/bin/ncftpput -u gamebak -p gamebak@ztgame 218.80.198.234 / /root/back/`hostname`-RecordServer`date +%Y%m%d`.tar.gz sleep 20 echo upload RecordServer ok! 2)、数据库即时备份每隔1小时,将RecordServer数据库拷贝至/root/back/hour目录进行备份,然后将压缩文件传给特定服务器。例子: #!/bin/bash hottime=`date +%Y%m%d%H%M` mkdir /root/back/hour/RecordServer$hottime /usr/local/mysql/bin/mysqlhotcopy RecordServer /root/back/hour/RecordServer$hottime -u ztgame -p yS29wahvCH sleep 5 cd /root/back/hour tar zcf `hostname`-RecordServer$hottime.tar.gz RecordServer$hottime sleep 5 echo tar ok! /usr/local/bin/ncftpput -u backupdb -p backupdb 192.168.102.119 / /root/back/hour/`hostname`-RecordServer$hottime.tar.gz sleep 20 echo upload RecordServer ok! rm `hostname`-RecordServer$hottime.tar.gz -f 3)、日志备份 每天02:00,将/log/下前一天的日志,进行压缩,然后上传至192.168.1.9服务器。 运行脚本/root/scripts//upload_daily 例子: #!/bin/bash cd /log/ mkdir log`date --date '1 days ago' +%Y%m%d` mv *.log.`date --date '1 days ago' +%y%m%d`-* log`date --date '1 days ago' +%Y%m%d` sleep 10 tar zcvf `hostname`-log`date --date '1 days ago' +%Y%m%d`.tar.gz log`date --date '1 days ago' +%Y%m%d` /usr/local/bin/ncftpput -u log -p log@ztgame 218.80.198.234 / /log/`hostname`-log`date --date '1 days ago' +%Y%m%d`.tar.gz rm `hostname`-log`date --date '1 days ago' +%Y%m%d`.tar.gz, A3 R$ j. c/ b; `
注:计划任务通过/etc/crontab e来进行设置上传,可以运行网关服务器 4)、即时日志备份 直接运行/home/ztgame/tools/upload 将最新日志上传至192.168.1.9服务器,方便研发部门查看。 运行脚本/home/ztgame/tools/upload,(如果所有服务器的日志都需要上的/home/ztgame/tools/allupload)
3 P' n6 y5 k/ X7 S/ O& v% j$ |* u- ^4 l( j8 B+ x+ c: E- ]
本版本为征途 1.03版服务端测试版本,对应的客户端为官方1.03,应用在LINUX系统上$ [. }" T' t) r+ J7 x9 _" U0 a) g
如果是自己无聊研究的话,请先自学LINUX系统知识,【本版本售价为1800 RMB 无实力者勿扰】
; ~! f4 m% p4 ~3 f. Q浪花网络 ( u( j( z/ G) }
客服QQ:5163636741 t; J$ p0 G$ ^* P3 T- b; v
电话:13231911761
- k! J% [% ]" ]网站:www.gm010.com
& a. r3 M5 _' s9 N H+ Q【本版本售价为1800 RMB (送网站,登陆器300 RMB)无实力者勿扰】) I' `1 q: c3 C3 y7 x
下载地址:
|