【问题标题】:htaccess proxy flag "immediate"htaccess 代理标志“立即”
【发布时间】:2015-08-14 09:00:20
【问题描述】:

我们有一系列页面需要 10 到 30 秒才能加载,这导致我们的 apache 连接超过了最大连接数。由于这些页面是我们网站的子页面,其中的数据不太重要,因此我们决定将它们定向到第二台服务器,在那里我们不关心最大连接数是否被命中/过载。

为了实现这一点,我们在 htaccess 文件中使用了P 标志。在文档中它说

使用[P]标志意味着[L] - 即请求立即通过代理推送,并且不会考虑任何后续规则。

-http://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_p

有谁知道当这条规则被触发时父服务器上的连接是否被断开,如果是在多长时间后断开?

如果连接在父服务器上保持打开状态,这将是一项毫无意义的任务。有没有更好的方法来实现这一点(除了重写慢页面)?

有没有办法通过 apache 跟踪请求?类似于在 PHP 中记录 error_log

【问题讨论】:

    标签: apache .htaccess mod-rewrite mod-proxy


    【解决方案1】:

    为了在服务器上保存线程是没有意义的。

    [P] 表示代理,这意味着在您等待第二台服务器的整个过程中,第一台服务器上的一个线程一直在等待转发响应——它仍然是中间人。

    如果客户端可以直接到达服务器 B,只需使用基本重定向([R] 标志),这至少会使当前连接进入保活状态。

    【讨论】:

    • 带有R 标志的重定向域使用虽然正确?我们目前的规则是ReWriteRule ^PAGETYPE(.*)$ http://IP/PAGETYPE$1 [P]?它将IP中的内容写入我们的域名,就好像它是一个域一样。
    • 是的,如果你重定向 soemone,你必须给他们一个他们可以访问的地址/域。您不能既释放 server1 上的线程又不泄露 server2 的地址。您可以在等待代理的 HTTP 响应时将两者都放在一个不会占用线程的代理后面——例如Apache Traffic Server 或 nginx。
    猜你喜欢
    • 2011-04-12
    • 1970-01-01
    • 2018-10-12
    • 2021-05-16
    • 2020-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多