问题标签 [cherokee]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
configuration - Nginx 与切诺基
什么是 5-10K 并发连接的最佳选择?有人将 Cherokee 用于大型 Web 应用程序吗?(我的意思是像谷歌、IBM 等巨头。)
regex - 切诺基重定向
我的服务器正在运行 Cherokee,我正在尝试重定向工作。我遇到了无限重定向循环的麻烦,因为我正在重定向到同一个文件夹。
我的网址是:
http://domain.tld/example-variable (http://domain.tld/product-1234)
这需要重定向到:
http://domain.tld/index.php?item=variable (http://domain.tld/index.php?item-1234)
我尝试过的正则表达式是:
^/product-(.*)
/index.php?item-$1
此重定向有效。但是,http://domain.tld以及图像等文件 (http://domain.tld/image.jpg) 现在已损坏。我正在使用的其他重定向工作正常,但它们将文件夹重定向到另一个文件夹(即 /folderA 到 /folderB)。
django - 502 网关错误 - Cherokee 上的 django/cherrypy HTTP 反向代理循环
所以我安装了 cherokee 并将 django-cpserver 包含到我的 django 应用程序中。
之后,我跑了
并重复这些命令以生成 10 个进程cherrypy.pid-1、cherrypy.pid-2 等、cherrypy.pid-10。
然后,在我的 cherokee 管理员上,我将这 10 个信息源映射到我的 django 实例:-
但是,在重新启动 cherokee 后,它只是给了我一个 502 bad gateway 错误并查看我的 cherokee.error 日志,我看到一系列错误说:-
我不确定我的配置做错了什么。将不胜感激任何指引我朝着正确方向解决此“502 网关错误”问题的指示。
(我应该补充一点,如果我在 cherokee 上使用 django 的标准 scgi 部署配置,一切正常。但我想弄清楚如何使用 cherrypy 作为反向代理在 cherokee 上部署 django。)
glassfish - 在 HTTP 连接丢失时继续处理/执行(Web 服务器/GlassFish)
我收到了关于 Web 服务器(例如 nginx、Cherokee 或 Oracle iPlanet)和 Java 容器(例如 GlassFish)的问题:如果用户断开未完成的连接,我们可以控制连接会发生什么吗?
当浏览器打开到服务器的 HTTP/HTTPS 连接时,它会访问 Web 服务器(nginx、Cherokee 或 Oracle iPlanet),然后反向代理到 Java 容器(GlassFish)。然后 Java 应用程序执行并执行很多事情,例如计算,最后需要写入 3 个不同的数据库。如果它已经完成了对第一个数据库的写入——但还没有写入第二个和第三个数据库——并且用户关闭了连接(通过关闭浏览器窗口,或者失去了网络连接等),这个过程会发生什么?
具体来说,我希望进程继续执行,直到它完成所有代码的执行。我知道一种方法是在新线程上分离进程,但这会产生计算成本。那么,是否有任何设置/配置可以确保即使用户断开连接也能继续执行?
php - 测试 X-Sendfile 标头是否正常工作
我正在寻找一种方法来确认 X-Sendfile 是否正确处理通过脚本 (PHP) 传回网络服务器的请求。图片已正确提供,但我想我会在 curl 请求中看到标题。
配置
在 FastCGI 中带有 PHP-FPM 5.3.8 的Cherokee 1.2.100
cherokee.conf: vserver!20!rule!500!handler!xsendfile = 1
:(
由 vServer > Behavior > Extensions php > Handler 设置:允许 X-Sendfile [检查已启用])
Wordpress Network / WPMU 3.3.1 :
define('WPMU_SENDFILE',true);
设置在wp-config.php
下面刚刚wp-settings.php
包含之前。这将触发在WP 的 wp-includes/ms-files.php:50中执行以下代码,为特定博客提供文件:
我已经确认上面的代码片段正在执行,方法是在exit();
调用之前添加一个额外的头文件进行处置。Content-Disposition 存在于上面的 curl 结果中,而不是最初在 ms-files.php 代码中。添加的代码是:
header('Content-Disposition: inline; filename="'.basename($file).'"');
研究
我有:
- 进行配置更改后重新启动 php-fpm / cherokee 守护程序。
- 在php.net/readfile
ms-files.php
的评论中尝试了几个技巧,并用示例中更完整的代码 替换了简单的标题。- php.net/manual/en/function.readfile.php
- www.jasny.net/articles/how-i-php-x-sendfile/
- *codeutopia.net/blog/2009/03/06/sending-files-better-apache-mod_xsendfile-and-php/*
- 确认了 [cherokee support][5] 并测试了 [使用和不使用][6] 压缩,尽管我认为它不会适用,因为我的图像服务正确。我还从 lighttpd 帖子中发现了一个可疑的类似问题。
- *cherokee-project.com/doc/other_goodies.html*
- code.google.com/p/cherokee/issues/detail?id=1228
- webdevrefinery.com/forums/topic/4761-x-sendfile/
- 在 SO 上找到了一个可能表明标题被剥离的简介
- stackoverflow.com/questions/7296642/django-understanding-x-sendfile
- 从 curl、wget、Firefox、Chrome 和 web-sniffer.net 测试,上面的 headers 是一致的。
- 发现由于缺乏声誉,我不能发布超过 2 个链接。
问题
X-Sendfile
当它正常工作或被剥离时会出现在标题中吗?- 可以使用访问日志来确定是否
X-Sendfile
正常工作吗?
我在这里寻找一般故障排除提示或信息,不一定特定于 PHP / Cherokee。
更新
我找到了一种在测试或沙盒环境中确认 X-Sendfile 或 X-Accel-Redirect 的合适方法:禁用 X-Sendfile 并检查标头。
在 Cherokee 中禁用 Allow X-Sendfile:
图像不会在浏览器中加载,但您可以看到标题存在。重新启用 Allow X-Sendfile 后,图像会加载,您可以确信 X-Sendfile 正在工作。
django - 在 cherokee + uwsgi 上运行 django 项目
有:
1)ubuntu 11.10
2)cherokee(https://launchpad.net/~cherokee-webserver/+archive/ppa)(版本1.2.101)
安装如下:
3)uwsgi(版本0.9.8.1-1)安装如下:
4) Django 1.3.1 (sudo pip install django)
运行:
1)将example.com添加到主机文件(example.com 127.0.0.1)
2)创建uwsgi.xml
和 django_wsgi.py
3)
将文件 uwsgi.xml、django_wsgi.py 移动到 /var/www/vtest 和 chmod +x django_wsgi.py
4) 在 cherokee-admin vservers -> 添加 -> 平台 -> uwsgi 选择 uwsgi.xml 文档根目录 /var /www/vtest 在控制台中:
如果在控制台中运行 uwsgi 命令:
在浏览器 example.com 中:
500 Internal Server Error 错误
的原因是什么?而这一行:“没有加载应用程序。进入完全动态模式”在控制台中。
fastcgi - PHP-FPM / FastCGI + exit() 导致 CPU 峰值
在 Cherokee 1.2.101 的 FastCGI 中运行 Archlinux / php-fpm 5.3.9 的某些服务器上,我遇到了间歇性问题。我正在使用一个缓存插件,它使用如下逻辑构建和提供静态缓存文件:
一些进程最终会在挂在该exit()
调用上的 php-fpm 的缓慢日志中结束。那时负载达到峰值,100% 的 CPU 使用率(几乎)完全流向网络服务器,PHP 页面开始返回 500 - Internal Server 错误。有时服务器会自行恢复,其他的我需要重新启动 php-fpm 和 cherokee。
我将 PHP-FPM 的 FastCGI 设置配置为执行
即使这是一个 VPS,我也会暂时排除文件系统上的 IO 等待,因为应该已经加载了缓存文件。我无法在测试中抓住它
vmstat
我已
pm.max_requests
设置为 500,但想知道exit()
调用是否干扰了进程的循环。php-fpm 日志显示了很多
WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers)
. 这似乎是 php-fpm 调节池中子进程数量的正常部分
任何有关故障排除的提示将不胜感激。以下是我发现引发了一些危险信号的 3 件事:
http://www.php.net/manual/en/function.exit.php#96930
https://serverfault.com/questions/84962/php-via-fastcgi-terminated-by-calling-exit#85008
web - Cherokee Web 服务器项目还活着吗?
几天来,我一直在尝试访问 cherokee-project.com,但没有任何反应。这个项目还活着吗?
django - 奇怪的 django 媒体部署问题
我设法将 cherokee 部署为 django 应用程序的反向代理,该应用程序以cherrypy 作为信息源运行。
除特定图像外,所有静态文件和媒体文件似乎都已正确提供。
在http://mydomain.com/media/files/none.png,我得到一个
?
但是,如果我在该文件的 url 后面附加一个,它会正确显示为 1x1 像素图像。
会给
这是预期和正确的。
为什么会这样?
c++ - 轻量级 Web 服务器的 C++ 兼容性
我对 Web 服务器事务非常陌生,并且相对是 C++ 的幼稚学生。我现在正在做一个项目,我必须为现有的 Web 服务器创建一个插件。这是一个公司的商业项目,但它也是我的学士论文项目。我不太确定哪个 Web 服务器适合我的项目。我正在寻找的 Web 服务器应该处理网络套接字并将 http 或 https 请求作为对象呈现,插件(我想要开发的)应该从中读取标头、url、数据和翻译(特别翻译 SOAP 和REST)相应地用于公司的Data storage的Filesystem API,反之亦然。插件必须使用C++开发。服务器环境是Linux Cent OS 6。公司的普通员工以前从未使用过linux服务器环境。它是一家小公司。他们以前只使用 Windows 和 IIS Web 服务器。我们的项目经理不愿意使用 Apache,因为它占用空间大,速度慢,而 IIS 不适合 linux。所以,我们正在寻找一个免费的 Linux 轻量级 Web 服务器。
我看到人们谈论了很多关于 Nginx、G-WAN、Cherokee、Lightspeed、Varnish、Tntnet 等的话题。但我并没有真正找到任何关于这些 Web 服务器比较的标准判断来源。所以,请告诉我,哪个 Web 服务器更适合我。等待答复。