ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[apache-talk] mod_accel: preserve_host



Что-то я не могу понять смысла этой конструкции. Почему при
preserve_host не проводится переписывание порта?

    if (a->pass->preserve_host)
        rewrite = (port = ap_get_server_port(r)) != a->pass->port;
    else
        rewrite = 2;

Вот патч, добавляющий PH в mod_rewrite. Работает. Только с портом не
могу разобраться. У меня backend на другом порту, чем frontend.

--- src/modules/accel/mod_accel.c.orig  Fri Mar 19 16:49:33 2004
+++ src/modules/accel/mod_accel.c       Fri Mar 19 16:54:08 2004
@@ -282,6 +282,9 @@
             a->pass->max_wait = a->pass->max_conn;
 
         a->pass->sum = accel_sum(a->pass->sum_part, a->url, tag);
+
+        if (max = ap_table_get(r->notes, "rewrite_ph"))
+            a->pass->preserve_host = 1;
 #endif
     }
 
--- src/modules/standard/mod_rewrite.c.orig     Fri Mar 19 16:49:33 2004
+++ src/modules/standard/mod_rewrite.c  Fri Mar 19 16:52:38 2004
@@ -947,6 +947,10 @@
              || strcasecmp(key, "MP") == 0      ) {
         cfg->max_part = ap_pstrdup(p, val);
     }
+    else if (   strcasecmp(key, "preservehost") == 0
+             || strcasecmp(key, "PH") == 0      ) {
+        cfg->preserve_host = 1;
+    }
 #endif
     else if (   strcasecmp(key, "passthrough") == 0
              || strcasecmp(key, "PT") == 0      ) {
@@ -2128,6 +2132,9 @@
                          ap_psprintf(r->pool, "%d", p->max_wait));
         if (p->max_part)
             ap_table_set(r->notes, "rewrite_mp", p->max_part);
+        if (p->preserve_host)
+            ap_table_set(r->notes, "rewrite_ph",
+                         ap_psprintf(r->pool, "%d", p->preserve_host));
 #endif
         return 1;
     }

--- src/modules/standard/mod_rewrite.h.orig     Fri Mar 19 16:49:33 2004
+++ src/modules/standard/mod_rewrite.h  Fri Mar 19 16:51:04 2004
@@ -298,6 +298,7 @@
     int      max_conn;
     int      max_wait;
     char    *max_part;
+    unsigned preserve_host:1;
 #endif
 } rewriterule_entry;
 

-- 
DSS5-RIPE DSS-RIPN 2:550/5068@fidonet 2:550/5069@fidonet
mailto:dsh@vlink.ru http://neva.vlink.ru/~dsh/


 




Copyright © Lexa Software, 1996-2009.