如何在Apache FCGI中仅为指定URL设置flushpackets=on
Apache+php-fpm 仅特定URL启用flushpackets=on配置方案
你可以通过创建两个独立的Proxy定义,结合Location块来实现仅对特定URL开启flushpackets=on的需求,修改后的配置如下:
<IfModule !mod_php5.c> <IfModule !mod_php7.c> # Enable http authorization headers SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 # 全局默认的PHP请求处理(不开启flushpackets) <FilesMatch \.(php|phar)$> SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost" </FilesMatch> <Proxy "fcgi://localhost" enablereuse=on max=10> ProxySet timeout=100 </Proxy> # 针对特定URL的配置(开启flushpackets) <Location "/endpoint_1/"> <FilesMatch \.(php|phar)$> SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost-flush" </FilesMatch> </Location> <Proxy "fcgi://localhost-flush" enablereuse=on flushpackets=on max=10> ProxySet timeout=100 </Proxy> </IfModule> </IfModule>
配置说明:
- 定义了两个Proxy实例:
fcgi://localhost(默认,无flushpackets)和fcgi://localhost-flush(开启flushpackets) - 全局
FilesMatch确保所有PHP请求默认使用无flushpackets的Proxy <Location "/endpoint_1/">块仅对匹配该URL路径的PHP请求,强制使用带flushpackets的Proxy- 如果需要匹配多个URL,可以用
LocationMatch结合正则,比如<LocationMatch "^/(endpoint_1|endpoint_2)/">
内容的提问来源于stack exchange,提问作者user2531657
相关产品推荐
相关产品推荐

