Назад | Перейти на главную страницу

Домен не обслуживается Nginx

У меня есть сервер Ubuntu 13.04 с двумя связанными IP-адресами. Скажем, например, IP-адреса 123.456.789.111 и 123.456.789.222 и у сервера есть два домена, скажем example1.com и example2.com.

Сейчас у меня example2.com обслуживает Apache, а example1.com обслуживает Лак> Nginx. Кроме example1.com фактически обслуживается apache, хотя все настройки показывают, что он должен обслуживаться nginx.

В DNS example1.com указывается на 123.456.789.111 и example2.com указывает на 123.456.789.222.

В

/etc/apache2/ports.conf

У меня установлено:

NameVirtualHost 123.456.789.222:80
Listen 80

Таким образом, любые домены, указывающие на этот домен, должны обслуживаться Apache, что и происходит.

В

/etc/default/varnish

У меня установлено:

DAEMON_OPTS="-a 123.456.789.111:80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,256m"

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

Затем в:

/etc/varnish/default.vcl

У меня установлено:

backend default {
    .host = "127.0.0.1";
    .port = "8080";
}

Что перенаправляет все от varnish до nginx, поскольку в:

/etc/nginx/sites-available/example1.com
root /var/www/example1.com/public/

У меня есть:

server {
        listen 127.0.0.1:8080;

Отметим, что я также привязал этот домен к sites-enabled / example1.com.

Таким образом, example1.com должен быть загружен Varnish, а затем обслуживаться Nginx, но на самом деле он загружает контент из:

/var/www/

Также, если я делаю www.isvarnishworking.com с example1.com, он говорит, что не загружается через лак. (и да, я использую фактическое доменное имя, а не example1.com, которое я использую для целей этой публикации).

Также я перезапустил службу Varnish Nginx и Apache, и все они перезапустились без каких-либо проблем.

Также я отключил сайт по умолчанию в nginx:

sudo rm -v / etc / nginx / сайты-включены / по умолчанию

Также в:

/ и т.д. / apache2 / сайты с поддержкой

example1.com не существует (как и должно быть, поскольку я не хочу, чтобы он загружался Apache).

Не знаю, что еще проверить. Есть ли у кого-нибудь идеи или команды для запуска, которые могут помочь мне увидеть, какой example1.com не загружается apache и не передается в nginx?

** ОБНОВИТЬ **

Если я остановлю nginx, apache2 и varnish и сначала включу varnish и nginx, то example1.com правильно загрузится с использованием varnish и nginx. Однако если я бегу:

sudo service varnish start

Он говорит:

(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80

Я не уверен, почему, потому что да, и apache, и varnish прослушивают порт 80, но они прослушивают порт 80 на разных IP-адресах.

Похоже, что в /etc/apache2/ports.conf у тебя есть Listen 80 а не сказать Listen 123.456.789.222:80. Таким образом, порт будет привязан к определенному IP-адресу.