Go Back   EQEmulator Home > EQEmulator Forums > Support > Support::Windows Servers

Support::Windows Servers Support forum for Windows EQEMu users.

Reply
 
Thread Tools Display Modes
  #1  
Old 04-20-2008, 09:29 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default Multiple PCs Running Zone Servers

First let me say that I have searched for this in the past and have found some information, but it wasn't nearly enough to get this running properly. I have only seen people post their config files, but from what I can tell so far, it seems like it takes much more than that to get this working properly. I experimented around quite a bit the other night and could not get this working the way I wanted.

What I want is to have my Server PC run all zones dynamically with the exception of a few zones that I want to run on a secondary PC statically.

So, I assume that I set the launcher_zones table to look like:

(Using navicat btw)

launcher | zone | port
zone | potimeb | 7250
zone | veeshan | 7260
zone | solrotower | 7270

I have my router to forward ports 7000 - 7249 to my Server PC and ports 7250 - 7500 to my Secondary PC. So, setting the launcher to these ports should send those zone requests to the Secondary PC (at least I think). Do I need to open any other ports to allow this, or does it communicate directly PC to PC on my LAN via the router? That is what I would imagine anyway. I only have the zone server ports and port 9000 forwarded atm. Do I need to open 3306 or 9080 or anything?

And here are the config files I was trying.

Server PC Config (IP 192.168.1.101):
Code:
<?xml version="1.0">
<server>
	<world>
		<shortname>stormhaven</shortname>
		<longname>Storm Haven - Custom Legit [sh.makeforum.org]</longname>

		<!-- Loginserver information.  Defaults shown -->
		<loginserver>
			<host>eqemulator.net</host>
			<port>5998</port>
			<account></account>
			<password></password>
		</loginserver>

		<!-- Sets the ip/port for the tcp connections.  Both zones and console (if enabled).  Defaults are shown -->
		<tcp ip="localhost" port="9000" telnet="disable"/>

		<!-- Sets the shared key used by zone/launcher to connect to world -->
		<key>some long random string</key>
		
		<!-- Enable and set the port for the HTTP service.  Defaults are shown -->
		<http port="9080" enabled="true" mimefile="mime.types" />
	</world>

	<zones>
		<defaultstatus>0</defaultstatus>
		<!-- Sets port range for world to use to auto configure zones -->
		<ports low="7000" high="7249"/>
	</zones>

	<!-- Database configuration, replaces db.ini.  Defaults shown -->
	<database>
		<host>localhost</host>
		<port>3306</port>
		<username>un</username>
		<password>pw</password>
		<db>peq</db>
	</database>

</server>
Secondary PC Config (IP 192.168.1.100):
Code:
<?xml version="1.0">
<server>
	<world>
		<shortname>stormhaven</shortname>
		<longname>Storm Haven - Custom Legit [sh.makeforum.org]</longname>

		<!-- Loginserver information.  Defaults shown -->
		<loginserver>
			<host>eqemulator.net</host>
			<port>5998</port>
			<account></account>
			<password></password>
		</loginserver>

		<!-- Sets the ip/port for the tcp connections.  Both zones and console (if enabled).  Defaults are shown -->
		<tcp ip="192.168.1.101" port="9000" telnet="disable"/>

		<!-- Sets the shared key used by zone/launcher to connect to world -->
		<key>some long random string</key>
		
		<!-- Enable and set the port for the HTTP service.  Defaults are shown -->
		<http port="9080" enabled="true" mimefile="mime.types" />
	</world>

	<zones>
		<defaultstatus>0</defaultstatus>
		<!-- Sets port range for world to use to auto configure zones -->
		<ports low="7250" high="7500"/>
	</zones>

	<!-- Database configuration, replaces db.ini.  Defaults shown -->
	<database>
		<host>192.168.1.101</host>
		<port>3306</port>
		<username>un</username>
		<password>pw</password>
		<db>peq</db>
	</database>

	<!-- Directory locations.  Remote Directory -->
	<directories>
		<quests>\\192.168.1.101\c\eqemu\quests</quests> -->
	</directories>
