仅Django空页加载就需要2秒钟
我正在谷歌计算引擎上用nginx做我的django项目 我的视图文件是仅Django空页加载就需要2秒钟,django,nginx,Django,Nginx,我正在谷歌计算引擎上用nginx做我的django项目 我的视图文件是 from django.shortcuts import render_to_response def home(request): return render_to_response('html/index.html',RequestContext(request)) 和我的模板文件index.html <html> <head> <title> Home </
from django.shortcuts import render_to_response
def home(request):
return render_to_response('html/index.html',RequestContext(request))
和我的模板文件index.html
<html>
<head>
<title> Home </title>
</head>
<body>
Wel come to my new project
</body>
</html>
在example.com中,它位于/etc/nginx/site启用和站点可用的内部
server {
listen 80;
server_name myservername.com;
client_max_body_size 4G;
error_page 502 =200 @maintenance;
location @maintenance {
root /path/to/static/offline/files;
try_files $uri /index.html =503;
}
location /static/ {
alias /home/sim/5vs/staticfiles/;
}
location /media/ {
alias /home/sim/5vs/myproject/myproject/site_media/media/;
expires 30d;
}
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
}
}
在nginx.conf文件中
user root;
worker_processes 4;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
gzip_disable "msie6";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
你能告诉我为什么要花很长时间,我的配置有什么问题吗
浅谈轮廓仪的使用
总时间:1.89419秒
文件:/home/staging/live/users/views.py
功能:在第93行显示Soon_视图
行#每次命中的命中次数%时间行内容
用户使用debug=True设置的debug server来运行django项目。它启用了调试工具栏-这真的很慢。这是使用此设置的正常时间。如果你禁用这个-我想一切都会好起来的 如果您仍然有问题,我建议您检查django调试服务器响应时间(python manage.py runserver)。如果它更快,那么问题是nginx配置,或者,如果相同,您应该使用检查计时
如果是生产配置-不要在生产上使用调试服务器。您应该使用或类似的工具来运行django项目。用户使用debug server with debug=True设置来运行django项目。它启用了调试工具栏-这真的很慢。这是使用此设置的正常时间。如果你禁用这个-我想一切都会好起来的 如果您仍然有问题,我建议您检查django调试服务器响应时间(python manage.py runserver)。如果它更快,那么问题是nginx配置,或者,如果相同,您应该使用检查计时
如果是生产配置-不要在生产上使用调试服务器。您应该使用或类似的工具来运行django项目。您使用什么来从上游端口8000提供服务?@DanielRoseman我不知道服务器端集成的概念。我使用了一些手册来配置它。即使这个项目运行时没有检查更新的文件。请告诉您我将检查并让您知道的建议。您已将nginx设置为指向端口8000上的上游服务器。那里在跑什么?你必须拥有一些东西,否则你的应用程序根本不会响应。你在用枪吗?或者您(正如Yevgeny所提示的)正在使用Django runserver?如果是后者,你绝对不能这样做。实际上我正在使用gunicorn来运行我的项目。你使用什么从上游端口8000提供服务?@DanielRoseman我没有服务器端集成的概念。我使用了一些手册来配置它。即使这个项目运行时没有检查更新的文件。请告诉您我将检查并让您知道的建议。您已将nginx设置为指向端口8000上的上游服务器。那里在跑什么?你必须拥有一些东西,否则你的应用程序根本不会响应。你在用枪吗?或者您(正如Yevgeny所提示的)正在使用Django runserver?如果是后者,你绝对不能这样做。实际上我正在使用gunicorn来运行我的项目,即使调试是禁用的,它也需要相同的时间来执行,django调试服务器和nginx也或多或少相同,没有太大区别。我会与line profiler和gunicorn进行检查,并让您知道。我使用了line prifiler,我将结果附在问题中。请看,让我知道我还需要做什么。下一步应该是:1。禁用社交身份验证中间件2。切换到memcached或其他可用的内存缓存后端3。检查是否确实禁用了调试设置(./manage.py shell;来自django.conf导入设置;打印设置.DEBUG)4。在本地运行项目-原因可能是谷歌计算引擎吗?)通常django可以很好地处理这样简单的项目。可能是google计算引擎文件访问速度慢-尝试使用缓存模板加载器(使用默认加载器django搜索并从文件系统为每个请求加载模板)。实际上,我已经在设置文件中添加了缓存模板。你可以从我的问题中看出。我的问题是使用line profiler将值呈现给模板需要更多的时间。大约40个变量到模板需要10分钟。我们如何减少模板呈现时间。即使禁用调试,也需要相同的时间来执行,django调试服务器和nginx也或多或少相同,差别不大。我会与line profiler和gunicorn进行检查,并让您知道。我使用了line prifiler,我将结果附在问题中。请看,让我知道我还需要做什么。下一步应该是:1。禁用社交身份验证中间件2。切换到memcached或其他可用的内存缓存后端3。检查是否确实禁用了调试设置(./manage.py shell;来自django.conf导入设置;打印设置.DEBUG)4。在本地运行项目-原因可能是谷歌计算引擎吗?)通常django可以很好地处理这样简单的项目。可能是google计算引擎文件访问速度慢-尝试使用缓存模板加载器(使用默认加载器django搜索并从文件系统为每个请求加载模板)。实际上,我已经在设置文件中添加了缓存模板。你可以从我的问题中看出。我的问题是使用line profiler将值呈现给模板需要更多的时间。大约40个变量到模板需要10分钟。如何减少模板渲染时间。
user root;
worker_processes 4;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
gzip_disable "msie6";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
93 def comingsoon_view(request):
94 1 2 2.0 0.0 temp = {}
95 1 1894189 1894189.0 100.0 return render(request, 'pages/comingsoon.html',temp)