2017-01-25 14 views
0

Я знаю, что добавляю слишком много информации в вопрос, но, пожалуйста, несите меня.лак на plesk для поддомена

У нас есть сайт, на котором работает домен, например, например. - domain1.com, имеющий ip, например, например. - 192.168.1.25. Теперь у нас есть другой сервер, работающий по IP-адресу, например, например. 192.168.1.26 с панелью plesk 12.5.30. Обратите внимание, что мы не указали наш домен - domain1.com на 192.168.1.26, так как мы хотели бы сохранить его , пока он не настроит все и не начнет работать как производство. Мы установили наш домен в панели plesk с доменом domain1.com и создали staging.domain1.com как субдомен.

Мы модифицировали файлы хостов на нашем локальном компьютере, чтобы указать staging.domain1.com на 192.168.1.26, чтобы мы могли получить доступ к нашему сайту с нового сервера, в то время как основной домен - domain1.com все еще работает над 192.168.1.25, и мы могут получить доступ как domain1.com

В принципе, мы создаем промежуточную среду по 192.168.1.26 IP. У нас есть CentOS 6, работающий над новым промежуточным доменом, и мы включили правила брандмауэра для запуска веб-сайта на определенных IP-адресах в панели plesk.

Мы хотим настроить лак на новый сервер, и мы его установили. [. Мы уже upvoted для запроса лака в PLESK форуме] На панели управления Plesk, у нас есть апачский работает через порт 7080 & Nginx работает через порт 80.

> netstat -ntlp | grep -w 80 
tcp  0  0 0.0.0.0:80     0.0.0.0:*     LISTEN  29795/nginx   
tcp  0  0 :::80      :::*      LISTEN  29795/nginx   

> netstat -ntlp | grep -w 7080 
tcp  0  0 0.0.0.0:7080    0.0.0.0:*     LISTEN  10161/httpd 

We настроить запись в 192.168.1.26 - staging.domain1 .com к нашему DNS, и мы получаем правильный IP-адрес в промежуточном домене. Мы устанавливаем /etc/varnish/default.vcl файл, как показано ниже:

backend default { 
    .host = "192.168.1.26"; 
    .port = "80"; 
} 

backend admin { 
    .host = "192.168.1.26"; 
    .port = "80"; 
    .first_byte_timeout = 18000s; 
    .between_bytes_timeout = 18000s; 
} 

sub vcl_recv { 
    if (req.restarts == 0) { 
     if (req.http.x-forwarded-for) { 
      set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + cl$ 
     } else { 
      set req.http.X-Forwarded-For = client.ip; 
     } 
    } 
    if (req.request != "GET" && 
     req.request != "HEAD" && 
     req.request != "PUT" && 
     req.request != "POST" && 
     req.request != "TRACE" && 
     req.request != "OPTIONS" && 
     req.request != "DELETE" && 
     req.request != "PURGE") { 
     /* Non-RFC2616 or CONNECT which is weird. */ 
     return (pipe); 
    } 

    if (req.http.cookie ~ "adminhtml=") { 
     set req.backend = admin; 
    } 
} 

Вот/и т.д./sysconfig/файл лак:

VARNISH_LISTEN_PORT=6081 
VARNISH_ADMIN_LISTEN_PORT=6082 
VARNISH_VCL_CONF=/etc/varnish/default.vcl 

Мы начали лаковые услуги - /etc/init.d/лак начала и проверил порт 6081:

> netstat -ntlp | grep -w 6081 
tcp  0  0 0.0.0.0:6081    0.0.0.0:*     LISTEN  23745/varnishd  
tcp  0  0 :::6081      :::*      LISTEN  23745/varnishd  

но когда мы проверяем наш сайт, доступ к staging.domain1.com:6081, мы получаем ответ, но URL-адреса с указанием в браузере указывают на domain1.com. Таким образом, мы изменили .host по умолчанию & admin на доменное имя - staging.domain1.com, например, ниже, а затем перезапустили службу лака, но она не делает этого.

backend default { 
    .host = "staging.domain1.com"; 
    .port = "80"; 
} 

backend admin { 
    .host = "staging.domain1.com"; 
    .port = "80"; 
    .first_byte_timeout = 18000s; 
    .between_bytes_timeout = 18000s; 
} 

У меня нет причины, по которой она не перезапускается после добавления реальных (под) доменных имен. Другое дело: сайт обслуживает порт 80, т. Е. Nginx. В идеале, лак должен работать над портом 80, и мы пытались это сделать, но как-то мы потерпели неудачу. Нам удалось запустить nginx через порт 8080, следуя рекомендациям на - https://www.theshell.guru/change-nginx-port-plesk-12-centos-6-6/. В основном, мы добавили пользовательский каталог, в/USR/местные/PSA/администратор/CONF/шаблонов и копируются следующие файлы туда и обновленный порт 8080.

  • nginx.php
  • nginxDomainForwarding.php
  • nginxDomainForwardingIpDefault .php
  • nginxDomainVhost.php
  • nginxDomainVhostIpDefault.php
  • nginxWebmail.PHP

Затем мы изменили, лак для прослушивания порт 80 вместо порта 6081, но когда мы начинаем лак, это не откладывая шоу не удалось, и наш домен - staging.domain1.com не загружается, поэтому мы вернулись все, как описано выше, т.е.

  • лак на порт 6081 [УСЬ бэкенд на 80]
  • апаша 7080
  • Nginx 80

я предполагал, что Shou л.д. имеет следующий сценарий:

  • Лак - порт 80 [default.vcl файл должен Greb содержимого из 8080 порта]
  • Nginx - порт 8080
  • Apache - порт 7080.

В первом сценарий, мы не можем подтвердить, правильно ли настроен лак или нет [в случае, если мы установили IP вместо реального имени хоста], а во втором сценарии мы не можем запустить лаковую службу, хотя это должен быть идеальный случай.

В принципе, я не понимаю, что здесь не так.

ответ

0

Прежде всего, не используйте Лак с Plesk или любой панелью управления. Это никогда не приведет к хорошим результатам. Используйте его на сервере Linux с голой костью, чтобы лучше понять, что происходит.

Во-вторых, вы были почти там :) Бэкэнд IP в лаки VCL должен был оставаться как IP. Размещение домена вместо IP неверно. Лак автоматически преобразует заголовок Host из вашего HTTP-запроса на базовый сервер. Так что, если вы откроете страницу с URL http://staging-domain:6081/, то, что происходит это:

  • -запрос HTTP с хоста: постановка-домен достигает Varnish
  • тогда лак будет передать его вместе с Apache/Nginx с тем же значением ,

Скорее всего, ваша первоначальная проблема была перенаправлением, инициированным вашим приложением/веб-сайтом.

Проще говоря, вы пытаетесь получить доступ к http://staging-domain:6081/, и ваше приложение перенаправлено на http://domain/, потому что у него был «домен» жестко запрограммированный в его настройках/конфигурации. Очень часто случается.

Таким образом, решение было бы:

  • лаком изменения слушать IP до 80
  • изменения Nginx/независимо от вашего бэкенд веб-сервера к другому порту, то есть 8080
  • настроить лак определение VCL бэкэнд IP-адрес и порт веб-сервера, т.е. 192.168.1.26 и 8080
  • настроить параметры веб-приложений, в частности, базовый URL

Вы также, возможно, придется перевести реальный порт к Nginx и отключить порт в переадресовывает в конфигурации Nginx:

port_in_redirect off; 

Если все не удается, воспользуйтесь профессиональным сервисом установки :)

 Смежные вопросы

  • Нет связанных вопросов^_^