Articles of pipe理员

Django gunicorn Nginx安装程序只显示404页面

按照本教程,我在Debian 7 vps上设置了一个Django开发框 http://michal.karzynski.pl/blog/2013/06/09/django–nginx–gunicorn-virtualenv-supervisor/ 一切似乎正常工作,但是当我尝试去我的域my.site我从nginx得到一个404错误页面。 如果我使用远程桌面,我可以看到django项目使用本地主机或127.0.0.1:8000或8001,如果我直接启动gunicorn。 我已经search谷歌和这里的多个解决scheme,但似乎没有摆脱我的问题? 允许的主机设置为有和没有www的域。 什么会导致这个错误? 我只想在浏览器中浏览my.site,并查看似乎没有工作的django项目 有人能给我洞察可能发生的事情吗? 这是我的configuration nginx的-error.log中 016/01/11 03:17:51 [error] 29962#0: *5 open() "/webapps/license/static/500.html" failed (2: No such file or directory), client: xxxx, server: my.site, request: "GET / HTTP/1.1", upstream: "http://unix:/webapps/license/run/gunicorn.sock:/", host: "www.my.site" Django的 (license)app_usr@dev2:~/licdb$ python manage.py runserver Performing system checks… System check identified no issues (0 silenced). January […]

Django,nginx,gunicorn,supervisor:UnicodeEncodeError – 上传非拉丁文的命名文件

当我上传一些非拉丁名字的文件时,我得到错误: UnicodeEncodeError at /profiles/ 'ascii' codec can't encode characters in position 39-41: ordinal not in range(128) 我已经尝试过更改主pipe环境, 在这里如何描述,但没有帮助。 我在/etc/supervisor/supervisord.conf中添加了这一行: [supervisord] environment=LANG="ru_RU.utf8", LC_LANG="ru_RU.UTF-8", LC_ALL="ru_RU.UTF-8" logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log) pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid) childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP) 当我把这一行放在程序特定的conf文件中时,它也没有开始工作。 我试图找出我的编码,所以我已经添加到模板上下文这个variables: context['locale'] = sys.getfilesystemencoding() 并在模板中显示“ANSI_X3.4-1968” 可以请一个人解释为什么改变环境没有解决问题? 谢谢。

Django主pipeFATAl太快退出如何改进?

我在django使用主pipe我的上司得到错误。 我的服务器在Ubuntu 16.04.2 x64我使用,nginx,gunicortn,主pipe,postgresql。 FATAl Exited too quickly (process log may have details) 。 如果你有一些想法如何解决这个问题,请让我知道你的想法 这是我的主pipe文件。 [program:chart_app] command = /webapps/chart_app/bin/gunicorn_start user = chart stdout_logfile = /webapps/chart_app/logs/gunicorn_supervisor.log redirect_stderr = true environment=LANG=en_US.UTF-8,LC_ALL=en_US.UTF-8 日志中的错误 > supervisor: couldn't exec /webapps/chart_app/bin/gunicorn_start: > ENOEXEC supervisor: child process was not spawned supervisor: couldn't > exec /webapps/chart_app/bin/gunicorn_start: ENOEXEC supervisor: child > process was […]

外部http连接失败(端口打开)

在托pipe的Ubuntu VM上,我有nginx运行http和https ,并且可以访问那些使用VM内的公共IP: curl http://159.203.0.5 在虚拟机外面做同样的事情 – 连接超时。 港口是开放的: root@production01:~# ufw status Status: active To Action From — —— —- 22 ALLOW Anywhere 80 ALLOW Anywhere 443 ALLOW Anywhere 22 (v6) ALLOW Anywhere (v6) 80 (v6) ALLOW Anywhere (v6) 443 (v6) ALLOW Anywhere (v6) 而nginx正在监听外部接口: root@production01:~# netstat -an | grep "LISTEN " tcp 0 0 […]

一个nginx工作进程是否同时或一个地处理两个请求?

关于filter链的非常酷的部分是每个filter不等待前一个filter完成; 它可以处理前一个filter的输出,就像Unixpipe道一样。 (从这里 ) 我想上面是在每个filter的末尾谈论这样的代码: if (!chain_contains_last_buffer) return ngx_http_next_body_filter(r, in); 也就是说,nginx逐个链接filter。 但是,因为它在每个filter的末尾 ,所以必须等到当前filter完成。 我看不出nginx如何设法让each filter doesn't wait for the previous filter to finish 。 所以上面是关于nginxfilter的并发性,接下来是关于nginx请求处理的并发性: 正如我们所知,nginx使用epoll来处理请求: events = epoll_wait(ep, event_list, (int) nevents, timer); for (i = 0; i < events; i++) { … rev->handler(rev); } 用上面的代码,我不认为nginx可以同时处理两个请求,它只能一个接一个地完成(每个handler完成它的工作足够快,所以下一个请求得到很快处理),对吧? 还是有什么遗失我错过了?

