У меня есть сервер 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-адресу.