</server>

Next, I started the server from the server PC, but waited to hit <any key> to start zones loading until it was fully loaded on the Server PC and after I started zone.exe on the Secondary PC. I then hit the spacebar on the Server PC to start the dynamic zones all loading.

It seems like the results I am getting are that I can't zone to other zones and after trying multiple configs and setups, it seemed like it kept making the zones I set to load statically load with a dynamic port instead. I am guessing that is because it wasn't able to connect to the secondary zone server so it just loaded them dynamically.

Does anyone here know exactly what it takes to set one of these up the way I want? I have been able to get it to load all zones on the secondary PC, but I can't get it to split zones between the 2 PCs. I would MUCH appreciate if someone could provide a nice list of steps or walkthrough/guide on setting this up properly. Or if there is a post or wiki about it that someone knows of, I would appreciate being pointed in the right direction.

I know most of the preferred servers run multiple zone servers. If one of you guys see this and wouldn't mind telling me what I did wrong, that would be awesome!

Thanks in advance!

Oh, and here is a PM from Aramid that might give more info on what he found when testing this out.

Quote:
Yes, I was running all my zones on the 2nd server, but I generally like a challenge.

So, it took me until 3:00am to get it working, but I did and I will try to explain it as best as I can.

It seems it does NOT matter what you put in the eqemu_config.xml file as far as the port for the zones go. I had my 2nd server setup to use ports 7200-7300 and I put STATIC Zones in the DB and had them load up on 7200-7201-7203.

Well, The World Server wants to send you to that zone on the port it wants to. ie: I would log in my character and he was in POK. PoK was running on the 2nd server with ports 7200-7300 forwarded on the router. It would timeout and go back to the login screen. When checking the eqemu_debug_world.log, it would show me connection, being sent to pok, but not on the port that I booted the zone up with, but like 7009 which was not being forwarded to the 2nd server.

Anyway, to keep this from being a Novel, here what I finally did.

Set the configs up as you think they should be as far as the zone ports are concerned.

Create your 2 zone launchers in the DB and set the zones you want static on the 2nd server. and then configure your dynamic zones on the world server. I put my static on 7200-7201-7202.

The dynamics don't get assigned ports as you know.

Now, start the World Server and wait until it is fully booted up with the 5 dynamic zones.
Once it is completely booted up, boot up your 2nd Zone Server.

Now, run the Templates that comes with the Emulator and run on port 9080 by default. Go to the ZONES Link, not the status link and wait untill it shows you ALL of the zones it should be showing X Dynamics and 3 Statics. Notice what PORTS are assigned to them. These are the ports you must forward on your router to the machine where they are loaded up on... at least I thought.
I ended up having to forward the UDP ports before it would work. My router LinkSys RV082 has the TCP and UDP ports seperate and you can config each one individually. Once I forwarded the UDP ports, it all worked being setup the way I said above. The EMU Templates was what finally got me to thinking about which ports were forwarded to where... You'll see when you look at it... If you do get in touch with CaveDude, let me know what he tells you.
Sorry for the typos, but I'm half asleep now..

BTW, this was tested from the outside in. The servers are on my Comcast Cable connection and I logged in from my AT&T DSL line.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #2  
Old 04-20-2008, 10:13 PM
Aramid
Discordant
 
Join Date: May 2006
Posts: 356
Default

But it WORKS on my test servers... Did you load up the Web Templates in EQEMU and look at what ports it was loading the zones up in and then forward your router accordingly?
It takes some time for ALL of the zones to get fully loaded, so be patient for them all to appear. This is what I did and also found that I had to forward the UDP ports with the same ranges, why I don't know. I am using an RV082 LinkSys router and until I did, I still could not connect to a zone on the ZONE only server.
After I got it working, I shut it all down and restarted it and the port forwarding held true and I was able to access all of the zones I had loaded up.

I am beginning to think that you don't need to set ports in the 7000 range on the Zone only server because they are used by WORLD , not zone. It says it right there in the config file.
ie:<!-- Sets port range for world to use to auto configure zones -->
__________________
Random Segments of Code....

