Articles of nginx

使用unicode文件名重新上传文件会创build相同的副本

我正在Debian 6系统上运行一个Django站点,使用gunicorn服务器和处理静态文件的nginx 0.7.67。 文件系统区域设置为sv_SE.UTF-8。 我遇到了另一个用户上传包含unicode字符的文件名的问题。 这导致服务器在尝试提供上传的文件时抛出404错误。 当我从我的系统上传相同的文件时,该站点现在正确地提供该文件。 但是,它并没有删除旧文件,尽pipe它们在各方面似乎完全相同。 以下是当前目录列表。 -rwxr-xr-x 1 www-data www-data 1188260 25 jan 22.53 Läxa 15_geometri.pdf -rwxr-xr-x 1 www-data www-data 1188260 27 jan 10.45 Läxa 15_geometri.pdf 现在怎么可能有两个相同的文件具有相同的(明显的)名称? 首先可能是404的原因,即第一次上传有什么问题? URL和以前一样,只是现在不会抛出404。

使用NGinx限制每种types的file upload

在我的项目上,我将允许用户发送zip文件和图像文件(在两个不同的表单文章上)。 该项目是用Play开发的! 框架(不是PHP)。 我想限制1Mo上传的大小,如果是图像,则10Mo。 这可能吗 ? 我看到了指令client_max_body_size应该做我正在寻找,但我找不到一种方法来应用这个每个MIMEtypes。 谢谢你的帮助 :)

在Nginx中将非GET请求路由到乘客

我有一个Rails应用程序caching多个自定义目录中的页面。 一切工作正常,而不是非GET请求,这是在Nginx发送405错误,因为我的configuration不是路由到乘客。 我的问题是什么是直接向乘客转发非GET请求的最有效方式? 我的nginx.conf目前看起来像这样: server { server_name railsapp.local; root /Users/i0n/Sites/railsapp/public; location / { try_files $uri /$host/$uri/index.html /$host/$uri.html /$host/$uri @passenger; } location @passenger { passenger_enabled on; } }

nginx作为Exchange 2010 OWA + Lync Web App集成的反向代理

我有一个Exchange 2010和Lync Server 2010的工作部署。我已成功configurationOWA Web应用程序和Lync之间的集成,并在局域网聊天和状态工作时在内部访问OWA。 我使用NGINX作为反向代理发布OWA。 从反向代理访问OWA时,lync集成大部分是不起作用的。 症状与此线程上的OP相同,引用: 如果通过Web代理login到OWA,我无法在OWA中看到状态或联系人列表,但是我可以单击一个联系人并启动由另一方接收的聊天会话。 任何其他部分对通过ISA / OWA站点login的用户的回复都不会收到,其错误类似于“用户名在无法接收IM的设备上处于活动状态” 他通过重新运行ISA发布向导修复了这个问题,该发布向导没有告诉我究竟需要什么来实现它。 有没有人成功发布NGINX或Apache的OWA + lync集成?

PHP-FPM进程超时,但NGINX不会closures与客户端的会话

我正在使用Magento与NGINX + PHP-FPM 我们正面临一个问题,即我们的一些AJAX调用在PHP-FPM中超时。 PHP-FPM中的进程被杀死,但NGINX不会closures与客户端的会话。 因此在我的浏览器中,我无法重新加载页面。 有什么build议么。

Apache与Nginx的前端采取挂钩与Django应用程序100%的CPU

