软件简介:, s$ ~2 C& y: q
本版本为征途 1.03版服务端测试版本,对应的客户端为官方1.03,应用在LINUX系统上' s5 C: p9 D' l3 }* O
如果是自己无聊研究的话,请先自学LINUX系统知识,【本版本售价为1800 RMB 无实力者勿扰】
7 h1 |$ y4 P3 S/ E- X" Q( w' F7 V浪花网络
; j- q* K. c' f8 b- m) d客服QQ:516363674. l0 c1 N5 U# Y" D% \$ {
电话:13231911761
7 W9 N$ E, z$ U* o网站:www.gm010.com
l2 | V. x3 @) y4 }0 E5 S【本版本售价为1800 RMB (送网站,登陆器300 RMB)无实力者勿扰】
% g% M1 \, l- F测试版本不提供技术支持!!!!- G I: g9 v1 D3 w3 e
4 h- U$ y0 C+ B/ m/ Z( [征途服务端架设说明:2 O: l' Y+ p$ R
游戏服务器注意事项
- [' R% q$ u8 D/ W一、硬件的安装 8 A# W4 B) g: P
1、保证服务器风扇正常转动。 1 k6 n% W9 Z! Z
2、保证服务器各个提示灯是否正常。
2 h" v o0 O1 K3、开机察看服务器有无报警情况。 $ p( Q$ m# L! i' S9 o6 D3 q$ y
4、开机察看服务器能否正常启动(不插鼠标键盘的情况下)
9 `% _% v3 w, @二、系统的安装
8 w k' [- [+ F8 d- M5 K1、 安装RHEL 4.1
) `3 o) V0 l6 _* t7 T2、 选择自动分区。 ; e! V% M0 F, Y. r0 Z
3、 分别给2块网卡配置ip,方便以后配置,其中eth0配内网ip,eth1配外网ip。 0 K2 a g- b" w$ _3 l
4、 不启用防火墙。
" \: r; |1 c; y% {5、 增加中文语言包。 ) W" K3 a' F0 c3 m4 l: e) d
6、 选择软件包时,只选择开发包.$ x5 K- t5 t, o" m5 d
; a% C6 V% b& H' a/ M三、系统的简单设置
+ O8 y- p* S5 j1、防火墙的简单设置: * S; U( K% X7 O1 T3 K/ I
vi /etc/rc.d/forward 4 `' Z* c) X' H% E) i
内容:(例子)
2 z1 j4 b) |$ q' X" N#!/bin/bash 8 s2 P- z# L; w: E
echo 1 /proc/sys/net/ipv4/ip_forward
( y1 K1 N$ Y! ^& ~0 r7 u# T3 e( zif [ -e /proc/sys/net/ipv4/tcp_ecn ] . _* M0 Q7 p; L$ Z1 N0 T6 _9 L" ^6 Z! g
then " k0 d3 O3 c3 }! u. d! q2 x
echo 0 /proc/sys/net/ipv4/tcp_ecn
* g* I9 B9 I' Z! ?0 W7 I/ Wfi
- `- j0 [1 ~& ]/sbin/iptables -F ) v. D5 A/ S% ?; v4 W
/sbin/iptables -F -t nat
- k. n, ]% q1 R/ X: q& A. ~/sbin/depmod -a
- t8 Q. U4 E& F/ Q& v* }/sbin/modprobe ip_tables
k8 J; n* z" z0 p2 U. q H/sbin/modprobe ip_conntrack
7 V- o. F$ Z8 W1 s, ?4 t/sbin/modprobe ip_nat_ftp
6 r# \# M5 N6 W/sbin/modprobe ip_conntrack_ftp 2 B* H8 F% q* j( [# c/ o
/sbin/iptables -A INPUT -i lo -j ACCEPT
$ ^+ z; z7 v' K. W9 l+ b" n8 f/sbin/iptables -A INPUT -i eth0 -j ACCEPT , z6 l; @9 ~& e5 H9 m8 W( V& {
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
: P- L5 I4 W/ J, |9 h$ ~( L#/sbin/iptables -A INPUT -i eth0 -p tcp -j REJECT --reject-with tcp-reset + [% e" V) e" e6 ~8 W9 {" u
/sbin/iptables -A INPUT -i eth0 -p udp -j REJECT --reject-with icmp-port-unreachable
8 P# c3 L, D2 o0 H#sshd % t/ V- @" l$ P2 V# z
/sbin/iptables -A INPUT -s 218.80.198.234 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 4 O8 l+ `, y" s7 q' x6 q
/sbin/iptables -A INPUT -s 218.80.198.250 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT * R: ?3 j9 B# Q/ l1 A& M3 F+ g
/sbin/iptables -A INPUT -s 210.22.188.21 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT/ f; y1 y g7 d* S* [
#ftp server 3 A; s) i2 r; g! \/ v
#/sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT- {- @' P+ v3 U% L7 J( |9 i
#game server
! x `( a( C3 o" D. ] C/sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 6020 -j ACCEPT' E" d6 ~/ A2 }
#db server 3 A$ [. D6 F% K% T1 I8 P; _; w
/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
: m! \- b& W& b" D/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! Y: z& E. L+ U* k; |/ Q2 v% \ _) F/ X
/sbin/iptables -P INPUT DROP% x9 |( ]. D7 r9 Z4 s. R
/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 192.168.102.0/24 -j MASQUERADE
. A1 x9 X0 z* W保存后退出。
' t, t3 X0 p" Y, U1 k' Cchmod 744 /etc/rc.d/forward 6 }$ Y! z7 g+ n8 l( P1 `8 r
然后运行防火墙脚本,以后根据需求修改脚本。
. h* l5 p( \/ X3 K7 s再vi /etc/rc.d/only_forward + g; v( ?! ?+ l7 p- b2 V
#!/bin/bash
. H* X0 b8 Y$ A( Q4 {* K/ `echo 1 /proc/sys/net/ipv4/ip_forward 0 H: g. B! T) a2 o
if [ -e /proc/sys/net/ipv4/tcp_ecn ] 1 @7 X! r- k3 C) a
then
4 p: K9 k4 E, `0 e1 a8 Gecho 0 /proc/sys/net/ipv4/tcp_ecn
- G5 t: @& R2 x6 Q' d7 Z# Afi # [7 u8 x$ x& {1 t1 n; J7 @
/sbin/iptables -F 3 J3 N2 L1 W% }- C: p% V
/sbin/iptables -F -t nat 1 P' {; c; J3 b
/sbin/depmod -a * R, y( j; q$ U
/sbin/modprobe ip_tables
5 o. A* U. }! U: M6 d9 a5 Y+ o( C/sbin/modprobe ip_conntrack ; R/ _: w8 s0 k2 Z
/sbin/modprobe ip_nat_ftp $ x8 ~- A: d3 Q1 m7 Y2 x3 J- V
/sbin/modprobe ip_conntrack_ftp : M5 B+ y- ^9 W1 K- F0 L
/sbin/iptables -A INPUT -i lo -j ACCEPT
# ^$ c* N) d7 S- j8 @ U/sbin/iptables -A INPUT -i eth0 -j ACCEPT 8 M: X* r" V5 C$ H
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT . p& D* Q. g" ]4 y9 y$ L( m5 X
#/sbin/iptables -A INPUT -i eth0 -p tcp -j REJECT --reject-with tcp-reset
+ q# U& z! L8 R! l: m+ P( d/sbin/iptables -A INPUT -i eth0 -p udp -j REJECT --reject-with icmp-port-unreachable4 `- m4 ?! s+ H; y% F
! |: W4 O1 \* K5 {& d9 l5 ^; e
#sshd
" e* n3 }7 t1 z) B' S/sbin/iptables -A INPUT -s 218.80.198.234 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
* H3 `$ E8 u8 w4 s+ _) N# H2 V9 p% z/sbin/iptables -A INPUT -s 218.80.198.250 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT + J- I9 S J- g, d- i5 Y
/sbin/iptables -A INPUT -s 210.22.188.21 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT; W6 p7 F6 C! F8 T
#ftp server 5 {2 N+ r' d7 B0 k
#/sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT! p( ]: U( y) _1 N. s- f
#game server
: y" M& N# B8 A3 u0 w# ^6 G. s/sbin/iptables -A INPUT -s 218.80.198.234 -p tcp -m state --state NEW -m tcp --dport 6020 -j ACCEPT* a K1 v4 C$ k
#db server , X Q. x. U5 F$ n# s- x
/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 - l: C9 p) T- i( C" Y; O! O
/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# r* R& v2 n5 K7 z* t, v# U! f6 q
/sbin/iptables -P INPUT DROP. X4 ~8 h5 U+ o+ A
/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 192.168.102.0/24 -j MASQUERADE
" f; I- d8 G5 |9 q- d此防火墙只允许公司的电脑可以登录游戏。
) M, l) }0 n* O, j2 K$ @2、设置系统自动启动防火墙
3 a, w9 {6 i, s1 ?6 M5 Avi /etc/rc.d/rc.local
( Q+ W0 v' Y s; p/ q1 r增加一行
, y. _! l2 h! a/ ]4 K* y) p/etc/rc.d/forward # Q5 ^4 B* D' C( F. N- V# ^2 e
保存后退出
/ A5 b' L" c) K1 @) A3、设置文件打开数 8 u" e; f0 E# v g+ k
1) 修改/etc/security/limits.conf 增加2行:
# g& V3 J+ c c. @% W* soft nofile 4096
x; A n- M: O$ B9 Z* hard nofile 65535
% D( K: C) r9 ?' s3 \: @2) 修改/etc/pam.d/login 增加1行
5 ?( J l8 p; v( Msession required pam_limits.so 1 p+ }# |& }4 j
可用:
7 `0 q) Q3 D6 Z8 }. r3 Kecho * soft nofile 4096 /etc/security/limits.conf ) [8 r N3 V3 X6 `0 d) Q6 v
echo * hard nofile 65535 /etc/security/limits.conf ! R) S4 ^% R( Q- z7 s- R
echo session required pam_limits.so /etc/pam.d/login 0 X6 h1 c" r0 O) j9 {
4、修改默认语言
- _5 F& A/ G$ Y, ]: Evi /etc/sysconfig/i18n 修改5 ], T! }$ F, ^$ P% K: \7 A
LANG=zh_CN.GB2312
% S. z7 E+ |' f$ H2 |7、 新建游戏运行用户ztgame,设置密码
* W/ G9 z1 W6 E; ^useradd ztgame
/ t6 h4 q2 K4 {0 O# [5 M, W0 P. upasswd ztgame
& J0 C0 X& T1 _8、 用ztgame用户登录服务器,修改vi /home/ztgame/.bash_profile增加一行 # {1 Z# D& R2 I* d, p! [
ulimit c unlimited " D4 K( r! e3 `$ F! {9 {
保存后退出。
! f. ?8 e* q# ^% {4 T) _ A' \: b% J, M7 J! n1 Q
四、游戏环境的搭建(按照4台网关服务器,5台场景服务器,1台数据库服务器的构架)
9 M. b% U# Q& \! g1、服务器IP设置 3 C" w2 i. n" d3 Y
4台网关服务器配置外网ip和内网ip,5台场景服务器和数据库服务器只配置内网ip,并且服务器默认网关为第一台网关服务器的内网ip。
0 T! {5 @$ m. d% f$ u; u% j+ E2 D服务器以服务器应用-序号-机房序号命名(例GWServer01-CHJ01)。
# E. u: n, m# s: |修改/etc/hosts。 5 x3 m$ G, I1 k! \# ^5 s, N
例子: ) N7 i0 S8 `4 o9 {6 d6 a
127.0.0.1 GWServer01-CHJ01 localhost.localdomain localhost * m" r4 t, a7 a" m3 O7 K+ O# L
192.168.100.101 GWServer02-CHJ01
3 S3 z1 M6 N0 R 7 V( @; H L9 [7 n$ Z4 g9 C" u
192.168.100.104 ScenServer01-CHJ01 & X' i& W, n2 z& n9 O3 ]
, N4 ]6 E) D9 c& {, ?" a! y
192.168.100.109 DBServer-CHJ01/ y* g$ ~2 O" t9 C3 V- v/ ?
2、公钥的生成 : p, U! x& t, K+ @4 D
在ztgame的用户下登陆第一台网关服务器,输入ssh-keygen -t dsa # D7 ^! B; F2 k* S1 _( n% r7 W: Z
接受 ~/.ssh/id_dsa 的默认位置。输入一个与你的帐号口令不同的口令句,再输入一次来确认。公钥被写入 ~/.ssh/id_dsa.pub。密钥被写入 ~/.ssh/id_dsa。 % T3 B, D! }, Q- r9 T. W/ c
使用以下命令改变你的 .ssh 目录的许可权限:
( X6 ~! ?: \4 L1 e* A2 Qchmod 755 ~/.ssh
: _; N* G8 n5 @: X9 M+ w7 j把 ~/.ssh/id_dsa.pub用scp命令传到其它剩余9台服务器
9 {; Q( V3 n$ c8 T7 Rscp~/.ssh/id_dsa.pub ztgame@192.168.102.108:~/.ssh/authorized_keys2 h2 @- I9 D: Y4 e" A" V. I
在其它9台服务器下使用以下命令改变你的 authorized_keys 文件的许可权限: 7 F( X: h: ]2 ^
chmod 755 ~/.ssh & ^6 O; L4 m* A
chmod 644 ~/.ssh/authorized_keys! u1 }$ L+ i# O1 s) V' l
3、数据库服务器的安装
( v3 F. p# \8 h* I" `0 J#首先确定你是root用户 . s. B8 p" Q U; I- u H% M
#确定你有以下包
* f' y1 g' Q: ?7 E$ D5 Eperl-DBD-MySQL-2.9004-3.1
7 p: \8 b0 d( h( kperl-DBI-1.40-5
/ t& H3 c8 G/ T7 ]1 amysql-4.1.7-4.RHEL4.1 ' d$ P: h6 L$ l0 t: ~
获得mysql-4.1.*.tar包,用tar zxvf mysql-4.1.*tar解开压缩包,然后进入mysql-4.1.*目录
+ b% a9 A; h+ `& ~ J4 e#根据体统类型选择编译方式 % v3 C1 z0 S, q. ]9 a
#i386体系结构的 k( E: V% Q9 l& p+ T( ]7 w5 n1 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 L: I% |1 x% n3 a w E#strip可执行文件
8 m. m7 h6 j5 q& D" Hstrip /usr/local/mysql/libexec/mysqld0 L2 z' h0 p" m( `) W: Q' j
#添加LIB PATH
8 G7 y1 b7 ^( Z7 l9 pecho /usr/local/mysql/lib /etc/ld.so.conf mysql_install_db) t6 R a; Z: f$ A U; _
#启动服务器
8 F7 l6 ?% J- u! H, K! nsu - mysql -c mysqld_safe --skip-name-resolve --open-files-limit=4096
; A- p( m B9 P! T E#创建数据库和用户 ! L+ g" U q1 |. K9 P( {9 o3 f
GRANT ALL PRIVILEGES ON *.* TO ztgame@'192.168.104.%' IDENTIFIED BY '' WITH GRANT OPTION;
; u0 m1 I! [- u' A( |" YGRANT ALL PRIVILEGES ON *.* TO ztgame@'localhost' IDENTIFIED BY '' WITH GRANT OPTION; / I+ Z+ b! L. Y6 K1 g9 Y
GRANT ALL PRIVILEGES ON *.* TO ztgame@'218.80.198.234' IDENTIFIED BY '' WITH GRANT OPTION;& _9 p, B4 P: c
4、数据库配置 ' z2 T/ K$ u. Y0 W" ^+ ? X
用mysql进入,然后用create database dbname创建数据库。分别创建SuperServer、RecordServer、Bill数据库,然后用安装包目录下的*.sql的文件建立相应的表。(SessionServer.sql也导入到RecordServer库中)。 " y- V6 W5 q3 X/ B! B* L- r) i4 R
在SuperServer数据库SERVERLIST表内添加服务器配置信息。
, k. D# N9 E" P& J T0 v8 M7 i例子:
; f( K5 { }$ y( M+ n- ]. _$ _. }$ [INSERT INTO `SERVERLIST` VALUES (1,1,'SuperServer','192.168.104.109',10000,'192.168.104.109',10000);
* x ~6 c% E/ Q4 V/ N j( JINSERT INTO `SERVERLIST` VALUES(20,20,'SessionServer','192.168.104.109',6000,'192.168.104.109',6000); 2 t* J# F8 e9 l
INSERT INTO `SERVERLIST` VALUES(21,21,'SceneServer','192.168.104.104',6010,'192.168.104.104',6010);
) q3 }- e4 j0 m- t8 HINSERT INTO `SERVERLIST` VALUES(22,21,'SceneServer','192.168.104.105',6011,'192.168.104.105',6011); $ i! H& f. T' V4 C- O; X2 \
INSERT INTO `SERVERLIST` VALUES(23,21,'SceneServer','192.168.104.106',6012,'192.168.104.106',6012); $ z+ R* U. K |8 F; K- ~2 B, l& m
INSERT INTO `SERVERLIST` VALUES(24,21,'SceneServer','192.168.104.107',6013,'192.168.104.107',6013);
* Y0 Q" I9 r7 N% ?$ y. n h' `. CINSERT INTO `SERVERLIST` VALUES(25,21,'SceneServer','192.168.104.108',6014,'192.168.104.108',6014); : W/ r; S- r" p# s3 r( N
INSERT INTO `SERVERLIST` VALUES(2200,22,'GatewayServer','192.168.104.100',6020,'210.51.23.132',6020); 1 c" j, T* g- e# D1 |4 Q9 k3 Z
INSERT INTO `SERVERLIST` VALUES(2201,22,'GatewayServer','192.168.104.101',6020,'210.51.23.133',6020);
0 L' L' A1 x* m' MINSERT INTO `SERVERLIST` VALUES(2202,22,'GatewayServer','192.168.104.102',6020,'210.51.23.134',6020); 9 R0 G! v. h6 k
INSERT INTO `SERVERLIST` VALUES(2203,22,'GatewayServer','192.168.104.103',6020,'210.51.23.135',6020); * ~) i5 _/ U$ o3 k4 e$ a- d
INSERT INTO `SERVERLIST` VALUES(11,11,'RecordServer','192.168.104.109',7010,'192.168.104.109',7010);
+ q" ?4 ?- [4 s6 J9 N( o3 cINSERT INTO `SERVERLIST` VALUES(12,12,'BillServer','192.168.104.109',7020,'192.168.104.109',7020); - k! B+ I* P5 u5 i
在RecordServer数据库上初始化某些表格,目前有ANSWER,TECH,COUNTRY,NPCDARE,ACCPRIV。
2 l/ d) }# g! ?- |数据库服务器上跑SuperServer、SessionServer、RecordServer、BillServer四个服务,4个网关服务器分别跑4个网关服务,5个场景服务器分别跑5个场景服务。场景服务器对应的ID就是国家配置的ID号,这个ID号决定场景服务器上面跑几个国家8 p, H. P- f3 y: p2 r9 R8 e0 j
五、服务端的配置和安装 1、获得安装包: release-version.tar.bz2 map-version.tar.bz2 在/home/ztgame下建立以时间为名字的目录(game20050928),压缩包放入此目录,然后用tar jxvf release-version.tar.bz2 和tar jxvf map-version.tar.bz2解开压缩包5 K- C; H( T" ~# X7 A
进入release目录,cp rf ../map . 按照config.xml.example格式创建文件config.xml 配置文件主要定义了服务器的各种参数: [global]这段主要定义了通用参数,如服务器本地网络设备名称,扩展网络设备名称,日志级别,SuperServer的服务器地址,端口等参数。
& U$ h; y: i& k其他各个段定义了具体的服务参数,主要是指定该服务对应的数据库,数据库的连接地址,端口,用户名,密码等数据库连接字符串。每个服务可以定义日志文件的存放位置,如果没有指定,缺省放置在/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。! Q9 E" @: d6 a D2 ?) C
修改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& B8 @( a" b* l3 j' w% R! C
然后将修改好的版本传至其它9台服务器。并启动服务) z% y; g. u$ J2 l6 k/ V
六、服务器的启动,停止和更新 1、将运行脚本传至各个服务器。
2 S6 W+ G- ?. x. {2、开启游戏服务
' j( o8 a5 S: \通过ssh使用ztgame用户远程连接至第一台网关服务器,再通过网关服务器连接其他9台服务器, 10个窗口内分别进入最新的服务端存放目录/home/ztgame/game200508**/release/* I) b2 n9 U9 k+ S- H& e7 J1 ]
数据库服务器 启动服务./SuperServer -d 和 ./SessionServer -d 和 ./RecordServer -d 和 ./BillServer -d 场景服务器 启动服务./ScenesServer -d 网关服务器 启动服务./GatewayServer -d& g, D- Y w' R1 D
以上操作可以通过/home/ztgame/tools/allstart game200508**来启动(由于程序是后台运行,所以如发现程序运行时间过长,可以CTRL+c中断,并不影响程序的正常运行。)
4 s8 b: I6 ^' ]* Q# ]7 P( o1 L3、停止游戏服务
% ]; }+ R6 Z; ?' g( X4 C通过ssh使用ztgame用户远程连接至第一台网关服务器,运行/home/ztgame/tools/allstop,中止所有服务 ,此脚本是并不是强行杀进程,所以如果发现进程无法kill的情况,用/home/ztgame/tools/allstop_9来强行杀死进程。/ L: d% x8 f( F6 E9 w$ S3 q2 [: g
4、查看游戏服务$ W& i9 B- H+ }2 d) M( k
通过ssh使用ztgame用户远程连接至第一台网关服务器,运行/home/ztgame/tools/allview,查看所有服务运行状态。- O+ g3 N) E4 _( @# S! P: @8 ~0 |; ]
5、更新游戏服务
~: j2 D9 I, t通过ssh使用ztgame用户远程连接至第一台网关服务器,再通过服务器连接其他9台服务器, 分别在/home/ztgame目录下面建立最新的服务端存放目录game200508**./ b# J' [7 o- c# _ y0 v
然后将服务器端安装包通过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/& J* B) e q3 I+ @2 F* a
以上工作准备好后就可以将网关服务器上的版本传到其他服务器 scp -r /home/ztgame/game_new/* ztgame@192.168.100.111:/home/ztgame/game_new6 s I8 Q1 ^; u3 _$ g; ^; f; H
以上操作可以通过shell脚本来实现 /home/ztgame/tools/installPackage game_new game-old+ ]' M: A7 G+ F, v6 z2 Q
七、服务器数据的备份 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/ n' F, A, c$ ~. v; U* `2 D
注:计划任务通过/etc/crontab e来进行设置上传,可以运行网关服务器 4)、即时日志备份 直接运行/home/ztgame/tools/upload 将最新日志上传至192.168.1.9服务器,方便研发部门查看。 运行脚本/home/ztgame/tools/upload,(如果所有服务器的日志都需要上的/home/ztgame/tools/allupload)
( s1 |, a2 c) M: C$ W/ }5 t5 N( m/ G2 S) N( l! w# L; L9 l8 w% ]
本版本为征途 1.03版服务端测试版本,对应的客户端为官方1.03,应用在LINUX系统上7 K$ u3 T7 l7 S/ v7 T
如果是自己无聊研究的话,请先自学LINUX系统知识,【本版本售价为1800 RMB 无实力者勿扰】
; j/ K3 d% D# s- W9 u1 j8 S5 P浪花网络 , y/ Q% L0 y# ~# w( H$ h
客服QQ:516363674
3 Q3 J4 `4 l) D: N1 ]( W& X* G" X7 y电话:13231911761
$ S; z% R2 I# m, U网站:www.gm010.com
& N7 N3 B7 B* \. D9 ?% J【本版本售价为1800 RMB (送网站,登陆器300 RMB)无实力者勿扰】
6 q1 b3 H& a/ N G& |% J下载地址:
|