Djangopipe理员不工作/丑 – 与nginx和gunicorn服务

我在Ubuntu EC2实例上运行nginx,gunicorn,django。 整个网站运行良好。 除了pipe理员。 pipe理员显示不正确。 我运行了“python manage.py collectstatic”并编辑了STATIC_ROOT和STATIC_URL。 当我加载pipe理页面,这是丑陋的,但是当我检查源,CSS文件位于他们应该 <title>Site administration | Django site admin</title> <link rel="stylesheet" type="text/css" href="http://staticfiles.mydomain.com/static/admin/css/base.css" /> <link rel="stylesheet" type="text/css" href="http://staticfiles.mydomain.com/static/admin/css/dashboard.css" /> 我可以看看nginx的access.log,看看文件正在请求和交付,但页面不能正常显示。 这就像文件正在接收,但没有处理。 错误日志是干净的。 解决了 在Chrome开发者工具的控制台标签下,我注意到了以下几点: Resource interpreted as Script but transferred with MIME type text/plain: "http://staticfiles.<mydomain>.com/static/admin/js/jquery.min.js". 所以文件被传送到浏览器,但它不知道如何处理它们。 要解决这个问题,我不得不编辑nginx.conf文件,并指定几个目录的默认types… location /static/admin/js/ { default_type text/javascript; alias /home/ubuntu/webapps/<myproject>/static/admin/js/; } location /static/admin/css/ { default_type […]

与DMS与caching服务器的Sitecore – 你如何处理?

我们正计划将DMS引入我们客户的Sitecore安装。 这是一个在我们国家相当受欢迎的网站,我们必须使用代理caching服务器(这是Nginx在这种情况下),使其高stream量certificate。 但是,就我们所知,不可能在启用caching代理的情况下使用所有的DMSfunction – 例如内容的个性化 – 如果被caching,它将不会被个性化。 有没有办法使用代理caching打开的所有DMSfunction? 如果没有,那么如何处理高stream量网站的这个问题 – 是购买更多的Content Delivery服务器来承载负载,还是使用更好的硬件(RAM,CPU,带宽)来扩展当前的服务器?

使用Nginx限制Djangopipe理员login,以防止字典攻击

我正在研究限制Djangopipe理员login的各种方法,以防止字典攻击。 一个解决scheme在这里解释: http : //simonwillison.net/2009/Jan/7/ratelimitcache/ 不过,我宁愿在networking服务器端使用Nginx进行速率限制。 Nginx的limit_req模块可以做到这一点 – 允许你指定每分钟的最大请求数,如果用户超过,发送一个503请求: http : //wiki.nginx.org/NginxHttpLimitReqModule 完善! 我想我已经破解了它,直到我意识到Django admin的login页面不是一致的,例如/ admin / blah /给你一个login页面,而不是popup一个标准的login页面。 所以我不能匹配的url。 任何人都可以想到另一种方式来知道pipe理页面正在显示(正则expression式响应HTML?)

application.css和application.js net :: ERR_CONTENT_LENGTH_MISMATCH

我刚刚在AWS EC2上将我的nginx从1.4.2(/ usr / local)升级到了1.4.7(yum)。 我现在在客户端发生了一对错误: GET https://subdomain.mysite.com/assets/application.css net::ERR_CONTENT_LENGTH_MISMATCH GET https://subdomain.mysite.com/assets/application.js net::ERR_CONTENT_LENGTH_MISMATCH 我对此感到不知所措,谷歌并没有太多的帮助。 任何想法从哪里开始? 所有帮助赞赏。 从手动安装切换到YUM安装是否可以解决问题?

使用nginx和supervisor – nginx进程多次启动导致绑定错误

我正在和Supervisor一起使用nginx。 我的supervisord.conf文件内容如下: [supervisord] nodaemon=true logfile=/var/log/supervisor/supervisord.log [program:nginx] command=/usr/sbin/nginx -c /etc/nginx/nginx.conf stdout_logfile=/var/log/supervisor/%(program_name)s.log stderr_logfile=/var/log/supervisor/%(program_name)s.log redirect_stderr=true [supervisorctl] serverurl=unix:///tmp/supervisor.sock [unix_http_server] file=/tmp/supervisor.sock ; path to your socket file [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface 在确认netstat -nltp表示所有端口都是免费的之后,我开始了supervisord,但是请find下面的nginx错误日志: 2014/09/10 20:39:00 [emerg] 277#0: bind() to 0.0.0.0:81 failed (98: Address already in use) 2014/09/10 20:39:00 [emerg] 277#0: bind() to 0.0.0.0:18081 failed (98: Address already in use) 2014/09/10 […]