软件简介:
% l7 \9 \% a# z9 G/ T: B, S本版本为征途 1.03版服务端测试版本,对应的客户端为官方1.03,应用在LINUX系统上, E# ]5 P7 S: i& c# ]7 ]6 U- I
如果是自己无聊研究的话,请先自学LINUX系统知识,【本版本售价为1800 RMB 无实力者勿扰】
' | h; S! Z, ]) [3 x浪花网络 , N. D7 g9 l0 x
客服QQ:516363674
5 P5 {, X0 k# D# B电话:13231911761
2 I0 l2 X. l& b! r网站:www.gm010.com; c: @* J/ M: j" ~" ~
【本版本售价为1800 RMB (送网站,登陆器300 RMB)无实力者勿扰】
M, T* A! \; B$ ~测试版本不提供技术支持!!!!
" Y7 N9 p& ^( ]5 R
5 b( W/ [. A( n4 `; {. Z! }$ u" V征途服务端架设说明:# |" g+ G4 H) E$ D. d
游戏服务器注意事项
: y+ o. N% m. X2 `0 Z' X一、硬件的安装 3 m( R& }) V& g% h3 f$ c4 C! R, Q
1、保证服务器风扇正常转动。
& H5 t5 o: B6 J* A2、保证服务器各个提示灯是否正常。
- [& k! W# Q( H- H& z3、开机察看服务器有无报警情况。 0 \$ b: ^# R P; P0 W- w& a
4、开机察看服务器能否正常启动(不插鼠标键盘的情况下)7 u& x* r9 v2 l1 A+ c$ J
二、系统的安装 0 d' [- p0 I; f& F5 o) M% D
1、 安装RHEL 4.1
8 ?5 s% I0 ]/ j1 c, U1 L* n/ S% u2、 选择自动分区。 3 q$ z- Q# m: c% @6 {9 J2 P
3、 分别给2块网卡配置ip,方便以后配置,其中eth0配内网ip,eth1配外网ip。
; Z; k. I+ V; F: Z* s9 d) {4、 不启用防火墙。
& U* Q& e& u& @/ e5、 增加中文语言包。
) H m/ Z( F ~( y4 `! b6、 选择软件包时,只选择开发包.
4 g8 |' p! F3 K4 Z& h& h
2 W4 v! T4 C) ]: L三、系统的简单设置 - ~ }. s! n4 y3 m+ j" a
1、防火墙的简单设置: ! _, s: _- q! V( e. U" {* T& o
vi /etc/rc.d/forward V7 U8 [. u1 D6 i/ G4 O9 V
内容:(例子) 6 ~, f4 ~7 H F5 O; J- h) U
#!/bin/bash 1 V& t' J& p* Q4 |
echo 1 /proc/sys/net/ipv4/ip_forward 4 H1 `2 g7 r1 G3 l# }9 ]" k
if [ -e /proc/sys/net/ipv4/tcp_ecn ] & J# _" a8 N/ V) V# i
then 3 q( p' b4 W% `
echo 0 /proc/sys/net/ipv4/tcp_ecn
9 W1 W: s" P- S5 m8 Cfi 1 t. R6 R9 A& F: y+ }
/sbin/iptables -F
! i# |( o7 i( ~* M" v* B/sbin/iptables -F -t nat - b$ a$ m- N+ x" l5 B4 [& y# _7 f
/sbin/depmod -a
/ f1 w. [& Q! F/ Y, c+ g: P/sbin/modprobe ip_tables * P( l* Q# N! i1 u. y: L* N M8 ?
/sbin/modprobe ip_conntrack : e7 L% Y4 b4 _* V8 g6 M+ [9 f1 e9 H
/sbin/modprobe ip_nat_ftp
$ K4 [5 \$ ^* P& F% z# v/sbin/modprobe ip_conntrack_ftp
' ~; Q; U# v0 S1 v/sbin/iptables -A INPUT -i lo -j ACCEPT 5 Z% l, \7 N/ E: }2 f
/sbin/iptables -A INPUT -i eth0 -j ACCEPT ; p# B: Z9 G/ w. g% v
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
+ Y) y# u& T4 V# \( y& L, F" E#/sbin/iptables -A INPUT -i eth0 -p tcp -j REJECT --reject-with tcp-reset
. L0 O1 @! s+ E# J/sbin/iptables -A INPUT -i eth0 -p udp -j REJECT --reject-with icmp-port-unreachable
\' k9 F2 _- R& d#sshd 4 |" S6 I4 ~! D9 d0 I6 D1 r
/sbin/iptables -A INPUT -s 218.80.198.234 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 9 a3 ]$ n, M6 v( Y6 U' }* h
/sbin/iptables -A INPUT -s 218.80.198.250 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
- R1 Y, ?* A0 g1 w: A# \2 V/sbin/iptables -A INPUT -s 210.22.188.21 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT7 l9 F3 g; v/ V4 }
#ftp server
7 ]! ~6 F& u! K' c5 z7 l. C& r1 h#/sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT8 t9 j4 D/ ?" ^+ ?' S: P, h. A
#game server 1 F4 q S3 \# k& r# @$ w Z# t3 M
/sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 6020 -j ACCEPT6 I5 C2 k* [% ~3 e' e! d% l; c6 G
#db server ) q5 U* ]* j7 x. i+ ~3 K& m
/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
$ |6 M/ c2 ?( R& p a/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:3306
+ L, M3 I* p5 _1 ]0 V2 C/sbin/iptables -P INPUT DROP' j) ?* a5 \2 L4 W* `+ B
/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 192.168.102.0/24 -j MASQUERADE
7 P7 U: n% f8 q) z保存后退出。 : t( K3 }* l& T) T
chmod 744 /etc/rc.d/forward
& T$ u m7 k) K7 U) n然后运行防火墙脚本,以后根据需求修改脚本。
: u* S* d' r% e9 Z, G再vi /etc/rc.d/only_forward
' _* J( B. D. w3 P) m0 G2 A' ^#!/bin/bash / z5 t5 O" h; H# c7 y: O
echo 1 /proc/sys/net/ipv4/ip_forward
" U5 L$ `% k/ O- t( I: jif [ -e /proc/sys/net/ipv4/tcp_ecn ] & e# m& v0 A3 A2 U E
then 0 A/ a% d; b0 N% Y D
echo 0 /proc/sys/net/ipv4/tcp_ecn
# d% o* X0 _1 C# e# m9 ifi 5 M9 C" [) O! m1 C* @1 F
/sbin/iptables -F
5 R& X$ u4 b$ f C0 ~4 f/sbin/iptables -F -t nat
9 I/ [8 r2 p) Y$ P8 u/sbin/depmod -a ( R4 m9 Y( W- k
/sbin/modprobe ip_tables
- G! k. q( C. f8 f8 D2 L/sbin/modprobe ip_conntrack - e! h( Z! N/ T( X
/sbin/modprobe ip_nat_ftp
5 d0 F7 s3 h- n0 @' w/sbin/modprobe ip_conntrack_ftp
5 |. }$ s% M$ q( }7 s/sbin/iptables -A INPUT -i lo -j ACCEPT
+ ^9 i/ C. ]" F# f. X* I M1 Z+ K/sbin/iptables -A INPUT -i eth0 -j ACCEPT
* ]# f' k2 I' G, e3 x) c+ Q6 ~ g/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
8 C7 q$ [! n" p- A/ h#/sbin/iptables -A INPUT -i eth0 -p tcp -j REJECT --reject-with tcp-reset ) h1 i& g+ ]# m8 w3 G
/sbin/iptables -A INPUT -i eth0 -p udp -j REJECT --reject-with icmp-port-unreachable
- H- A) A4 ^- u \" u0 s3 H& Q& ?! l, h2 G" B) S0 M
#sshd ) w' p& ]. b% l9 c3 P& e4 E1 z
/sbin/iptables -A INPUT -s 218.80.198.234 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
5 H! R' } \. I# \" J( }/sbin/iptables -A INPUT -s 218.80.198.250 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT ) o0 |) `0 y- h/ B- c, F8 K7 m
/sbin/iptables -A INPUT -s 210.22.188.21 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
3 R+ J' U; d$ n) Z# K. Q#ftp server / W! t5 L4 E; W: B/ b1 o
#/sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT0 I7 @; I6 e W
#game server ! ^4 E! V" V* v1 g& I& E
/sbin/iptables -A INPUT -s 218.80.198.234 -p tcp -m state --state NEW -m tcp --dport 6020 -j ACCEPT2 j; H4 ~6 ]6 p% [ q$ K! [
#db server 7 q* O* ~, K5 P
/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 6 P/ ?$ t0 L& M8 L3 \' T
/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:3306
: n1 o" z) w# G- N" r/sbin/iptables -P INPUT DROP
7 v! x; E3 n0 M/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 192.168.102.0/24 -j MASQUERADE' r" Q4 m4 H0 U0 B. Z0 g
此防火墙只允许公司的电脑可以登录游戏。" F5 @& s" _( p& j& X) X
2、设置系统自动启动防火墙
* b$ `3 E4 s# dvi /etc/rc.d/rc.local
6 X) Y1 S5 `" m( e# f& H增加一行
, {. F/ |, ]$ ^" d& {: u/etc/rc.d/forward
5 ]3 F& b9 ~3 r$ o! `5 x保存后退出 # I4 \/ @/ [% x: ]' O' I# h
3、设置文件打开数
3 g1 g/ w- R* Q( V1) 修改/etc/security/limits.conf 增加2行:
: O6 L, [9 Z% i" j* soft nofile 4096
. J' _# N: p4 u) j! C L" U# S& H* hard nofile 65535
6 L$ a+ p9 _# l, m2) 修改/etc/pam.d/login 增加1行( W* K5 Z; g! ~8 p! J
session required pam_limits.so ) M' h6 x# e3 t0 l- q
可用: ' Y- P- ^3 m) ~1 B! z) m
echo * soft nofile 4096 /etc/security/limits.conf
' p2 h1 V2 G# x. e7 j8 R9 s eecho * hard nofile 65535 /etc/security/limits.conf
- J3 @3 l' C' \& j) i. \echo session required pam_limits.so /etc/pam.d/login , n) C* `# o5 o- g8 K8 `& M
4、修改默认语言 $ ~2 K1 _# k3 h9 x7 T" B
vi /etc/sysconfig/i18n 修改3 v8 y4 u* S/ ^( c
LANG=zh_CN.GB2312
' s" @( _/ P7 P4 ]7、 新建游戏运行用户ztgame,设置密码 : z2 A, ~: C3 P
useradd ztgame
' T1 m' P4 A' a$ C1 Tpasswd ztgame; D" p% O, T9 ^. n2 i
8、 用ztgame用户登录服务器,修改vi /home/ztgame/.bash_profile增加一行
, E" R1 l+ }. Zulimit c unlimited
A9 p, b$ e6 r) N4 }; U! h3 ~保存后退出。
2 r2 ?6 a$ p* b, k5 j( P2 p+ k+ w1 `5 t4 ]: r! x1 a4 ^
四、游戏环境的搭建(按照4台网关服务器,5台场景服务器,1台数据库服务器的构架)
, s. t2 s4 k, S) `7 V1、服务器IP设置
# f! G5 f2 q0 t; @+ r/ i1 U! Y( H4台网关服务器配置外网ip和内网ip,5台场景服务器和数据库服务器只配置内网ip,并且服务器默认网关为第一台网关服务器的内网ip。
' W5 u8 [( k+ t5 p3 |服务器以服务器应用-序号-机房序号命名(例GWServer01-CHJ01)。 . Q$ U& r% B* }
修改/etc/hosts。
, ?3 H! ^6 [1 n例子: ; G) Y6 j; H$ Q$ ]6 U. @
127.0.0.1 GWServer01-CHJ01 localhost.localdomain localhost # z7 I* O% b; `
192.168.100.101 GWServer02-CHJ01 ' ?$ W( t$ B$ [( a
% g6 O' ~) y8 l192.168.100.104 ScenServer01-CHJ01 * Z$ s; r( h6 Y$ H# @
- Q& e) R/ n+ l$ x% O& ~
192.168.100.109 DBServer-CHJ01' `$ W6 j. F# G2 _/ v, F: t
2、公钥的生成
7 t. U% Y& Q* A- c# m在ztgame的用户下登陆第一台网关服务器,输入ssh-keygen -t dsa 4 c9 i4 L! M- B
接受 ~/.ssh/id_dsa 的默认位置。输入一个与你的帐号口令不同的口令句,再输入一次来确认。公钥被写入 ~/.ssh/id_dsa.pub。密钥被写入 ~/.ssh/id_dsa。
V" j6 R* o6 N/ w使用以下命令改变你的 .ssh 目录的许可权限:
1 K4 D, p' w4 ~* ]chmod 755 ~/.ssh ) m4 G- x1 ~/ n6 A3 H( V7 i
把 ~/.ssh/id_dsa.pub用scp命令传到其它剩余9台服务器
3 |4 W2 \1 {$ s4 c9 Q) h2 ]& Iscp~/.ssh/id_dsa.pub ztgame@192.168.102.108:~/.ssh/authorized_keys" x: a9 f7 N b# e# `/ Q5 R& K
在其它9台服务器下使用以下命令改变你的 authorized_keys 文件的许可权限: 0 z2 b6 j, K4 n
chmod 755 ~/.ssh 0 x0 K @8 V0 Q8 |
chmod 644 ~/.ssh/authorized_keys" q% {: q5 S2 o2 ^, t
3、数据库服务器的安装
" L+ o7 Z) X# L0 f#首先确定你是root用户 , \- I5 Y6 Z, _( z4 n3 j
#确定你有以下包 7 u' c: x, ~3 {( e
perl-DBD-MySQL-2.9004-3.1 , N5 T7 X A1 x2 ?8 O1 A, D
perl-DBI-1.40-5 * g: r. p |9 A0 `2 n7 M
mysql-4.1.7-4.RHEL4.1
) K$ K6 R: j {$ }4 \7 h/ g5 C* \获得mysql-4.1.*.tar包,用tar zxvf mysql-4.1.*tar解开压缩包,然后进入mysql-4.1.*目录
# e y5 y7 F$ q, Y1 I#根据体统类型选择编译方式 + K' c3 Z- @- J: f8 ~
#i386体系结构的
; |9 ?: A% a1 e0 fCFLAGS=-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
! N1 [- ^/ K( z/ r' j& P#strip可执行文件
6 P3 Y" N8 v( r5 u8 S5 c, |strip /usr/local/mysql/libexec/mysqld% r9 _5 Q8 o) b6 D4 H
#添加LIB PATH
/ I/ Q3 d% K8 q, N, ^+ oecho /usr/local/mysql/lib /etc/ld.so.conf mysql_install_db% f' z# I% R$ z/ u A: Z( u. l% u
#启动服务器 3 q* @" W; J5 _
su - mysql -c mysqld_safe --skip-name-resolve --open-files-limit=4096
. J" R6 \# n& Q! J" B#创建数据库和用户 1 m; r1 q6 U P
GRANT ALL PRIVILEGES ON *.* TO ztgame@'192.168.104.%' IDENTIFIED BY '' WITH GRANT OPTION;
1 h; F$ Z7 P- P5 Z8 s9 MGRANT ALL PRIVILEGES ON *.* TO ztgame@'localhost' IDENTIFIED BY '' WITH GRANT OPTION; ; b3 a/ m) B k: ^' B
GRANT ALL PRIVILEGES ON *.* TO ztgame@'218.80.198.234' IDENTIFIED BY '' WITH GRANT OPTION;6 n$ G* y- V0 v" d4 w
4、数据库配置
% S% k% ]2 \; E用mysql进入,然后用create database dbname创建数据库。分别创建SuperServer、RecordServer、Bill数据库,然后用安装包目录下的*.sql的文件建立相应的表。(SessionServer.sql也导入到RecordServer库中)。 0 N' ~7 l/ `0 P# I; u& K9 e
在SuperServer数据库SERVERLIST表内添加服务器配置信息。 5 q+ p3 D5 t6 x" g1 d3 b
例子:
/ {+ T- B! c- F hINSERT INTO `SERVERLIST` VALUES (1,1,'SuperServer','192.168.104.109',10000,'192.168.104.109',10000);
. J1 H+ q' h: M! J4 WINSERT INTO `SERVERLIST` VALUES(20,20,'SessionServer','192.168.104.109',6000,'192.168.104.109',6000);
7 E7 i. d& n+ e9 l5 ]6 x4 @2 O4 I, G' QINSERT INTO `SERVERLIST` VALUES(21,21,'SceneServer','192.168.104.104',6010,'192.168.104.104',6010);
# Q- r* V6 j8 h& l. k7 O* @INSERT INTO `SERVERLIST` VALUES(22,21,'SceneServer','192.168.104.105',6011,'192.168.104.105',6011); 6 R6 y7 F4 w& u
INSERT INTO `SERVERLIST` VALUES(23,21,'SceneServer','192.168.104.106',6012,'192.168.104.106',6012); 1 O3 b/ b- V3 P5 d
INSERT INTO `SERVERLIST` VALUES(24,21,'SceneServer','192.168.104.107',6013,'192.168.104.107',6013); 2 [1 f7 Q* K3 o0 W
INSERT INTO `SERVERLIST` VALUES(25,21,'SceneServer','192.168.104.108',6014,'192.168.104.108',6014); ' a$ g7 X7 [+ Y9 H' K
INSERT INTO `SERVERLIST` VALUES(2200,22,'GatewayServer','192.168.104.100',6020,'210.51.23.132',6020); , U( W& {5 V5 y; r) a" ~ V4 b4 C* X0 ]3 [
INSERT INTO `SERVERLIST` VALUES(2201,22,'GatewayServer','192.168.104.101',6020,'210.51.23.133',6020);
! i1 b- }8 z5 z# xINSERT INTO `SERVERLIST` VALUES(2202,22,'GatewayServer','192.168.104.102',6020,'210.51.23.134',6020);
. o' {/ \) s8 W6 A; z9 |) \* RINSERT INTO `SERVERLIST` VALUES(2203,22,'GatewayServer','192.168.104.103',6020,'210.51.23.135',6020); * t, R" d1 C- M5 {) L2 V
INSERT INTO `SERVERLIST` VALUES(11,11,'RecordServer','192.168.104.109',7010,'192.168.104.109',7010);
+ X% F- Q; A# y# \& fINSERT INTO `SERVERLIST` VALUES(12,12,'BillServer','192.168.104.109',7020,'192.168.104.109',7020);
/ x- c0 m; A) \. n2 e1 E在RecordServer数据库上初始化某些表格,目前有ANSWER,TECH,COUNTRY,NPCDARE,ACCPRIV。 0 v4 K1 _2 i& B( E9 H- ?
数据库服务器上跑SuperServer、SessionServer、RecordServer、BillServer四个服务,4个网关服务器分别跑4个网关服务,5个场景服务器分别跑5个场景服务。场景服务器对应的ID就是国家配置的ID号,这个ID号决定场景服务器上面跑几个国家
; U8 ^0 i- ~4 D" d3 U8 D: I五、服务端的配置和安装 1、获得安装包: release-version.tar.bz2 map-version.tar.bz2 在/home/ztgame下建立以时间为名字的目录(game20050928),压缩包放入此目录,然后用tar jxvf release-version.tar.bz2 和tar jxvf map-version.tar.bz2解开压缩包
: }2 V6 v% @( W- y, t进入release目录,cp rf ../map . 按照config.xml.example格式创建文件config.xml 配置文件主要定义了服务器的各种参数: [global]这段主要定义了通用参数,如服务器本地网络设备名称,扩展网络设备名称,日志级别,SuperServer的服务器地址,端口等参数。" G, D, t* A7 {& K1 H$ h
其他各个段定义了具体的服务参数,主要是指定该服务对应的数据库,数据库的连接地址,端口,用户名,密码等数据库连接字符串。每个服务可以定义日志文件的存放位置,如果没有指定,缺省放置在/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。
/ J9 N! S- X# _- z5 |修改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/ /LoginServerList3 Z3 V Z, \3 _; ]( s7 H9 p% y
然后将修改好的版本传至其它9台服务器。并启动服务* ?* F- w @4 g* v
六、服务器的启动,停止和更新 1、将运行脚本传至各个服务器。* {( g& ]: `/ P1 B1 E
2、开启游戏服务
" J% R* o5 b: c4 p3 U) Q- Y; g通过ssh使用ztgame用户远程连接至第一台网关服务器,再通过网关服务器连接其他9台服务器, 10个窗口内分别进入最新的服务端存放目录/home/ztgame/game200508**/release/, }' r- _$ a6 q- S
数据库服务器 启动服务./SuperServer -d 和 ./SessionServer -d 和 ./RecordServer -d 和 ./BillServer -d 场景服务器 启动服务./ScenesServer -d 网关服务器 启动服务./GatewayServer -d4 w/ U" e4 L- A; d( j
以上操作可以通过/home/ztgame/tools/allstart game200508**来启动(由于程序是后台运行,所以如发现程序运行时间过长,可以CTRL+c中断,并不影响程序的正常运行。)8 @' h" r. C2 R a% m& c! ?
3、停止游戏服务
! D& a' R! t: R$ U# ?/ y通过ssh使用ztgame用户远程连接至第一台网关服务器,运行/home/ztgame/tools/allstop,中止所有服务 ,此脚本是并不是强行杀进程,所以如果发现进程无法kill的情况,用/home/ztgame/tools/allstop_9来强行杀死进程。+ K7 n9 H1 l% w: [" h( }" d) ?4 B9 B
4、查看游戏服务+ h3 c. @/ f+ {9 G% s" f
通过ssh使用ztgame用户远程连接至第一台网关服务器,运行/home/ztgame/tools/allview,查看所有服务运行状态。
4 o3 i+ _; k" @! W F( y9 \( x/ A- x5、更新游戏服务
3 X% j9 c: H) p# S通过ssh使用ztgame用户远程连接至第一台网关服务器,再通过服务器连接其他9台服务器, 分别在/home/ztgame目录下面建立最新的服务端存放目录game200508**., Q& C- J/ C. T, Z8 O% e
然后将服务器端安装包通过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/
# e4 {& z7 F& c, l3 N% K以上工作准备好后就可以将网关服务器上的版本传到其他服务器 scp -r /home/ztgame/game_new/* ztgame@192.168.100.111:/home/ztgame/game_new
- A: o% b: F. G5 B) I以上操作可以通过shell脚本来实现 /home/ztgame/tools/installPackage game_new game-old8 p! G) _, e2 }+ I
七、服务器数据的备份 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
+ Q$ |5 S4 ~, o6 \注:计划任务通过/etc/crontab e来进行设置上传,可以运行网关服务器 4)、即时日志备份 直接运行/home/ztgame/tools/upload 将最新日志上传至192.168.1.9服务器,方便研发部门查看。 运行脚本/home/ztgame/tools/upload,(如果所有服务器的日志都需要上的/home/ztgame/tools/allupload)% Q( Q2 d! o' Y5 W3 |: @# {: a m
7 B+ |5 o z' x) i
本版本为征途 1.03版服务端测试版本,对应的客户端为官方1.03,应用在LINUX系统上
$ \0 L9 b: r, ?# q0 O如果是自己无聊研究的话,请先自学LINUX系统知识,【本版本售价为1800 RMB 无实力者勿扰】 {. z/ N% e r( M) t1 W
浪花网络
% M2 Z/ L! v, x$ s. R6 X客服QQ:5163636742 z" ]2 M ~$ z+ J( R( p' g1 M6 O* v
电话:13231911761
) b& V8 z3 X/ z8 |1 a- p网站:www.gm010.com' E& l4 |) p8 e+ f$ U7 ^; M: e
【本版本售价为1800 RMB (送网站,登陆器300 RMB)无实力者勿扰】0 |6 m4 Y1 v! I( k! M* ^
下载地址:
|