An additional question is what OS are you hosting your webserver on, and then is it running server hardware, a virtual machine (such as a cloud instance), or a laptop?
But I think the core of the issue is that you aren't using NginX. The invocation you give uses the Rocket server packaged with web2py, which is fine for development, but
* has limited ability to scale for larger traffic loads
* does seem to have some uptime issues
My experience with Rocket locking up happens on AWS linux, somewhere in the cloud. There are both short lockups (about 10 minutes) which are related to a socket error that times out, and indefinite lockups (hours) which I haven't yet associated with a specific problem. The latter requires a kill the pid, restart the server cycle; at least, I don't have a better fix yet.
If you don't have a specific reason to go with Apache, go with NginX instead. For both, you need to use uwsgi. Many people deploy with NginX with just the setup script shipped with Web2py; be aware that if you have real certificates you have to tweak the script to not do the self-signed ones, and to point to the right place for the certs. I am mulling over how to generalize this (I use Let's Encrypt), but haven't submitted anything yet.
I'm currently taking baby steps at moving to A Real Front End (because I have the luxury of being able to deep-dive on this).
For reading material, I found good NginX stuff (I think) on Pakt Pub, though it's not free.
<URL:
https://www.packtpub.com/mapt/book/networking_and_servers/9781782165125/1/ch01lvl1sec04/installation>
<URL:
https://www.packtpub.com/mapt/book/networking_and_servers/9781785289538/1/ch01lvl1sec09/configuring-nginx>
Free documentation on uswgi is pretty good:
<URL:
https://uwsgi-docs.readthedocs.io/en/latest/WSGIquickstart.html>
Hope this helps.
Dave S
/dps