Closed GoogleCodeExporter closed 8 years ago
No, I believe Gridworks only needs to be installed on a single machine.
Given the address of a project e.g.
http://127.0.0.1:3333/project.html?project=1874250169833 I think the problem
is that the IP address 127.0.0.1 (http://en.wikipedia.org/wiki/Localhost)
should be swapped with the external IP address of the machine on which
Gridworks is installed - you can find it using 'ipconfig' from the command line
on windows (I'm not sure for other OS's), or try http://www.whatismyip.com/
You may also have to ensure any firewall is set up correctly to allow your
network access to the 3333 port.
Does this help?
Original comment by iainsproat
on 14 Jun 2010 at 9:07
I shall try this on my home computer (no Gridworks installed) tonight before
sending the URL of my data to my boss. Work computer may or may not have a
firewall, not keen to ask my sysadmin for what should be a rather simple thing.
Thanks again.
P.S. Linux uses 'ifconfig' .
Original comment by aery...@gmail.com
on 14 Jun 2010 at 10:49
Hi, back again. Still having difficulties. First, does the host computer ("your
own machine") have to be on for others to access the data? Second, must the
receiving computer be using the same OS as the host computer? Third, if I'm
not in a position to mess with a firewall to allow 3333 port access, does it
all still work?
Generally I'm a bit confused by the sparse detail indicated by "you can just
send them a URL like you would do for any other web site."
Thank you for your time.
Original comment by aery...@gmail.com
on 15 Jun 2010 at 9:23
Gridworks works as a web server, it runs on top of Jetty
http://en.wikipedia.org/wiki/Jetty_(web_server). Everything is done over http,
so accessing Gridworks is OS independent.
Looking at it further (I tried it on my network), I couldn't get it to work
either.
I might be entirely wrong, but I'm guessing the issue might be that Gridworks
binds to a default address, 127.0.0.1, compared to other servers which default
to binding to all addresses on the machine. I think we might have to pass the
Gridworks server a variable when starting it. I'm not entirely sure how to do
this, -Dgridworks.host perhaps?
If you don't have access to open up the firewall for the required port you
would also run into problems there. A workaround might be to change Gridwork's
default port to something already open on your machine (providing it doesn't
conflict with whatever else is meant to be using that port). Again, this might
be possible to do by passing a variable on startup. -Dgridworks.port perhaps??
Original comment by iainsproat
on 15 Jun 2010 at 11:34
OK, worked out how to change the IP binding:
1. In the Gridworks installation directory there is a file gridworks.l4j.ini
2. Add a new line to that file with the following (changing 0.0.0.0 to the IP
address of the machine on which it's hosted)
-Dgridworks.host=0.0.0.0
3. To change the port add a line with -Dgridworks.port=30
Let me know if this works, and I'll update the documentation
Original comment by iainsproat
on 15 Jun 2010 at 11:44
aeryise - The host computer does need to be on and connected to the network.
It should not need to be running the same operating system. If the port that
you're using is firewalled, you'll need to change to a non-firewalled port. If
the host machine doesn't normally run a web server, you can change to the
default HTTP port of 80.
Original comment by tfmorris
on 15 Jun 2010 at 3:08
Thanks. I'll try these again on my home computer tonight.
My gridworks.ini looks like this, in the standard Linux version of GridWorks.
Should I then append the -Dgridworks.host and -Dgridworks.port lines? Or just
change the relevant values for #GRIDWORKS_PORT and #GRIDWORKS_HOST?
#GRIDWORKS_PORT=3333
#GRIDWORKS_HOST=127.0.0.1
#GRIDWORKS_MEMORY=1024M
#JAVA_HOME=""
#JAVA_OPTIONS="-XX:+UseParallelGC -XX:+UseLargePages"
Original comment by aery...@gmail.com
on 17 Jun 2010 at 6:52
So far, on the exact same computer that GridWorks is installed and my data is
hosted on, changing the IP binding with the -i flag to the external IP address
of this computer on the ./gridworks run command, works fine. Will try other
combinations later at home.
Original comment by aery...@gmail.com
on 17 Jun 2010 at 7:14
iainsproat - On the exact same computer that GridWorks is installed and my data
is hosted on, after appending the -Dgridworks.host line with my external IP
address and restarting the computer this morning, the IP address still defaults
to 127.0.0.1 . This may be an OS-specific matter and I will now try modifying
the #GRIDWORKS_HOST value instead of appending. But, from other programs I've
only ever seen a -D(etcetc) line being used to compile code with cpp . Since
I'm using the Linux download of GridWorks straight off the shelf, are the
-D(etcetc) lines applicable for the prepackaged binary that I have?
Thanks.
Am avoiding port/firewall issues for now by doing all these changes on the
exact same computer that GridWorks is installed and my data is hosted on,
instead of my home computer.
Original comment by aery...@gmail.com
on 18 Jun 2010 at 2:49
Further update: On this computer as above, changing the #GRIDWORKS_HOST value
to my external IP address and not appending the suggested -Dgridworks.host
line, upon restarting the computer the IP address still defaults to 127.0.0.1 .
However as per comment #8 passing the external IP address as an argument to the
./gridworks run command with the -i flag continues to work fine.
Original comment by aery...@gmail.com
on 18 Jun 2010 at 10:22
aeryise, thanks for feedback. If the -i parameter works then please use that.
We've discussed this issue amongst the Gridworks developers, and we think this
feature is not quite ready for the prime time yet. As well as the difficulties
you've had we're aware that Gridworks does not require any login details, which
raises issues with security. For example, once the firewall was opened it would
be possible for anyone to view and edit your Gridworks files (whether they were
allowed to or not). But we believe it shouldn't allow access to your system at
large - only to Gridworks data.
For the moment, we've removed the mention of this feature from the Gridworks
homepage (but it still works if you're prepared to change the configuration
manually, as above, and deal with the security issue). Hopefully, at some point
in the future a developer will have time to implement the necessary
enhancements to Gridworks so we can properly support this feature.
Original comment by iainsproat
on 18 Jun 2010 at 12:19
Thanks :) no problem.
Original comment by aery...@gmail.com
on 19 Jun 2010 at 2:13
Yes, Gridworks only binds to the 127.0.0.1 (localhost) IP interface by default,
meaning that it will respond only to local calls. This is because Gridworks is
not designed for concurrent multi-user operation and can result in data
corruption. We are working on a system that allows multiple Gridworks to work
on the same data concurrently, but this is not ready for prime time yet.
But in case you want to expose Gridworks anyway, you can run it as
./gridworks -i 0.0.0.0
which will make it listen to all requests coming to your machine, no matter
what IP interface they come from.
Original comment by stefa...@google.com
on 31 Aug 2010 at 6:11
Original comment by tfmorris
on 18 Sep 2012 at 2:58
Original issue reported on code.google.com by
aery...@gmail.com
on 14 Jun 2010 at 8:49