So, the Twisted engine turned out to be a bit more complicated than necessary for my needs. Maybe later..
A more conservative approach is needed, hence Apache/mod_python. To get it running in Ubuntu (assuming you have Apache already installed), do:
sudo apt-get install libapache2-mod-python sudo apt-get install libapache2-mod-python-doc sudo emacs /etc/apache2/sites-enabled/000-default
(Or whatever editor one is using.)
..and inside <Directory /var/www/>
insert these lines:
AddHandler mod_python .py PythonHandler mod_python.publisher PythonDebug On
Exit Emacs and restart Apache:
sudo /etc/init.d/apache2 restart
Done.
Ok, not quite. The above enables mod_python Publisher handler which operates at a high level. Instead of, or in addition to above, put something like this into Apache config:
<Directory /var/www/python> AddHandler mod_python .py PythonHandler python PythonDebug On </Directory>
Now you have more control over the response:
from mod_python import apache def handler(req): import time req.content_type = "text/plain" req.headers_out['CacheControl'] = "no-cache" req.headers_out['Expires'] = "-1" req.headers_out['This-is-my-own-wacky-and-useless-header'] = "Pangalactic Gargleblaster" req.write(str(time.time())) return apache.OK