Last edited by Aramid; 04-21-2008 at 06:16 AM..
Reply With Quote
  #3  
Old 04-21-2008, 12:53 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Ya, I think the setting in the config file is just the max port range you want set for dynamic zones to have access to.

So, does anyone know if the players connect directly to the secondary zone server PC, or do they go through the main server that is running the world to get there?

I did notice that zones were being loaded on other ports besides the 7000 range. I think most of them were in the 2000 range when actually loaded. So, in order to set this up properly, I need to forward the 2000 range ports that I see in the templates to my secondary server in my router config? Or are those 2000 ports something else that can be ignored?

Sorry if I am over-complicating this lol. I just don't want to have my server down for a couple hours again working on this tonight. Trying to verify as much as I can before I start messing with it again.

Does anyone know exactly how this works and how to get it setup? I don't want to have sloppy configs or open up extra ports that don't need to be opened.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #4  
Old 04-21-2008, 05:39 AM
Aramid
Discordant
 
Join Date: May 2006
Posts: 356
Default

One more time...
Did you look at the ZONES in the EQEMU Web Templates to see what PORTS to Forward on your router?
__________________
Random Segments of Code....
Reply With Quote
  #5  
Old 04-21-2008, 06:39 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Sorry Aramid, lol. Just trying to get as much info as I can before trying the changes again. I don't like having the server down for a long period of time while I mess with this stuff. I would like to get it right on the first try (well this time anyway).

I tried opening up the templates, but they all show some weird errors and don't display properly. Do I need to have something special configured or running to get them to work? I tried opening up port 9080 to see if that made a difference, but I don't see any. Do I have to access it from another machine for it to work or something? I have some Apache and PHP stuff setup on this PC, but that doesn't seem to make them work either. I have tried loading them in IE and Firefox, but both get the same issues. I didn't see any kind of config file to mess with.

It seems like the templates are calling to use perl, but perl isn't working for them. Any ideas?

Also, my router lets me forward TCP or UDP packets or both. I just set them all to both.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #6  
Old 04-21-2008, 07:22 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

So, I have tried using http://localhost:9080 to get to my server and it prompts me to login. But, no matter what login I try to use, it isn't working. I have tried accounts on my server and accounts for my database, but none work.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #7  
Old 04-21-2008, 09:51 AM
Aramid
Discordant
 
Join Date: May 2006
Posts: 356
Default

Quote:
Originally Posted by trevius View Post
So, I have tried using http://localhost:9080 to get to my server and it prompts me to login. But, no matter what login I try to use, it isn't working. I have tried accounts on my server and accounts for my database, but none work.
You need to use an account with a Staus of 200 or higher I believe. Just use one that is 250. Setup a password in the DB for this user.

Doing it now will let you SEE what I am talking about. You will be able to see what 7000(s) ports are being used now. Same will be when you install 2nd server. All Launchers will show up under Zones.

Remember, this is Zones from the menu on the left, not under the Launcher which will give you the port number it was launched from.. which I don't know why they don't remain the same, but they don't.
__________________
Random Segments of Code....

Last edited by Aramid; 04-21-2008 at 05:54 PM..
Reply With Quote
  #8  
Old 04-21-2008, 02:38 PM
AndMetal
Developer
 
Join Date: Mar 2007
Location: Ohio
Posts: 648
Default

To rewind, what is the name of the launcher you use to load the dynamic zones? Is it also zone?
__________________
GM-Impossible of 'A work in progress'
A non-legit PEQ DB server
How to create your own non-legit server

My Contributions to the Wiki
Reply With Quote
  #9  
Old 04-21-2008, 04:02 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

I believe that all of the launchers are zone. As far as I know, when setting a static zone the launcher_zones has to have "zone" set in it. And I am pretty sure it uses the same one for dynamics by default. But, it looks like you can set the launcher in the confix xml file.

