我INFO在 Heroku 日志中没有看到Django 生成的日志条目(级别为)。
这是我的配置:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse',
},
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
'not_development_filter': {
'()': NotDevelopmentFilter,
},
},
'handlers': {
'console':{
'level': 'INFO',
'class': 'logging.StreamHandler',
},
'null': {
'class': 'django.utils.log.NullHandler',
},
'mail_admins': {
'level': 'ERROR',
'filters': ['not_development_filter'],
'class': 'django.utils.log.AdminEmailHandler',
'include_html': True,
}
},
'loggers': {
'': {
'handlers': ['mail_admins', 'console'],
'level': 'INFO',
},
'django': {
'handlers': ['console'],
},
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': False, …Run Code Online (Sandbox Code Playgroud) 我有一个可以使用标准开发环境在本地运行的 django 应用程序。我现在想将其移至 EC2 进行生产。django 文档建议使用 apache 和 mod_wsgi 运行,并使用 nginx 加载静态文件。
我在 Ec2 机器上运行 Ubuntu 12.04。我的 Django 应用程序“ddt”包含一个带有 ddt.wsgi 的子目录“apache”
import os, sys
apache_configuration= os.path.dirname(__file__)
project = os.path.dirname(apache_configuration)
workspace = os.path.dirname(project)
sys.path.append(workspace)
sys.path.append('/usr/lib/python2.7/site-packages/django/')
sys.path.append('/home/jeffrey/www/ddt/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'ddt.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Run Code Online (Sandbox Code Playgroud)
我从 apt 安装了 mod_wsgi。我的 apache/httpd.conf 包含
NameVirtualHost *:8080
WSGIScriptAlias / /home/jeffrey/www/ddt/apache/ddt.wsgi
WSGIPythonPath /home/jeffrey/www/ddt
<Directory /home/jeffrey/www/ddt/apache/>
<Files ddt.wsgi>
Order deny,allow
Allow from all
</Files>
</Directory>
Run Code Online (Sandbox Code Playgroud)
在 apache2/sites-enabled 下
<VirtualHost *:8080>
ServerName www.mysite.com
ServerAlias mysite.com
<Directory /home/jeffrey/www/ddt/apache/>
Order deny,allow …Run Code Online (Sandbox Code Playgroud) 系统配置:Apache2、Django 1.10、Python 3、Ubuntu 16.04 LTS
姜戈debug=True。
/var/log/apache2/error.log
[52:53.057967] [wsgi:error] [pid 4303] [client 1.1.1.22:24409] Timeout when reading response headers from daemon process 'example.org': /home/user/dir/project/main_app/wsgi.py
[52:58.466726] [wsgi:error] [pid 4305] [client 1.1.1.10:9787] Truncated or oversized response headers received from daemon process 'example.org': /home/user/dir/project/main_app/wsgi.py
[52:58.466729] [wsgi:error] [pid 4304] [client 1.1.1.4:18417] Truncated or oversized response headers received from daemon process 'example.org': /home/user/dir/project/main_app/wsgi.py
[52:58.466726] [wsgi:error] [pid 4307] [client 1.1.1.22:35116] Truncated or oversized response headers received from daemon process 'example.org': /home/user/dir/project/main_app/wsgi.py
[52:58.466756] [wsgi:error] [pid 4306] …Run Code Online (Sandbox Code Playgroud) 我有一个 django 应用程序,我想在它前面的服务器上设置 Varnish。在另一个 serverfault 线程中,有人建议将 Nginx 放在 Varnish 前面。
我应该将 Nginx 放在缓存服务器上的 Varnish 前面吗?如果是这样,我应该在应用服务器上使用 Nginx 吗?
更新:在玩弄下面的两个答案后,我添加了一个修改后的问题。
你好呀,
如果您正在阅读本文,您可能熟悉 Apache 的 mod_proxy 及其 ProxyPass 功能。像许多其他人一样,我有一个可以从内部网络外部访问的应用程序的问题,但该应用程序本身可以访问不同机器上的其他内部应用程序,当您通过此设置进行远程访问时,事情变得不稳定。
所以,我的设置非常简单,我有:
机器 #1 启用了远程访问,我通过主机名访问它,它会吐出运行在它上面的 PHP 应用程序。
Machine #2 是一个运行 Django 的新应用程序,它使用完全不同的后端(甚至是 auth),它托管在单独的机器上。在我们的 Intranet 中,我们通过一个简单的命名主机名访问它,该主机名基本上链接到内部 192.168.0.101 ip。
我尝试使用 ProxyPass 来设置它,例如,传递到 /new 会将其发送到新应用程序:
ProxyPass /new http://192.168.0.101/
这种工作方式,它将请求发送到另一个应用程序,但它中断了,因为我的 Django 应用程序想要重定向到 /auth/login/,它立即无法识别。如果我自己将 url 修改为 foo.net/new/auth/login,我会得到我的登录页面,但正如您所猜测的那样,在整个浏览过程中这样做并不方便。
那么我怎样才能让 ProxyPass 像我想要的那样工作呢?我是否需要对 Apache 做一些事情,以便它总是在另一个应用程序中的 url 之前写入 /new ,或者这是我应该在我的 Django 应用程序中修改的内容吗?
任何提示和指针也将不胜感激。谢谢你的时间
我一直在研究 Heroku 作为托管服务提供商。我对其易于部署以及根据需要扩展和缩减资源的能力特别感兴趣。
是否有与 Django 一起使用的具有这种轻松和强大功能的托管解决方案?
亚马逊网络服务最近推出了一个免费套餐,您基本上可以免费获得试用 AWS 和运行小型网站和项目的东西。基本上它是免费的,只要您保持在一定的带宽、磁盘存储等限制以下。
由于超出限制很快就会变得非常昂贵(对于业余爱好者),我想要一些关于我可以在免费层上运行哪些 AMI 的建议或建议,以便尝试 Ruby on Rails 和/或 Django。
我过去曾尝试让 Django 在 Windows 8 Developer Preview 中的 IIS 8 下运行。现在 Windows 8 的消费者预览版已经发布,我想知道是否可以获得一些关于在 IIS 中设置 Django 的详细说明。
我该如何进行这个过程 - 我几乎不知道从哪里开始。我需要特定的 ISAPI 模块吗?
有没有办法将用户名或用户 ID 存储在 nginx 日志中。我尝试在 log_format 指令中插入 $remote_user 但它似乎不起作用。
我正在用 django 编写一个小型网络应用程序。它将拥有不超过 200 名用户,全部在我公司内部。我想尽快设置它。我是 Django 和网络应用程序的新手。
当我阅读 django 的教程时,他们不建议使用python manage.py runserver来部署生产服务器,但他们没有给出任何理由。
我怀疑出于我非常谦虚的目的,djangorunserver会做得很好。我对么?我在冒什么风险?
django ×10
nginx ×3
apache-2.2 ×2
deployment ×2
heroku ×2
logging ×2
mod-wsgi ×2
amazon-ec2 ×1
apache2 ×1
iis ×1
mod-proxy ×1
proxy ×1
proxypass ×1
python ×1
varnish ×1
web-server ×1