在access_log指令的文档中,nginx文档说 缓冲区大小不能超过primefaces写入磁盘文件的大小。 我怎样才能确定这个大小是在我的系统上?
我们在我们的网站上托pipe一些video文件(mp4)。 所有的文件在谷歌浏览器中加载的速度太慢,在FF中一切正常。 我testing了一个大小为34MB的文件的下载(我通过直接链接打开文件)。 结果是: Chrome制作了〜22000 (!)个请求,传输了982MB 。 Firefox只提出了5个请求。 作为服务器,我们使用nginx默认(与video文件服务有关)设置。 这里的交互(前五个请求)包括Chrome和服务器。 仅包含Range , Content-Length , Content-Range标题。 (< – 由Chrome发送的标题,< – 由服务器发送的标题): > Initial request for file, usual GET < Content-Length:35690389 < Content-Type:video/mp4 Then a bunch of similar requests, on which the server responded with 206 status code: — > Range:bytes=0- < Content-Length:35690389 < Content-Range:bytes 0-35690388/35690389 — […]
可以使用特定位置的速率限制来限制速度。 但是,我们如何dynamic地做到这一点呢? 假设您已经付费与非付费用户,并且您希望为付费用户提供更高的带宽。 我们需要dynamic检查数据库,并为这个特定的用户群提供一定的速度。 你有任何nginx模块?
特别是在configurationHPKP头文件(或其他长头文件)时,将nginxconfiguration文件的一行分割成多行是非常有用的。 这是所需的结果: pin-sha256="X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg="; pin-sha256="MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec="; pin-sha256="isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg="; pin-sha256="I/bAACUzdYEFNw2ZKRaypOyYvvOtqBzg21g9a5WVClg="; pin-sha256="Y4/Gxyck5JLLnC/zWHtSHfNljuMbOJi6dRQuRJTgYdo="; pin-sha256="/oCVQg3nP3DroGpFdAbaiYzenycUftqrH3LAyaIal2g="; 但是,对于浏览器,它应该只有一行: pin-sha256="X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg="; pin-sha256="MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec="; pin-sha256="isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg="; pin-sha256="I/bAACUzdYEFNw2ZKRaypOyYvvOtqBzg21g9a5WVClg="; pin-sha256="Y4/Gxyck5JLLnC/zWHtSHfNljuMbOJi6dRQuRJTgYdo="; pin-sha256="/oCVQg3nP3DroGpFdAbaiYzenycUftqrH3LAyaIal2g="; 所以我尝试了一些东西,但是我对结果并不满意。 首先尝试:把它分开 add_header Public-Key-Pins ' pin-sha256="X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg="; pin-sha256="MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec="; pin-sha256="isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg="; pin-sha256="I/bAACUzdYEFNw2ZKRaypOyYvvOtqBzg21g9a5WVClg="; pin-sha256="Y4/Gxyck5JLLnC/zWHtSHfNljuMbOJi6dRQuRJTgYdo="; pin-sha256="/oCVQg3nP3DroGpFdAbaiYzenycUftqrH3LAyaIal2g="; ' 这工作,但curl我可以看到,浏览器收到所有换行符头… 第二次尝试:反斜杠 其实在已经链接的文章斯科特·海尔姆推荐这个: add_header Public-Key-Pins ' \ pin-sha256="X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg="; \ pin-sha256="MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec="; \ pin-sha256="isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg="; \ pin-sha256="I/bAACUzdYEFNw2ZKRaypOyYvvOtqBzg21g9a5WVClg="; \ pin-sha256="Y4/Gxyck5JLLnC/zWHtSHfNljuMbOJi6dRQuRJTgYdo="; \ pin-sha256="/oCVQg3nP3DroGpFdAbaiYzenycUftqrH3LAyaIal2g="; \ ' 但是在我的情况下,这只是添加了斜线,并返回给浏览器,所以这是行不通的。 那我该怎么做呢? 奖金 当然每条线的评论将是一个很好的补充: pin-sha256="X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg="; # current ECDSA […]
昨天我做了一些很愚蠢的事情。 我编辑了我的nginx服务器的configuration文件,丢弃了一些设置,并且在我保存了文件之后,我意识到我正在编辑错误的文件。 现在我没有重新加载服务器,所以它仍然在运行旧的configuration。 我想知道是否可以显示服务器正在运行的当前configuration。
在CentOS 6.5上,在/etc/pki/tls/certs我有: ca-bundle.crt 和 ca-bundle.trust.crt 具有不同的文件大小。 我应该使用哪一个作为nginx proxy_ssl_trusted_certificate的信任path。
我一直在玩docker和docker写作,并有一个问题。 目前我的docker-compose.yml如下所示: app: image: myname/php-app volumes: – /var/www environment: <SYMFONY_ENVIRONMENT>: dev web: image: myname/nginx ports: – 80 links: – app volumes_from: – app 应用程序包含端口9000上的php-fpm和我的应用程序代码。 Web是带有几个configuration的nginx。 这个函数我期望它然而为了连接nginx到php-fpm我有这样的一行: fastcgi_pass app:9000; 我怎样才能有效地扩大这个? 例如,如果我想让一个nginx容器运行,但运行三个应用程序容器,那么我肯定会有三个php-fpm实例都试图在端口9000上进行监听。 我怎样才能有不同的端口上的每个php-fpm实例,但在任何给定的时间仍然知道他们在我的nginxconfiguration? 我采取了错误的做法? 谢谢!
我有一个运行在nginx上的stream量很低的站点,有4个工作站,每个站点有1024个连接。 每隔几个小时,我开始在错误日志“1024 worker_connections是不够的”,我的网站变慢/成为flakey。 一个nginx重新启动解决了这个问题完全在接下来的几个小时。 显然有些奇怪的事情发生,我没有办法服务我的应用程序的4k并发用户。 除了查看访问日志(这看起来很正常),有没有一种方法可以更详细地观察nginx正在做什么? 是否有一些臭名昭着的configuration组合,可能会导致旧的连接保持开放,而不是closures? 谢谢。 编辑这看起来不正确 # lsof |grep nginx |grep CLOSE_WAIT |wc -l 1271
我正在使用nginx作为我的Web服务器实例前面的负载均衡器。 我运行了4个Web服务器实例,并使用nginx在他们之间平均分配stream量。 当我部署新版本时 – 我更改nginx.conf并将4个服务器中的前2个标记为down,然后重新启动nginx。 我更新服务器代码并重新启动前两个服务器。 然后我编辑nginx.conf来指示前2个服务器已经启动,并将其他2个标记为down,再次重新启动nginx。 然后我更新并重新启动其他两个实例。 再次更新nginx.conf标记所有服务器并最终重新启动nginx。 有几天我必须多次做这个过程。 每次手动执行上述步骤都容易出错。 是否有编程访问nginx / nginx.conf,以便我可以自动执行此过程? [我现在想象的唯一方法是在shell脚本中写上述步骤]
我正在开发一个电子商务平台的caching系统,它将使用反向代理进行caching。 我打算通过使用正确的HTTP / 1.1头来处理失效。 也就是说,我将在第一代内容上设置一个ETag,并在应用程序中cachingETag值。 Cache-Control头将指定“must-revalidate”,所以代理应该在随后的ETag请求上设置If-None-Match头。 应用程序将查找caching的ETag值,如果匹配,则会发送一个304响应,否则它将生成一个完整的200响应。 我希望使用nginx,但我不能肯定它支持ETags(文档指出它不,但也许他们已经过时?)。 清漆是另一种select,但我在这里也不积极。 哪些逆向代理服务器对ETag有完整的支持? 我希望它实际上caching多个版本,所以我可以做分裂testing,而不必禁用caching。 也就是说,HTTP / 1.1指定客户端可以发送带有多个ETag值的If-None-Match,并且服务器应该响应与哪个ETag匹配(如果有的话)。 如果反向代理保存了多个副本而不是最后一次看到的值,并让服务器在每个要使用的请求上指定,那将是理想的。