And, I have been trying to login to my server through the browser, but it won't let me in even if I use my highest status account which is set to 250 status. I don't have a clue why.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #10  
Old 04-21-2008, 07:09 PM
Aramid
Discordant
 
Join Date: May 2006
Posts: 356
Default

Quote:
Originally Posted by trevius View Post
I believe that all of the launchers are zone. As far as I know, when setting a static zone the launcher_zones has to have "zone" set in it. And I am pretty sure it uses the same one for dynamics by default. But, it looks like you can set the launcher in the confix xml file.
They don't have to be zone, they can be called anything you want. Do you not run eqlaunch with zone after it? ie: eqlaunch.exe zone

You can change the name of zone to anything you want.
Then just change your startup to eqlaunch.exe NOFLYZONE or whatever you name it.
You would have to use different ZONE names for the 2 servers or else they will both try to load up the SAME zones. This is why I named mine ZONEW (World Server Zones) and ZONEZ (Zone Server Zones).

Quote:
Originally Posted by trevius View Post
And, I have been trying to login to my server through the browser, but it won't let me in even if I use my highest status account which is set to 250 status. I don't have a clue why.

Did you go into your DATABASE and enter a PASSWORD in the PASSWORD field for this account? This has nothing to do with Game Login... Look at your account in the DB and see if you have a Password set.
__________________
Random Segments of Code....
Reply With Quote
  #11  
Old 04-21-2008, 07:30 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Well, I am learning something new with every post you make, LOL!

Ya, I am using the batch file setup from the wiki server setup guide:

Code:
@echo off
start world.exe
cls
echo Wait for World to finish loading... Press Enter when done.
pause
start eqlaunch.exe zone
exit
So, if I am reading what you are saying correctly, I can setup the Main server PC batch as:

Code:
@echo off
start world.exe
cls
echo Wait for World to finish loading... Press Enter when done.
pause
start eqlaunch.exe zonew
exit
And then I am guessing I need to run eqlaunch.exe from the zone server? I was runnin zone.exe, so that was probably part of my problem lol. I am pretty sure I don't want to load world.exe on my zone server unless I was running it as my test secondary server. So, I imagine the batch file to start the zone server should look like:

Code:
start eqlaunch.exe zonez
exit
And thanks for the info on the login account. I did not set a password in it. I know it is blank by default since only the login server actually sees the passwords. I tried even using blank for the password, but that didn't work. I guess it requires some kinda password to be set for it to work.

So, if I set a password in the database for my admin account with status 250, will it still let me log in through the login server? I would think it should as long as the passwords both match. Otherwise, I could just create a new account with status 250 just for the web interface access.

Thanks again for all of your help on this Aramid! By the time I get this all setup I will have plenty of new knowledge and understanding of how this all works. I can't believe I never looked into setting up the templates to work. They seem like a really cool feature!
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #12  
Old 04-21-2008, 08:18 PM
Aramid
Discordant
 
Join Date: May 2006
Posts: 356
Default

Yes on the batch files.

Yes on the eqlaunch from the zone only server, just remember to change the name in the launcher table, in the DB as well, not just in the .bat file. ZoneW would have the 5 for the 5 dynamic zones and zonez would have a 0 for no dynamic zones. Then in launcher_zones table, you enter the zonez name and the zones you want to load statically and the startup port, which apparently ends up having nothing to do with port forwarding on your router. Forward the ports as they show up in the Templates ZONES page.
Start your World Server 1st and let it load it's zones, then when it is completely up and running, start the Zone Only Server.

You can only run WORLD on 1 Server, not both unless you are going to run a seperate EMU Server.

Eqlaunch is what launches the zones, I do believe it is required....

Yes, you can still use the Account to login and play the game as the login server only passes the LS ID #, not the password, so they do NOT have to match.
__________________
Random Segments of Code....
Reply With Quote
  #13  
Old 04-22-2008, 07:58 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

OK, I finally got everything to work accept for 1 thing. I can't figure out how to set my zone server to map to the quest directory on my world server.

Here is the snippet from the config file that I would think should set the mapping:
Code:
	<!-- Directory locations.  Defaults shown -->
	<directories>
		<quests>Z:\quests</quests>
	</directories>
