Questions tagged «nginx»

Nginx(“ eNgine x”)是一种轻量级的高性能HTTP服务器,反向代理,TCP流代理和邮件代理,在类似BSD的许可证下发布。

7
Nginx + php5-fpm =“找不到文件”
在使用nginx / fpm设置站点时,我碰壁了。该页面显示“找不到文件”,这出现在nginx error.log中: FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream 我是nginx和fpm的新手,并且该错误消息对我而言毫无意义(即使Google机器也无济于事!)。任何人都可以阐明可能发生的事情吗?
14 nginx  php-fpm  socket 

1
时间到第一个字节先生的奇怪情况
我有一个基于Linode 1024 VPS的Web服务器,基于 Ubuntu 11.10 Nginx 1.0.5 PHP 5.3.6(带有PHP-FPM,APC) 清漆3.0.2 还有一些基于WordPress 3.3.1的博客。其中之一是纯博客,具有默认配置,主题和仅“ Hello World”帖子,用于测试服务器。另一个是从其他服务器克隆的博客,其中包含近1万个帖子和超过1万条评论。该博客每天有5k唯一身份。 服务器在测试博客的ab测试中给出了很好的数字,但是对克隆的博客进行相同的测试是不可能的:ab测试会使服务器负载过多,并且我必须停止该过程,无论如何这会使ab显示出来这个结果真差。 在正常操作时,仪表板还显示“正常”负载,但是在ab测试期间,正常显示较大负载。 还有另外一件奇怪的事情发生(对我来说最重要):到第一个字节的时间非常长,但是之后等待该站点的速度非常快。可以使用tools.pingdom.com之类的服务轻松对其进行测试,从而得出此结果。请注意表示“等待时间”的黄色区域。 为什么会这样呢?可能的想法: 错误的PHP-FPM配置 Linode DNS响应时间太长了。废话-测试博客解决DNS问题,TTFB很棒 错误的Nginx配置 如果有人需要更多信息, 在这里,您具有当前克隆的博客nginx配置文件 (/etc/nginx/sites-available/muycomputerpro.com) 在这里,你已经得到了当前的my.cnf配置(/etc/mysql/my.cnf)(我知道,暂时不缓存,这不会对过去的TTFB差异) 在这里,您具有当前的PHP-FPM配置(/etc/php5/fpm/pool.d/www.conf)

2
ApacheBenchmark AB-SSL读取失败-关闭连接
当我在自己的网站上运行ab时,会收到大量的这些响应: SSL read failed - closing connection SSL read failed - closing connection SSL read failed - closing connection 有时它是成功的。我使用的是MacBook Pro 10.7.2。奇怪的是,其他人在非常接近模拟的机器(而不是OS Lion)上进行了相同的测试,就在我旁边并且没有问题。 有任何想法吗?我确信这是我机器上的东西,因为我可以在整个地方工作。 该命令很简单: ab -c 100 -n 1000 https://mywebsite.com 另一件事,当我查看nginx日志时,确实看到了一些来自ab的请求,因此它正在工作。而且,日志不会显示失败的日志。
14 apache-2.2  nginx  ssl  ab 

5
了解此错误:apr_socket_recv:对等方重置连接(104)
因此,如果我使用apache基准测试(ab)进行一些基准测试,那么我会使用大量请求。然后有时在测试过程中出现此错误。 我什至不知道这意味着什么。那么我该如何解决呢?还是如果服务器受到的点击过多,会发生什么?问题是,如果我运行10,000次匹配,它们将完美运行。如果我再次运行它,它将达到4000并得到错误: apr_socket_recv: Connection reset by peer (104) 关于我的设置的一些信息:我让Nginx接受静态请求并处理动态请求。有问题的文件由nginx从缓存中提供,因此我想这可能与nginx如何处理请求有关? 有想法吗?

