Articles of nginx

haproxy清漆不能达到6k的要求

问题 我无法达到6k个请求/秒。 我得到了很多超时。 我的回应时间高达26秒。 介绍 我正在设置一个服务器,将承载一个100MB的静态网站。 问题是,我将不得不连续处理大约8000个连续5天的请求。 我做了以下设置: HAProxy -> Varnish -> Nginx -> Staticfiles HAProxy处理端口80上的连接(即将在端口443上),将请求转移到将从caching中提供文件的Varnish。 我已经设置Nginx expires 7d; 。 所以Narnish会每隔7天向Nginx请求静态文件。 我在Nginx上使用最高的压缩级别,所以Varnish存储高度压缩的静态文件gzip_comp_level 9; 。 我在Nginx expires 7d;设置了静态文件的ttl为7天expires 7d; 。 我已经设置了大量的线程(至less,我认为)在清漆thread_pools=8 thread_pool_max=4000 。 我已经设置了一个不大但不小的内存清漆(静态文件不大于100MB) malloc,512m 。 我已经在HAProxy maxconn 65000设置了最大的maxconn。 我试图玩的sysctlconfiguration,但我不知道它改变了什么,这就是为什么我认为我的问题来自我的configuration。 我相信与maxconn 65000 HAProxy不油门。 我认为油漆油门我的要求,但我不知道如何确认。 我的服务器是这样设置的: Intel(R)Xeon(R)CPU E3-1245 V2 @ 3.40GHz 编号:8 高速caching:8192 KB 速度:1764兆赫 RAM 2 […]

Nginx重写下载php而不是运行它

