Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Windows上使用mod_wsgi时加载时间不稳定_Python_Django_Windows_Apache_Mod Wsgi - Fatal编程技术网

Python 在Windows上使用mod_wsgi时加载时间不稳定

Python 在Windows上使用mod_wsgi时加载时间不稳定,python,django,windows,apache,mod-wsgi,Python,Django,Windows,Apache,Mod Wsgi,我的系统已安装以下版本的软件: Python 3.4.3 amd64 mod_wsgi 4.4.13 ap24vc10 cp34无赢amd64 我使用virtualenv为两个Django项目创建了两个环境(默认情况下,它工作了!页面),一个托管在one.local.com(VirtualHost)上,另一个托管在two.local.com(VirtualHost)上。下面的代码是Apache的httpd vhost.conf文件的VirtualHost配置 <VirtualHost

我的系统已安装以下版本的软件:

  • Python 3.4.3 amd64
  • mod_wsgi 4.4.13 ap24vc10 cp34无赢amd64
我使用virtualenv为两个Django项目创建了两个环境(默认情况下,它工作了!页面),一个托管在one.local.com(VirtualHost)上,另一个托管在two.local.com(VirtualHost)上。下面的代码是Apache的httpd vhost.conf文件的VirtualHost配置

<VirtualHost *:80>
  WSGIApplicationGroup %{ENV:ONE_GROUP}
  ServerName one.local.com
  ServerAdmin admin@example.com
  ErrorLog "D:/_pythonDev/Projects/logs/one.local.com-error.log"
  CustomLog "D:/_pythonDev/Projects/logs/one.local.com-access.log" common

  WSGIScriptAlias / "D:/_pythonDev/Projects/Project1/Project1/wsgi.py" application-group=%{ENV:ONE_GROUP}
  # I also tried WSGIImportScript
  <Directory "D:/_pythonDev/Projects/Project1/Project1">
    <Files wsgi.py>
      Require all granted
    </Files>
  </Directory>

  Alias /favicon.ico "D:/_pythonDev/Projects/Project1/static/favicon.ico"
  Alias /static/ "D:/_pythonDev/Projects/Project1/static/"
  <Directory "D:/_pythonDev/Projects/Project1/static">
    Require all granted
  </Directory>
</VirtualHost>

<VirtualHost *:80>
  WSGIApplicationGroup %{ENV:TWO_GROUP}
  ServerName two.local.com
  ServerAdmin admin@example.com
  ErrorLog "D:/_pythonDev/Projects/logs/two.local.com-error.log"
  CustomLog "D:/_pythonDev/Projects/logs/two.local.com-access.log" common

  WSGIScriptAlias / "D:/_pythonDev/Projects/Project2/Project2/wsgi.py" application-group=%{ENV:TWO_GROUP}

  <Directory "D:/_pythonDev/Projects/Project2/Project2">
    <Files wsgi.py>
      Require all granted
    </Files>
  </Directory>

  Alias /favicon.ico "D:/_pythonDev/Projects/Project2/static/favicon.ico"
  Alias /static/ "D:/_pythonDev/Projects/Project2/static/"
  <Directory "D:/_pythonDev/Projects/Project2/static">
    Require all granted
  </Directory>
</VirtualHost>
问题:

  • 装载时间不稳定,大约需要10秒
所需答案:

  • 加载时间不稳定的原因
  • 答案是解决它

您应该首先尝试使用探查器来查看所花的时间,或者使用浏览器的开发人员工具(通常是F12,然后使用“网络”选项卡)或者使用django debug工具栏探查器可能过于复杂,安装起来可能会很复杂。只需在WSGI脚本文件的开头导入时间模块,然后在调用“get_WSGI_application()”之前和之后添加“print time.time()”。这至少可以确认Django初始化中发生的情况。输出将以秒为单位。比较这两个地方的时间。@GrahamDumpleton我添加了
logging.info.(time.time())
get\u wsgi\u application()
之前和之后,当我重新启动httpd服务器时,日志文件被创建,我发现记录的开始和结束时间是相等的。然后,我从浏览器中请求URL,在浏览器中发生时间延迟,但没有将日志写入文件。全局范围的代码仅在加载代码文件时执行一次,而不是每次请求。如果在请求开始时输出时间呢?如果请求的开始和结束之间的差异可以忽略不计,那么问题就在mod_wsgi之外。Apache配置和/或DNS名称查找延迟可能存在问题,后者甚至可能与浏览器有关,而不是Apache。@GrahamDumpleton开始时间等于结束时间,我正在通过同一本地网络中的其他计算机访问这两个网站。您应先尝试使用探查器查看时间的占用情况,要么使用浏览器的开发工具(通常是F12,然后使用“网络”选项卡),要么使用django调试工具栏探查器可能过于复杂,安装起来可能很复杂。只需在WSGI脚本文件的开头导入时间模块,然后在调用“get_WSGI_application()”之前和之后添加“print time.time()”。这至少可以确认Django初始化中发生的情况。输出将以秒为单位。比较这两个地方的时间。@GrahamDumpleton我添加了
logging.info.(time.time())
get\u wsgi\u application()
之前和之后,当我重新启动httpd服务器时,日志文件被创建,我发现记录的开始和结束时间是相等的。然后,我从浏览器中请求URL,在浏览器中发生时间延迟,但没有将日志写入文件。全局范围的代码仅在加载代码文件时执行一次,而不是每次请求。如果在请求开始时输出时间呢?如果请求的开始和结束之间的差异可以忽略不计,那么问题就在mod_wsgi之外。Apache配置和/或DNS名称查找延迟可能存在问题,后者甚至可能与浏览器有关,而不是Apache。@GrahamDumpleton开始时间等于结束时间,我正在通过同一本地网络中的其他计算机访问这两个网站。
import os
import sys
import site

site.addsitedir("D:/_pythonDev/env/env1/Lib/site-packages")

sys.path.append("D:/_pythonDev/Projects/Project1/Project1")
sys.path.append("D:/_pythonDev/Projects/Project1")

activate_env_file = "D:/_pythonDev/env/env1/Scripts/activate_this.py"

exec(open(activate_env_file).read(), dict(__file__=activate_env_file))

from django.core.wsgi import get_wsgi_application

os.environ["DJANGO_SETTINGS_MODULE"] = "Project1.settings"

application = get_wsgi_application()