I have tried mapping to it using \\servername\c\eqemu\quests, and I have tried mapping a drive to it as shown above. No matter what I do, it seems to only want to use the quest directory on the local PC for the zone server in those static zones. This isn't a huge deal, since I can just copy the folders over for the 5 static zones I have currently running on it after I make any quest changes there, but it would definitely be nice to have it running the right way.

Thanks again for all of your help Aramid! I certainly couldn't have gotten this working without you. My players will owe you thanks as well
Also, the whole thing about the port settings in the zone_launcher is confusing and annoying. Like you said, the port settings there seem to have no effect at all on what ports the zones load on. They load in the order that they are started starting at whatever port number you have set in the world server config.

I set mine up a little different than the way you did. I was running into an issue that way. I have 45 dynamic zones set to load on my world server and it takes so long to load them all that I get players logging into them before they are all up. This causes a problem if players load into one of the zones that are set dynamic on the zone server, because it will load a dynamic version when players log in, and then load the static one when I start the launcher on the zone server. So, to get around this, I had to set my static zones for the zone server on ports 7000-7004 and change all of my settings accordingly. Then, I set the world server to 7005-7050. This way, I start the launcher on the zone server first and THEN start the world server up. So, when it first starts, it loads the statics immediately. Then I hit a key to start the dynamic zones loading on the world server.

So far it seems to be working ok. If I can figure out this last issue with the quests, I will try to write up a guide to help people get these setup in the future, since everything I could find was little to no help with getting this setup properly. Heck, maybe I will stick it in the wiki if I can get that figured out. Haven't ever messed with updating a wiki before lol.

Thanks again for the help Aramid! I certainly couldn't have gotten this to work without you. My players will owe you thanks as well!
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!

Last edited by trevius; 04-22-2008 at 04:01 PM..
Reply With Quote
  #14  
Old 04-22-2008, 11:07 AM
Aramid
Discordant
 
Join Date: May 2006
Posts: 356
Default

I didn't even try to use one area for the quest, I have them on both servers, as this too would probably help keep the load balanced, unless it's world that's running all the quests anyway. Coders will have to let us know if the code allows for drive changes to the locations or just folder/directory changes.

If you get the Templates running, you can start up your world and then LOCK it via the Templates OR, make it LOCKED by default on boot up and then UNLOCK it when all the ones are up.

Glad I was able to help you get it up and running.
__________________
Random Segments of Code....
Reply With Quote
  #15  
Old 04-22-2008, 02:48 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Well, nexus crashed and for some reason restarted on 7050 which made the zone unreachable. I don't know why it would restart on another port when port 7002 was still available...

Code:
delveb (delveb)	7000	Players	View Log	Restart - Kill
potimeb (potimeb)	7001	Players	View Log	Restart - Kill
solrotower (solrotower)	7003	Players	View Log	Restart - Kill
veeshan (veeshan)	7004	Players	View Log	Restart - Kill
Dynamic: Idle	7039	Players	View Log	Restart - Kill
Dynamic: Idle	7040	Players	View Log	Restart - Kill
Dynamic: Idle	7041	Players	View Log	Restart - Kill
Dynamic: potimeb (potimeb)	7042	Players	View Log	Restart - Kill
Dynamic: frozenshadow (frozenshadow)	7043	Players	View Log	Restart - Kill
Dynamic: Idle	7044	Players	View Log	Restart - Kill
Dynamic: Idle	7045	Players	View Log	Restart - Kill
Dynamic: povalor (povalor)	7046	Players	View Log	Restart - Kill
Dynamic: Idle	7047	Players	View Log	Restart - Kill
Dynamic: stillmoonb (stillmoonb)	7048	Players	View Log	Restart - Kill
Dynamic: Idle	7049	Players	View Log	Restart - Kill
nexus (nexus)	7050	Players	View Log	Restart - Kill
Anyone that has been running a server with multiple zone servers for a while able to lend a hand, please lol?
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 10:09 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3