лак 3 и несколько IP-адресов (виртуальные хосты) не слишком хорошо для меня работают

Полный новичок в Varnish, поэтому заранее извиняюсь, если это кажется довольно глупым.

Вот ситуация. У меня есть сервер с 5 IP. Использование ISPconfig для большинства задач, но это, вероятно, не имеет значения.

У меня есть несколько виртуальных хостов Apache, настроенных на несколько IP-адресов.

Проблема заключается в том, что лак выдает ошибку 503, ошибка выборки без подключения к серверу (согласно лакилогу) на любом из виртуальных хостов, отличных от стандартных, т. е. со статическим IP-адресом, определенным в vhosts. Любые виртуальные хосты *:8080 работают нормально. Значит я что-то где-то упускаю. Все журналы ошибок vhost показывают, что файл не существует, хотя путь выглядит правильно.

Предложения очень ценятся.

Я, конечно, вручную отредактировал все записи vhost и настроил их соответствующим образом, т.е.

<VirtualHost 00.11.22.33:8080>
      DocumentRoot /var/www/shop.example1.com/web

Вот мой конфиг vcl

    backend default {

        .host = "127.0.0.1";
        .port = "8080";
    }

    backend example1 {
          .host = "00.11.22.33";
          .port = "8080";
    }

    backend example2 {
         .host = "11.22.33.44";
          .port = "8080";
    }


    acl purge {
            "localhost";
    }

    sub vcl_recv {

    if (req.http.host ~ "(?i)^(www.)?example1.com")

    {

        set req.http.host = "www.example1.com";
        set req.backend = example1;

    }

    if (req.http.Host ~ "shop\.example2\.com") 
    {

            set req.http.Host = "shop.example2.com";
            set req.backend = example2;


            }
        set req.grace = 2m;

  set req.http.Cookie = regsuball(req.http.Cookie, "(^|;\s*)(_[_a-z]+|has_js)=[^;]*", "");
  set req.http.Cookie = regsub(req.http.Cookie, "^;\s*", "");




if (req.url ~ "/wp-(login|admin|cron)") {
        return (pass);
}


set req.http.Cookie = regsuball(req.http.Cookie, "wp-settings-1=[^;]+(; )?", "");

set req.http.Cookie = regsuball(req.http.Cookie, "wp-settings-time-1=[^;]+(; )?", "");

set req.http.Cookie = regsuball(req.http.Cookie, "wordpress_test_cookie=[^;]+(; )?", "");

if (req.url ~ "wp-content/themes/" && req.url ~ "\.(css|js|png|gif|jp(e)?g)") {

.......
'

person Nik    schedule 31.08.2012    source источник
comment
Ниже приведена выдержка из журнала лакирования: VCL_call c miss fetch 11 FetchError c no backend connection 11 VCL_call c error deliver 11 VCL_call c deliver deliver 11 TxProtocol c HTTP/1.1 11 TxStatus c 503 11 TxResponse c Service Unavailable Здесь я упускаю что-то очевидное.   -  person Nik    schedule 31.08.2012


Ответы (1)


Чертовски очевидная вещь, конечно.

В port.conf было:

    NameVirtualHost *:8080
Listen 127.0.0.1:8080

Что было нужно:

NameVirtualHost *:8080
Listen 127.0.0.1:8080
Listen my_IP1:8080
Listen my_IP2:8080
person Nik    schedule 31.08.2012
comment
Вам не нужно указывать IP-адреса. Вы можете просто Listen 8080 -- http://httpd.apache.org/docs/2.2/mod/mpm_common.html#listen - person Frank Farmer; 31.08.2012