4
nginx和memcached协同工作的效果如何?
我们在Glassfish应用服务器群集上运行了一个基于Java EE的Web应用程序。传入流量主要是对我们的应用程序资源的基于XML表示形式的RESTful请求,但是可能有5%的流量可能是针对基于JSON或XHTML / CSS的表示形式。 现在,我们正在研究负载平衡解决方案,以在群集中的Glassfish实例之间分配传入流量。我们还在研究如何使用memcached卸载群集,memcached是一种内存中的分布式哈希图,其键将是REST资源名称(例如,“ / user / bob”,“ / group / jazzlovers”),其值为相应的XML表示形式。 听起来很有希望的一种方法是用一块石头杀死两只鸟,并使用轻量级的快速nginx HTTP服务器/反向代理。Nginx将通过首先在memcached中查找其URI来处理每个传入请求,以查看是否已经存在未到期的XML表示形式。否则,nginx将请求发送到其中的Glassfish实例之一。在这篇简短的文章中描述了nginx memcached模块。 使用这种方式对nginx和memcached的总体印象是什么,您对它们有多满意?您发现哪些资源最有助于他们的学习?如果您尝试了它们,但它们不符合您的目的,为什么不这样做?您使用了什么呢? 注意:这是一个相关的问题。在我了解ServerFault之前,我曾在StackOverflow上问过这个问题。 编辑:尽管没有直接的经验,到目前为止,这里所有的答案都非常有帮助。这个答案最终确实出现在StackOverflow上,并且对nginx / memcached设置相当看好。
14 nginx  memcached 

1
覆盖默认的nginx http配置而不更改默认的nginx.conf
我的意图:我想重写在/etc/nginx/nginx.conf(debian 8)中定义的默认配置。这样做的目的是使该文件完全不受影响,以简化将来的系统更新,并能够获取我未覆盖的选项的最新更改。 我所做的:我/etc/nginx/conf.d/以与其他几种debian服务相同的方式创建了一个自定义配置。 问题:但是,似乎无法覆盖某些配置,因为我得到的“ X”指令是重复错误。Nginx似乎不像其他服务那样支持配置覆盖。 问题:是否有一种方法可以覆盖nginx http上下文并向其中添加新选项,而不会导致指令重复错误?还是我应该完全放弃这个想法并横扫nginx.conf呢? 非常感谢您的帮助。 这个类似的问题并不能真正解决我的问题,因为我也想从为我自动设置的默认选项nginx中获利(例如worker_processes auto;)

6
使用OpenSSL 1.0.2的Debian Jessie Nginx使用ALPN而不是NPN
我在服务器上运行debian jessie,最近升级到了具有http / 2支持(nginx 1.10)的新Nginx Web服务器。与今天一样,它的工作原理非常好,并且Web服务器正在通过http2协议交付内容。 我已经读到,Chrome正在放弃NPN支持,并且仅允许在2016年5月15日之后使用ALPN。ALPN是扩展程序,需要安装openssl 1.0.2,但在debian jessie上仅是openssl 1.0.1(在debian backports和另一个存储库上,此debian没有openssl 1.0.2版本)。 有一个问题-我已经从SPDY升级到http2,几天之内,我将不得不关闭http2并且不能使用SPDY,因为此版本的nignx只有http2。我还读过,该版本的debian将使用openssl 1.0.1,只有debian Stretch将具有openssl 1.0.2。但是要发布日期将近一年,Chrome将很快放弃支持,因此我不想失去http2协议的好处。 有什么解决方案,如何在此系统上安装openssl 1.0.2,而无需构建自己的构建(不良维护)或等待反向端口存储库拥有它?我也不想在我的系统上使用两个版本的openssl,如果其中一个必须手动链接和维护。 谢谢你的帮助。

6
Nginx-如果有`nodelay`选项,定义`burst`是什么意思
在Nginx配置中,当您想通过使用limit_req_zone/ 来限制请求处理速率时limit_req instructions,我不太了解该nodelay选项的用法。 以我的理解,它会在不延迟定义速率的情况下终止请求。因此,它似乎等同于burst=0。这就是为什么我不理解以下示例的原因: limit_req zone=one burst=5 nodelay; burst定义了可能会延迟的请求数,那么定义burst是否有nodelay选项的含义是什么?
14 nginx 

1
是否应该从Nginx配置中删除“ keepalive_timeout”?
哪个配置/优化更好:显式限制keepalive_timeoutor或允许Nginx自行终止keepalive连接? 我已经看到有关keepalive_timeoutNginx指令的两个相互矛盾的建议。它们如下: # How long to allow each connection to stay idle; longer values are better # for each individual client, particularly for SSL, but means that worker # connections are tied up longer. (Default: 65) keepalive_timeout 20; 和 # You should remove keepalive_timeout from your formula. # Nginx closes …
14 nginx  keepalive 

2
在Nginx中使用通配符证书的多个SSL虚拟主机
我有两个主机名,它们共享要通过HTTP服务的相同域名。我有一个通配符SSL证书,并创建了两个vhost配置: 主持人A listen 127.0.0.1:443 ssl; server_name a.example.com; root /data/httpd/a.example.com; ssl_certificate /etc/ssl/wildcard.cer; ssl_certificate_key /etc/ssl/wildcard.key; 主机B listen 127.0.0.1:443 ssl; server_name b.example.com; root /data/httpd/b.example.com; ssl_certificate /etc/ssl/wildcard.cer; ssl_certificate_key /etc/ssl/wildcard.key; 但是,我为任一主机名使用了相同的虚拟主机。