我最近推出了一个Web应用程序,不断与100%的CPU挂钩。 我的服务器是一个512 MB的Linode,nginx坐在Apache(MPM Worker)前面,为Django应用程序提供服务。 这个应用程序是不寻常的,它必须做大量的数据库处理<5%的时间(约2-5K查询/请求)。 我目前只有less量的用户(一天50个,在任何时候约5-10个)。 现在我明白做了几千个查询是顶部,我正在寻求优化,但我不明白为什么Apache进程去100%,并留在那里,即使没有人正在访问重载页面。 这是我的Apacheconfiguration的一部分: <IfModule mpm_worker_module> StartServers 2 MinSpareThreads 25 MaxSpareThreads 75 ThreadLimit 64 ThreadsPerChild 25 MaxClients 150 MaxRequestsPerChild 0 </IfModule> 这是我从“顶部”的前几行: 10257 www-data 20 0 370m 143m 4052 S 100 29.0 16:19.47 apache2 1 root 20 0 2728 224 24 S 0 0.0 0:01.34 init 2 root 20 0 0 […]

哪种高可用性模式可供网站select(nginx / mysql)

我们有5台物理服务器。 全部完全相同。 突击search16克,4×146×10克。 所以,我们需要高可用性。 目前的计划如下: 2个带心跳的盒子用于负载平衡。 此时nginx被configuration为平衡器。 那么问题是networking和MySQL。 我打算设置2个运行mysql和nginx的框。 在这些框之间在master < – > master中设置mysql复制。 然后添加已复制mysql的最新的框。 对于这个模型,每个web服务器连接到它的本地mysql服务器。 (以最小化networking延迟)。 其他模式是把两个盒子(nginx)放在HA中,另外两个盒子放在mysql master / slave中。 但在这个模型负载平衡器是孤独的…. – 或者我需要另一个设置。 基本上我不需要怎么做,但select哪种模型。 我们需要处理大量的stream量(约20k /秒)。

Nginx作为代理不允许访问受密码保护的后端(Apache)内容

我有apache作为后端和nginx作为前端。 有些内容由Apache(HTTP Auth)进行密码保护。 当我直接访问它 – 一切工作正常,bur当我尝试通过nginx – 似乎nginx不会转发或caching来自Apache的响应。 所以在nginx日志里面我看到: 89.21.92.0 – – [17/May/2012:22:13:42 +0200] GET / HTTP/1.1 | upstream_address xxxx:80 | upstream_status 401 | upstream_response_time 0.026 | msec 1337285622.757 | request_time 0.026 89.21.92.0 – zentavr [17/May/2012:22:13:44 +0200] GET / HTTP/1.1 | upstream_address – | upstream_status – | upstream_response_time – | msec 1337285624.151 | request_time 0.000 […]

Nginx HttpSecureLinkModule和IP受限散列有时不工作

我使用nginx模块HttpSecureLinkModule来保护资源不被链接到过期哈希,使用用户的IP地址作出一个哈希值,只会为他们工作,在x秒后过期。 我注意到的问题是,只有很less的用户经常得到坏散列,导致nginx拒绝散列并将用户发送到错误页面,表明散列已过期或格式错误。 生成哈希并接受和返回资源的服务器是不同的,时间是同步的。 人们会向我报告问题,我会在多台个人电脑,浏览器,IP和我从来没有问题自己尝试。 我能想到的唯一的事情是他们的IP地址在www.domain.com(它生成散列)时发生变化,然后打到subdomain.domain.com/file.ext?hash=以获取实际的文件。 不同的IP地址会导致它返回一个错误。 某些互联网服务供应商可以这样做吗? 如果是这样,任何方式来解决它,而不是在哈希中使用IP地址?

以编程方式阻止url进行比率限制,取消阻止或终止该块

如果客户端每小时发送超过x个请求,我的要求是能够限制速度或暂时硬阻止对我们的服务器的任何请求一个特定的URL。 大概有25万个URL可能被阻止。 客户有独特的url,他们也做了一个httppost,所以像这样: customer1.example.com/post/location/36A107F4-DD68-47F2-A093-753F7A427CF6/ 其中customer1是客户名称 ,而36A107F4-DD68-47F2-A093-753F7A427CF6是其独特的位置指南 。 我希望我的应用程序能够进行某种API调用来阻止给定的url,然后使用API​​调用来取消阻止或使该块在x分钟后过期。 这可能与像haproxy或nginx的任何开源服务?