我有以下代码redirect访问login.php的用户到另一个页面: http { …. geo $bad_user { default 0; 1.2.3.4/32 1; 4.3.2.1/32 1; } server { …. location = /login.php { if ($bad_user) { rewrite ^ http://example.com/foo.php; } } } } 它会下载login.php文件,而不是将用户redirect到其他页面。 所有其他的PHP文件正在工作,除了该文件(login.php)。 如果我删除上面的代码,它工作正常,但它不会redirect。 我尝试了以下内容: rewrite ^ http://example.com/foo.php last; & rewrite ^ http://example.com/foo.php$1 last; 但是他们都没有为我工作。 我也重新启动整个服务器,但它没有工作。 有什么build议吗?

问题与Nginxconfiguration:位置和目录

我有以下简单的服务器块: server { listen 80; server_name _; location / { *****root test/a/;***** index index.htm; autoindex on; } 关于我的一句话是,在一个放星的地方,我把root表示为test/a/ ,它运行的很好,我可以通过浏览器访问索引。 但是如果我selectroot作为/test/a/; 它不工作,我得到一个404错误。 我看到每个人都在根目录前面使用“/”,从教程和本网站。 为什么它不适用于我,有什么想法? 我的系统是Linux v3.18.11 +

如何在同一台服务器上进行分段和生产

我是服务器pipe理新手,最近在Linode服务器上设置了我的Rails应用程序。 我跟随Ryan Bates在这个问题上的类似configuration。 用nginx,独angular兽和Ubuntu 14.04.2。 这与一个应用程序很好。 但我想在同一台服务器上设置一个中转站点。 这只是一个小的应用程序,使用很less的资源,这应该保持低成本。 我如何去做这件事? 我已经configuration和上传两个应用程序到我的根目录(应用程序和分期)。 但是我只有一个IP地址。 我如何configuration一个DNSlogging到应用程序,另一个是登台? 我甚至不知道在浏览器中使用哪个IP地址来访问我的登台服务器。 任何帮助将非常感激!

Google.com SSL密码 – 如何捕获他们正在使用哪些?

我想使用Google.com使用的相同的SSL密码 – 为了最大化浏览器兼容性。 我知道ssllabs.com显示他们,但我不知道如何通过“ssl_ciphers”configuration选项将它们翻译为在Nginx中使用。 https://www.ssllabs.com/ssltest/analyze.html?d=google.com&s=74.125.224.8&hideResults=on 任何想法,我需要用来实现这一目标?

Nginxredirect失败的icingaweb2

我正在尝试使用NginxconfigurationIcingaWeb2,并且遇到了一些问题。 build议的Icinga Nginxconfiguration是: location ~ ^/icingaweb2/index\.php(.*)$ { # fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME /usr/share/icingaweb2/public/index.php; fastcgi_param ICINGAWEB_CONFIGDIR /etc/icingaweb2; fastcgi_param REMOTE_USER $remote_user; } location ~ ^/icingaweb2(.+)? { alias /usr/share/icingaweb2/public; index index.php; try_files $1 $uri $uri/ /icingaweb2/index.php$is_args$args; } 这工作正常,但让我们的networking/ icingaweb2 /而我想要它/。 如果我只是删除icingaweb2 /从conf,它工作正常的每个url,但/。 我目前的configuration是: server { listen 443 ssl default_server; server_name example.com ssl_certificate […]

当使用fastcgi_finish_request()时,Nginx会在每个页面间歇地抛出502

我最近在AWS中inheritance了超过2个Nginx框的pipe理,而且对PHP-FPM的工作方式(而且还没有工作)非常不熟悉。 我最近集成了Keen.IO,用于后端用户日志logging,使用: fastcgi_finish_request(); 在PHP中完成请求,然后继续login到Keen。 这似乎是工作良好,除了一些更高的延迟,我假设用户没有经历,因为他们已经断开。 然而,今天,随着stream量的build立,我们开始收到502网关错误,并且两台服务器都有以下错误: [error] 2356#0: *70245 upstream sent unexpected FastCGI record: 3 while reading response header from upstream, client: (ADDRESS), server: igun-api-slaves.crimson-moon.com, request: "GET (Address)", upstream: "fastcgi://unix:/var/run/php-fpm/product1.socket:", host: "ADDRESS" 这发生在我们所有的页面上,而不仅仅是我用日志修改的页面。 我完全失去了,因为这对我来说都是新的。 这个错误究竟意味着什么? – 编辑 我现在在AWS云中看到,自编写代码以来,错误一直存在,而不仅仅是当stream量build立时。

升级数字海洋液滴时,如何部署503维护页面?

通常当我执行需要简单地把我的网站closures的维护时,我使用类似的方法build立了一个503页面。 当我的代理应用程序服务器closures时 , 如何让Nginx返回HTTP 503? 。 但是,我即将升级我的数字海洋液滴到一个更大的尺寸,所以503错误将不会被发送。 我可以做到这一点的一个方法是将我的503错误页面放在一个单独的小滴,并将我的DNSredirect到这个其他IP地址,而我升级的液滴。 不过,如果他们抓取我的网站,恐怕这可能会引起Google的注意。 当我必须closures整个服务器时,应该如何通知用户和机器人我正在执行维护?

为什么我无法使用curl以HTTP方式连接到我的网站?

我有一个网站www.eshipp.com,所有的域名都被SSL保护,所以任何HTTPstream量都被NGINXredirect到与HTTPS相同的URL。 但是,似乎有些用户没有redirect,然后得到一个“不可访问的”http错误。 由于我自己在浏览器上没有错误,所以很难debugging,但是我很幸运地发现使用Curl会发生这样的错误: $ curl -v http://eshipp.com/ * Hostname was NOT found in DNS cache * Trying 198.199.96.110… * connect to 198.199.96.110 port 80 failed: Connection timed out * Failed to connect to eshipp.com port 80: Connection timed out * Closing connection 0 curl: (7) Failed to connect to eshipp.com port 80: Connection timed out […]

如何debuggingSSL连接丢失的位置?

大的图片是我想设置一个子域的SSL连接,如果我去当前,如果我去非安全的url的网站工作,但如果requeset https://sub.domain.com没有来自服务器的响应: 此网页不可用ERR_CONNECTION_CLOSED 这是一个多方面的问题,所以请让我知道,如果我最好把问题分解成小块。 也随时让我知道,如果任何这将是更好的StackOverflow。 这就是我如何看待构成这种情况的一系列物品: SSL证书由startssl.com提供 url归Godaddy所有(不是由我select) CNAME指向Microsoft Azure虚拟机 VM是标准的Ubuntu 14.04.2 LTS Nginx设置了一个反向代理来指向两个URL,以在同一台服务器上分离应用程序。 该应用程序是与MUP部署的meteor应用程序 。 nginx的“虚拟主机”就像这样安装meteor/套接字。 我已经尝试了几种方法来设置SSL并进行debugging: 遵循这些具有mup(部署工具)设置的说明 Startssl 指令 ,用nginx设置证书 在Azurepipe理控制台中,我已经上传了“云服务”证书 已知未知数: 不知道使用Microsoft Azure是否有所作为,或者是因为无论使用什么IaaS,ubuntu VM都是正在运行的。 不知道https请求被丢弃的位置(例如它是否到达VM?是否到达上游nginx代理服务器?)。 http:// url工作正常,我可以查看上游服务器的日志,但在上游服务器的日志中没有看到任何安全url。 从我的电脑的安全和不安全的urltraceroute似乎都有相同的path。 这是否意味着这方面的任何事情? 本质上,我正在寻找帮助,我怎么可以尝试debugging为什么安全的url没有find线性的方式。 尤其是关于第二个未知数,因为我目前不知道连接丢失的位置/请求目前下降到兔子洞的距离。 谢谢!