4
Nginx启动失败ssl没有这样的文件或目录
这是我得到的错误: 重新加载nginx配置:nginx:[emerg] SSL_CTX_use_certificate_chain_file(“ / path / to / cert.pem”)失败(SSL:错误:02001002:系统库:fopen:无此类文件或目录错误:20074002:BIO例程:FILE_CTRL:system lib错误:140DC002:SSL例程:SSL_CTX_use_certificate_chain_file:系统lib)nginx:配置文件/etc/nginx/nginx.conf测试失败 我100%确定文件位于该位置,但是Nginx似乎认为它不存在。我按顺序合并了domain.crt和intermediate.crt。我整天都在挠头。我希望有人看到了这个错误并找到了解决方案。(另外请注意,粘贴文件位置仅显示一次,而不是在``没有这样的文件或目录''之后再显示,这不是错误)。

4
如何限制Nginx Auth_Basic重试?
我已经使用Nginx的Auth_Basic模块保护了Web文件夹。问题是,我们可以尝试使用多个密码直到它起作用(强力攻击)。有没有办法限制重试失败的次数?
14 security  nginx 

1
使用量词时,nginx pcre_compile错误
我在使用别名时遇到问题。我想将文件的前4位附加为目录的一部分。(例如'../123456.jpg'=>'../123/123456.jpg'和'../12.png'=>'../12/12.png') 这是我所拥有的: location ~ ^/i/gallery2/(\d{1,4})(.*)$ { alias /home/web/images/gallery/$1/$1$2; } 这是我得到的错误: nginx: [emerg] pcre_compile() failed: missing ) in "^/i/gallery2/(\d" 任何人都有任何想法如何使它工作?看来“ {1,4}”有问题,还有我想要的另一种方式吗?
14 nginx  regex 

1
Nginx多个位置问题
我目前正在尝试将3个应用程序从一个存储库拆分为3个,但是要保留url结构,因此同一域下的基本上不同的位置必须由不同的应用程序提供。 我正在苦苦挣扎的是其中一个应用程序必须是不存在的URL的后备,因此,如果第一个不匹配,而第二个不匹配,则第三个应处理请求 我得到的结构是: / etc / nginx / sites-enabled / main_site,在这里,除了server_name和日志外include /etc/nginx/subsites-enabled/*,我还有3个配置文件,每个应用程序一个。 3个配置文件中的每一个都包含一个位置块。 我曾尝试在正则表达式中进行负前瞻(基本上是尝试对其他应用程序处理的网址进行硬编码),但失败了。 因此,总结一下: /和/ community应该由/etc/nginx/subsites-enabled/example.org/home提供(一些perl脚本) / news应该由/etc/nginx/subsites-enabled/example.org/news(wordpress)交付 其他所有内容均应通过/etc/nginx/subsites-enabled/example.org/app(蛋糕应用程序)提供 perl位工作正常。我遇到的问题是该应用程序正在接手新闻(可能是因为它匹配。*),我尝试了各种选择(我在这里呆了2天),但没有一个解决了所有问题(有时静态资产不起作用,等等)。 我的配置是: /etc/nginx/sites-enabled/example.org: server { listen 80; server_name example.org; error_log /var/log/nginx/example.org.log; include /etc/nginx/subsites-enabled/example.org/*; } /etc/nginx/subsites-enabled/example.org/home: location = / { rewrite ^.*$ /index.pl last; } location ~* /community(.*) { rewrite ^.*$ …
14 nginx 

1
NGINX“ client_max_body_size”指令在“ location”块内不起作用
我的/admin网站上有一个目录,我希望允许管理员通过网络表单上传大文件。这是我的nginx.com的外观: http { # ... client_max_body_size 16M; # ... server { server_name example.com; root /var/www/example.com; index index.php; location /admin { client_max_body_size 256M; } # ... } } 这是行不通的。/admin/index.php脚本无法上传大于16Mb的文件:413请求实体太大 但是,如果我阻止移动client_max_body_size,server一切都会很好。但我不想仅对admin目录进行此更改。 根据docs,client_max_body_size可以将其放置在location块中以仅覆盖所需路径的设置。 有什么事吗
14 nginx 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.