首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >proxy_buffer和fastcgi_buffer有什么区别?

proxy_buffer和fastcgi_buffer有什么区别?
EN

Stack Overflow用户
提问于 2014-02-20 05:49:08
回答 1查看 2.6K关注 0票数 2

我继承了nginx配置,并试图通过删除多余或不执行任何操作的规则/指令来优化它的安全性、速度和/或可维护性。

考虑到这一点,在我的server {...}指令中,我有:

代码语言:javascript
复制
fastcgi_buffer_size 16k;
fastcgi_buffers 256 32k;

并且嵌套在内部,我为locations {...}有单独的规则,这些规则有如下内容:

代码语言:javascript
复制
location ~ /(my|path)/ {
    proxy_buffer_size 4k;
    proxy_buffers     256 4k;
    ...
}

代码语言:javascript
复制
location ~ \.php$ {
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_pass unix:/dev/shm/php-fastcgi.socket;
    fastcgi_index index.php;
    ...
}

在nginx后面,我们有上面描述的套接字的php,但是我们不代理任何其他http服务器(没有tomcat、apache等)。

据我理解,proxy_buffers指令适用于您正在代理的http服务,如apache、tomcat或第三方网站,并且不适用于使用的php。

相反,fastcgi_buffers是在代理动态语言引擎(或它们称为什么)时使用的,比如php、独角兽或乘客。

我对这些假设正确吗?如果是这样的话,因为我是而不是使用apache或tomcat的,那么我可以删除proxy_buffer*指令,因为它们没有被使用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-19 14:47:06

你的假设大多是正确的。然而,在将nginx放在应用程序前面时,经常会使用proxy_指令,特别是如果您通过thin运行rails,或者任何类型的基于Jetty的Java应用程序。

但是您是对的,- in您的给定配置(fastcgi_pass),fastcgi_buffer是您要追求的。

请注意,fastcgi_buffering直到nginx >= 1.5.6才完全可移动。还请注意,fastcgi_bufferingproxy_buffering都可以通过X-Accel-Buffering: no报头在每次请求的基础上禁用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21899281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档