我对所有服务器技术都比较陌生,我遵循本教程,使用mod_wsgi在Apache Web服务器上部署我的django应用程序:
http://thecodeship.com/deployment/deploy-django-apache-virtualenv-and-mod_wsgi/
这是我的虚拟主机文件:
<VirtualHost *:80> ServerName www.abcxyz.org ServerAlias abcxyz.org WSGIScriptAlias / /var/www/abcxyz/django/abcxyz/wsgi_prod.py Alias /static/ /var/www/abcxyz/static/ <Location "/static/"> Options -Indexes </Location> </VirtualHost>
据我了解, wsgi_prod.py文件应该只在服务器启动时执行一次(或者当它得到第一个请求 – 我不确定这一点)。 但在我的应用程序中执行多次,发送请求到服务器。
它不是在所有请求上执行,而是在其中一些上执行。 还有一些请求,有时只触发wsgi_prod.py的执行。
这是我的wsgi_prod.py文件:
import os import sys import site import thread # Add the site-packages of the chosen virtualenv to work with site.addsitedir('/etc/Envs/abcxyz/local/lib/python2.7/site-packages') # Add the app's directory to the PYTHONPATH sys.path.append('/var/www/abcxyz/django') sys.path.append('/var/www/abcxyz/django/abcxyz') os.environ['DJANGO_SETTINGS_MODULE'] = 'abcxyz.settings.production' # Activate your virtual env activate_env=os.path.expanduser("/etc/Envs/abcxyz/bin/activate_this.py") execfile(activate_env, dict(__file__=activate_env)) print "WSGI RUN!!!" import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()
有没有人有任何想法在我的情况下可能会出错,我可以开始寻找错误?
它会被加载每个进程一次。
您可能正在使用多进程configuration,并且随后的请求正在被不同的进程处理,并且/或者进程正在被回收。 在debugging中打印进程ID。 另请阅读:
并观看: