我们能够find正在运行Magento的NGINX服务器崩溃的问题,直到以下几点: 背景信息:Magento后端有一个所见即所得的编辑器CMSfunction。 这个编辑器通过magento(cms / directive)中的控制器加载一些图片。 当我们将NGINX error_log级别设置为info时,我们得到以下行(为了更好的可读性插入换行符): 2012/10/22 18:05:40 [info] 14105#0: *1 client closed prematurely connection, so upstream connection is closed too while sending request to upstream, client: XXXXXXXXX, server: test.local, request: "GET index.php/admin/cms_wysiwyg/directive/___directive/BASEENCODEDIMAGEURL,,/ HTTP/1.1", upstream: "fastcgi://127.0.0.1:9024", host: "test.local" 在debugging器中检查代码时,以下调用永远不会返回(在'Varien_Image_Adapter_Abstract :: getMimeType()` # $this->_fileName is http://test.local/skin/adminhtml/base/default/images/demo-image-not-existing.gif` # $_SERVER['REQUEST_URI'] = http://test.local/admin/cms_wysiwyg/directive/___directive/BASEENCODEDIMAGEURL list($this->_imageSrcWidth, $this->_imageSrcHeight, $this->_fileType, ) = […]
我试图将这些规则从Apache重写转换为nginx: RewriteRule ^([^/]+)/([^/]+)?$ api.php?version=$1&call=$2 [L] 我尝试在nginxconfiguration中添加以下内容: rewrite ^([^/]+)/([^/]+)?$ api.php?version=$1&call=$2 但是当我访问我的网站时,我只收到一个404错误。 我希望我的url看起来像: http://mysite/1.0/Something 我如何将这些规则转换为nginx?
我正在testing我的Linode Ubuntu 14 64位服务器,这是他们提供的最基本的服务器。 我正在使用Apache Benchmark来testing服务器,以及我用Python编写的multithreading脚本,但稍后会介绍更多。 使用AB我注意到,当从服务器本地运行本地时,每秒约7k个请求,但是从另一个networking/因特网运行时只有约15个请求。 本地1000个并发连接的响应时间也约为150毫秒。 对于100个并发连接,响应时间大约为1.5-2.5秒。 我运行远程testing的networking有很多带宽,而且我运行它的计算机有很多内存和处理器的速度。 这是一个快速的商业networking。 我甚至在美国的其他两台电脑上试了两台,速度都差不多。 在运行我的multithreading脚本时,我注意到只要尝试了超过100个并发请求,就会打嗝,这是来自外部networking。 我还没有在服务器上本地尝试我的脚本,因为我需要将服务器上的Python升级到3+或将脚本更改为2.7兼容。 我在本地进行了testing,在运行1000个multithreading连接的脚本时获得了150毫秒的响应时间,这只是使用urllib2。 我直接对nginx(一个静态文件),nginx后面的pywsgi应用程序以及直接对pywsgi进行testing。 pywsgi应用程序有一个简单的路线,回复一个基本的回应,所以它应该是快速的。 毫不奇怪,nginx-> pywsgi提供了最好的结果,可能是因为它缓冲了请求。 有没有什么是特定的Linode的networking导致这个问题? 内部和外部testing之间的数量级差异使我想知道可能是什么原因。 唯一的办法就是iptables防火墙,只需要在http / s和ssh中进行过滤。 dmesg没有关于我的testing的信息。
在服务器上 [root@bangvmpllDA02 logs]# ruby -v ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux] [root@bangvmpllDA02 logs]# puppet –version 3.0.1 和 [root@bangvmpllDA02 logs]# service nginx configtest nginx: the configuration file /apps/nginx/nginx.conf syntax is ok nginx: configuration file /apps/nginx/nginx.conf test is successful [root@bangvmpllDA02 logs]# service nginx status nginx (pid 25923 25921 25920 25917 25908) is running… [root@bangvmpllDA02 logs]# 然而,我的代理没有能够连接到主,他们都失败像这样的错误 [amisr1@blramisr195602 […]
我目前有一个Apache Web服务器,在这个服务器下,每个虚拟主机使用HTTPD-ITK和AppArmor模块进行隔离。 每个虚拟主机的工作人员都由服务器设置为setuid / setgid,然后放置在AppArmorconfiguration文件中。 我正在寻找使用Nginx的,但我找不到任何文档设置它,以便在所有虚拟主机之间共享工作进程,工作进程是每个虚拟主机(因此可以是setuid / setgid)。 在Nginx下有没有办法做到这一点?
我已经做了所有的search,但没有运气。 我试图找出如何为用户创build一个名称空间,说user.mysite.com,并有redirect到他/她的文件夹(mysite.com/user)。 有没有办法使nginx转发所有子域到他们各自的文件夹? 我这样做的原因是因为我希望能够使这样的子域名,而不必重新启动nginx。 我的nginx.conf文件看起来像这个FYI。 server { # add www. if ($host ~ ^(?!www)) { rewrite ^/(.*)$ http://www.$host/$1 permanent; } server_name www.mydomain.com; access_log /var/log/nginx/mydomain.com.access.log; error_log /var/log/nginx/mydomain.com.error.log; root /usr/share/nginx/mydomain.com/; index index.php index.html index.htm; # use fastcgi for all php files location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # deny […]
我一直没有find符合我的特定情况的问题,所以希望这不是重复的,如果是的话,我表示歉意。 负载平衡器后面有4个Web服务器。 我只想要www.mydomain.com,123.123.123.123(我的服务器的公共IP地址)和456.456.456.456(我的服务器的内部networkingIP地址)工作,其他任何东西都应该redirect到www.mydomain.com。 为什么:我需要将所有内容发送到www.mydomain.com,因为我们已经有人build立了指向我们IP地址的其他域名(www.otherdomain.com),所以它就像我们网站的一面镜子。 我们不知道他们为什么这样做,但Google开始抓取他们的网站,就好像它完全是一个不同的网站,并造成麻烦。 我需要允许服务器的IP地址,因为我们通过一个自定义的API来使用服务器的内部聊天来绕过负载平衡器。 我能find的唯一的解决scheme,包括IP地址redirect到www.mydomain.com,或者他们最终没有redirect。 这是我目前的configuration(截断简单): server { listen 80; server_name www.mydomain.com 123.123.123.123 456.456.456.456; } server { listen 80 default; server_name _; rewrite ^ http://www.mydomain.com$request_uri?; } 预期:请求到正确的域或IP地址匹配第一个规则。 所有其他请求匹配第二条规则并redirect。 实际:根本没有得到redirect,我假设,因为NGINX只是匹配的IP地址,无论域到第一条规则。 也可能是负载平衡器搞砸了? 如果有帮助,我正在使用Rackspace云负载平衡器。 我也试过这个configuration: server { listen 80 default; server_name www.mydomain.com; } server { listen 80; server_name _; rewrite ^ http://www.mydomain.com$request_uri?; } 这与之前的结果相同。 似乎没有任何redirect。 任何想法如何我可以解决这个问题? […]
突然之间,我们的服务器开始变得非常奇怪,CPU使用率非常高,RAM使用率也很低。 我从来没有见过这个,我不知道该怎么做。 我觉得如果我能让系统开始使用更多的可用内存,CPU使用率会更低,但我似乎无法调整它来做到这一点。 这是使用PubNub的一个WordPress单一网站w / CometChat。 CPU的扣球几个星期前开始,有时它的平均负载是10有时是40 + …我似乎没有能够追查原因。 我应该有足够的资源来处理我们收到的stream量。 8个2.4Ghz内核和24GB内存! 我会很感激任何人可以提供帮助。 这是一些相关的数据…(我最近试图平息事情) nginx.conf user www-data; worker_processes 4; pid /var/run/nginx.pid; events { worker_connections 4096; multi_accept on; accept_mutex_delay 50ms; } http { ## # Basic Settings ## sendfile on; #tcp_nopush on; #tcp_nodelay on; keepalive_timeout 5; keepalive_requests 100000; reset_timedout_connection on; types_hash_max_size 2048; server_tokens off; # server_names_hash_bucket_size 64; […]
什么是性能影响? 在一个Nginx实例上托pipe数万个虚拟主机是否实用? 增加的等待时间是多less? 我们计划为用户提供自定义域,并为每个用户分配不同的chroot,并直接从nginx提供静态资源(如js / css),我们希望尽可能多地为每个nginx实例托pipe多个用户。
下午先生, 我目前的设置是一个单一的网站,让我们打电话给http://production.com ,这是由端口80上的Nginx服务作为一个静态caching和Apache 8080端口上的本地主机,没有真正的幻想,这工作得很好。 我现在想要做的是使URL http://production.com/foobar包含来自外部URL的数据,我们将调用http://internal.com/ 。 我遇到的问题是,如果我浏览到http://internal.com/我会自动redirect到http://www.internal.com/forum/forum.php由于这是一个vBulletin论坛,有他们的拥有内部redirect以及不基于网站urlvariables的内容。 当然,如果我尝试通过Nginx代理它,我只是“转发”到../forum/forum.php URL。 那么,我将如何去解决这个问题呢? 有没有办法让这个redirect不可见,而不是让Nginx实际上按照它在地址栏中? 基本上是一个iframe,而不使用实际的iframe。 🙂 这是我现在尝试使用的Nginx代码片段: location /foobar { proxy_pass http://internal.com/; proxy_redirect off; proxy_set_header Host $host; } 想法? 提前致谢。