mod_wsgi force reload modules

后端 未结 4 915
醉梦人生
醉梦人生 2021-02-04 07:32

Is there a way to have mod_wsgi reload all modules (maybe in a particular directory) on each load?

While working on the code, it\'s very annoying to restart apache every

4条回答
  •  挽巷
    挽巷 (楼主)
    2021-02-04 08:06

    The following solution is aimed at Linux users only, and has been tested to work under Ubuntu Server 12.04.1

    To run WSGI under daemon mode, you need to specify WSGIProcessGroup and WSGIDaemonProcess directives in your Apache configuration file, for example

    WSGIProcessGroup my_wsgi_process
    WSGIDaemonProcess my_wsgi_process threads=15
    

    More details are available in http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives

    An added bonus is extra stability if you are running multiple WSGI sites under the same server, potentially with VirtualHost directives. Without using daemon processes, I found two Django sites conflicting with each other and turning up 500 Internal Server Error's alternatively.

    At this point, your server is in fact already monitoring your WSGI site for changes, though it only watches the file you specified using WSGIScriptAlias, like

    WSGIScriptAlias / /var/www/my_django_site/my_django_site/wsgi.py
    

    This means that you can force the WSGI daemon process to reload by changing the WSGI script. Of course, you don't have to change its contents, but rather,

    $ touch /var/www/my_django_site/my_django_site/wsgi.py
    

    would do the trick.

    By utilizing the method above, you can automatically reload a WSGI site in production environment without restarting/reloading the entire Apache server, or modifying your WSGI script to do production-unsafe code change monitoring.

    This is particularly useful when you have automated deploy scripts, and don't want to restart the Apache server on deployment.

    During development, you may use a filesystem changes watcher to invoke touch wsgi.py every time a module under your site changes, for example, pywatch

提交回复
热议问题