Running webserver
Barrelfish webserver runs by fetching files over NFS share and serving them to users requesting the files. Currently it assumes that all files are in a flat directory without any subdirectories.
Modules needed
The webserver depends all the modules needed to get networking working, and on top of that it needs webserver module. Following is a webserver relevant part of the menu.lst
# For networking module /x86_64/sbin/e1000n module /x86_64/sbin/NGD_mng cardname=e1000 module /x86_64/sbin/netd cardname=e1000 # For webserver module /x86_64/sbin/webserver e1000 10.110.4.4 /local/nfs/website/barrelfish
The webserver takes following commandline arguments:
- * cardname: Used to find the network services (This value is currently hardcoded to be "e1000" and hence ignored)
- * IP address of NFS server: Used to mount the NFS location to get the files
- * Path on NFS server: Where the files to serve on webserver are stored
Please refer to networking page for details about modules related to networking.
Making sure webserver works
If everything goes fine, then you should see an output where you will see the webserver successfully downloading all the files from the given path on NFS share. Once the server is done with downloading all the files, you can point your browser to the IP address of the barrelfish machine, or try and download one of the file with wget.
If you don't see such an output, then look into the output log to see what IP address barrelfish server got from DHCP (assuming you are using dhcp setup) and try to ping that IP-address. If you don't see any IP address reported, or if you can't ping it, then there is a network setup issue.
Troubleshooting webserver
Typical problem in running webserver is problems in network setup. Following are the few problems that can happen, and networking may have hints about how to deal with them.
- * Not all the modules needed for network are started. In this case the system
- just keeps waiting for one of the service to appear.
- * Network setup does not support DHCP protocol, and hence netd will never get
- an IP address. In this case, you may want to setup the static IP address
by passing arguments to netd (refer networking)
- an IP address. In this case, you may want to setup the static IP address
- * The barrelfish machine is not reachable/pingable.
- * NFS share IP or path is wrong, or does not have open read-only access.
* You can enable the debug flag in WEBSERVER_DEBUG in barrelfish/usr/webserver/webserver_debug.h to get more output.