Re: Accessing to nginx access_log

  • From: Antti Kantee <pooka@xxxxxx>
  • To: rumpkernel-users@xxxxxxxxxxxxx
  • Date: Fri, 22 Apr 2016 00:48:00 +0000

On 22/04/16 00:06, Ruben Rubio Rey wrote:

1) I created a ext3 filesystem (btw I noticed that nethack is using ext2)

2) modified nginx.conf

     #access_log    /dev/null;
     access_log    /var/log/nginx/access_log;

3) rebuilt data.iso

4) Run rumprun qemu adding a new block

rumprun qemu -i -M 128   -I if,vioif,'-net tap,script=no,ifname=tap0'  \
     -W if,inet,static,10.0.120.101/24   \
     -b images/data.iso,/data \
     -b log.ext3,/var/log/nginx \
      -- ./nginx.bin -c /data/conf/nginx.conf

nginx works, the "access_log" file is created but no information is stored
there.



The remaining issue is how to get the application to sync its data to a
clean state.  Some applications support an "in-band" method for signalling
a sync, e.g. rumprun-nethack will save the game when the user presses "S".
For applications which don't support that, normally a signal is used.  With
rump kernels and therefore Rumprun taking heed of the "signals are evil"
tautology, the signal approach won't work out-of-the-box.  Some code
remains to be conjured up to address the general case.


I am afraid that I might be facing this problem, but I am not sure about
it. Any help is appreciated!

Probably. All I can say is that it won't work until someone makes it work. Sorry.

Note, though, that if you store data on a "local" file system, there's no way to reliably read it while the unikernel is running. Well, you could add an NFS server to the unikernel and NFS export the volume, but in that situation you might just as well export the data using the httpd you're already running.

Other related posts: