лак демон не слухає на налаштованому порту


11

Я намагаюся встановити лак на ubuntu 16.04,

Я прочитав кілька статей, жодна з них не працює. З того, що я читав, починаючи з ubuntu 15.04, спосіб налаштування лаку змінився (через systemd).

Тепер у мене справжній безлад, який не працює:


/ і т.д. / за замовчуванням / лак:

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

/etc/varnish/default.vcl (зазвичай він вказує на хост, що вказує на 127.0.0 і порт 8080, але для налагодження я змінив його на зовнішній домен) vcl 4.0;

# Default backend definition. Set this to point to your content server.
backend default {
    .host = "www.varnish-cache.org"; 
    .port = "80";
}

/etc/apache2/ports.conf

Listen 8080

grep -R 'ExecStart=/usr/sbin/varnishd' /etc/

/etc/systemd/system/varnish.service:ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
/etc/systemd/system/varnish.service.d/customexec.conf:ExecStart=/usr/sbin/varnishd -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
/etc/systemd/system/multi-user.target.wants/varnish.service:ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m

/lib/systemd/system/varnish.service:

  GNU nano 2.5.3                                                Fichier : /lib/systemd/system/varnish.service                                                                                                      

[Unit]
Description=Varnish HTTP accelerator
Documentation=https://www.varnish-cache.org/docs/4.1/ man:varnishd

[Service]
Type=simple
LimitNOFILE=131072
LimitMEMLOCK=82000
ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
ExecReload=/usr/share/varnish/reload-vcl
ProtectSystem=full
ProtectHome=true
PrivateTmp=true
PrivateDevices=true

[Install]
WantedBy=multi-user.target

service --status-all | grep varnish

 [ - ]  varnish
 [ + ]  varnishlog
 [ + ]  varnishncsa

після а

sudo service varnish stop
sudo service varnish start

Служба лаку не http://127.0.0.1:80/слухається, перед перезавантаженням вона слухає, http://127.0.0.1:6081/але вона більше не працює ... Я не знаю, що робити більше ...




EDIT: після перезавантаження нічого не працює,

якщо я: systemctl status varnish

● varnish.service - Varnish HTTP accelerator
   Loaded: loaded (/etc/systemd/system/varnish.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/varnish.service.d
           └─customexec.conf
   Active: inactive (dead) since jeu. 2017-01-05 14:48:09 CET; 1s ago
     Docs: https://www.varnish-cache.org/docs/4.1/
           man:varnishd
  Process: 5077 ExecStart=/usr/sbin/varnishd -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m (code=exited, status=0/SUCCESS)
 Main PID: 5077 (code=exited, status=0/SUCCESS)

janv. 05 14:48:09 xubuntu-16 systemd[1]: Started Varnish HTTP accelerator.

service --status-all | grep varnish

 [ - ]  varnish
 [ - ]  varnishlog
 [ - ]  varnishncsa

якщо я судо: varnishd -d -f /etc/varnish/default.vclзначить start, все працює добре ... поки я не вийду з кліпу


вирішено завдяки відповіді @Gerald Schneider. Я публікую кроки, які мені довелося зробити:

sudo apt remove varnish
sudo apt-get purge varnish
# I manually remove the 3 files in created in /etc/systemd/system/*
sudo apt install varnish
sudo nano /lib/systemd/system/varnish.service # put the rigth conf
sudo nano /etc/varnish/default.vcl #put the rigth conf
sudo systemctl daemon-reload
sudo service varnish restart

і все працює добре! магія полягає у /lib/systemd/system/varnish.serviceфайлі, інші інтернет-ресурси, які я знайшов, змусили задуматися, що це деінде, тому остерігайтеся онлайн-застарілих навчальних посібників!


Можливо, потрібно було просто видалити попереднє падіння ->. /etc/systemd/system/varnish.service
Майк Q

Відповіді:


17

Вам також потрібно змінити параметри запуску лаку у визначенні служби systemd. Ви можете редагувати рядок, починаючи з ExecStartфайлу визначення служби:

sudo vi /lib/systemd/system/varnish.service

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

# create the drop in directory
sudo mkdir /etc/systemd/system/varnish.service.d
# create the drop in file. The name is irrelevant, as long as it ends in .conf
sudo vi /etc/systemd/system/varnish.service.d/mysettings.conf

Тут потрібно лише додати налаштування, які ви хочете змінити, все інше буде завантажено з файлу визначення за замовчуванням.

Приклад:

[Service]
ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m

Це рядок за замовчуванням, змінюйте його як потрібно

Після цього скажіть systemctl, щоб перезавантажити його конфігураційні файли та перезапустити службу

sudo systemctl daemon-reload
sudo service varnish restart

Лак тепер повинен слухати на порту 80.


Я зробив це, цей файл містить:[...] [Unit] Description=Varnish HTTP accelerator Documentation=https://www.varnish-cache.org/docs/4.1/ man:varnishd [Service] Type=simple LimitNOFILE=131072 LimitMEMLOCK=82000 ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m ExecReload=/usr/share/varnish/reload-vcl [...]
Бруно

Можливо, вам слід відновити файли конфігурації за замовчуванням для apache та лаку та почати заново. Я налаштував це для тестування, і мені довелося лише змінити конфігурацію apache, щоб слухати порт 8080 і єдиний рядок у varnish.service. Більш нічого.
Джеральд Шнайдер

дякую, спрацювало! Я додаю кроки для видалення у своєму дописі
Бруно

Це неправильний підхід. Файли системних одиниць в / lib / systemd не слід редагувати, вони повинні бути замінені файлами, що випадають у / etc / systemd
Stephen

1
systemctl edit varnish.service автоматизує створення модулів для заміщення файлів модулів для заміни для вас
HBruijn

5

Зауважте, що у випаді має бути порожній ExecStart = Інакше ви отримаєте помилку при запуску служби (дублікат ExecStart)

sudo mkdir /etc/systemd/system/varnish.service.d
sudo nano /etc/systemd/system/varnish.service.d/varnishd.conf

З

[Service]
ExecStart=
ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T <YOUR WEBSERVER IP>:8081 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.