vernik daemon yapılandırılmış bağlantı noktasında dinlemiyor


11

Ubuntu 16.04 üzerine vernik kurmaya çalışıyorum,

Hiçbiri çalışmıyor birkaç makale okudum. Okuduğum kadarıyla, ubuntu 15.04'ten beri, verniği yapılandırma yolu değişti (systemd nedeniyle).

Şimdi çalışmayan gerçek bir karmaşa var:


/ etc / default / vernik:

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

/etc/varnish/default.vcl (normalde 127.0.0 ve 8080 numaralı bağlantı noktasını işaret eden bir ana bilgisayarı gösterir, ancak hata ayıklama amacıyla bunu harici bir etki alanına değiştirdim) 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

sonra

sudo service varnish stop
sudo service varnish start

Vernik servisi http://127.0.0.1:80/yeniden başlatmadan önce dinlemiyor, listeliyor http://127.0.0.1:6081/ama artık çalışmıyor ... Daha fazla ne yapacağımı bilmiyorum ...




EDIT: bir yeniden başlatmadan sonra hiçbir şey çalışmıyor,

Eğer yaparsam : 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

eğer sudo:, varnishd -d -f /etc/varnish/default.vclo zaman start, her şey iyi çalışır ... ben cli çıkıncaya kadar


@Gerald Schneider yanıtı sayesinde çözüldü. Yapmam gereken adımları gönderiyorum:

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

ve her şey yolunda gidiyor! sihir /lib/systemd/system/varnish.servicedosyada, bulduğum diğer çevrimiçi kaynaklar bana başka bir yerde olduğunu düşündürdü, bu yüzden çevrimiçi (eski) eğiticilere dikkat edin!


Muhtemelen önceki düşüşünüzü kaldırmanız gerekiyor ->. /etc/systemd/system/varnish.service
Mike Q

Yanıtlar:


17

Vernik başlatma parametrelerini de systemd hizmet tanımında değiştirmeniz gerekir. Satırı ExecStart, hizmet tanım dosyasından başlayarak düzenleyebilirsiniz :

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

Ancak bu dosyanın değiştirilmesi, paketin gelecekteki güncellemelerinde güncellenmeyeceği dezavantajına sahiptir. Alternatif olarak, yorumlarda önerildiği gibi, sistemd tanımlarına ayar eklemenin tercih edilen yolu olan dosyada bir systemd düşüşü oluşturabilirsiniz .

# 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

Burada sadece değiştirmek istediğiniz ayarları eklemeniz gerekir, diğer her şey varsayılan tanım dosyasından yüklenir.

Misal:

[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

Bu varsayılan satırdır, istediğiniz gibi değiştirin

Daha sonra systemctl'e yapılandırma dosyalarını yeniden yüklemesini ve hizmeti yeniden başlatmasını söyleyin

sudo systemctl daemon-reload
sudo service varnish restart

Vernik şimdi 80 numaralı bağlantı noktasını dinlemelidir.


Bunu yaptım, bu dosya şunları içerir:[...] [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 [...]
Bruno

Belki de apache ve vernik için varsayılan yapılandırma dosyalarını geri yüklemeli ve baştan başlamalısınız. Bunu test etmek için ayarladım ve sadece 8080 numaralı bağlantı noktasını ve varnish.service'deki tek satırı dinlemek için apache yapılandırmasını değiştirmek zorunda kaldım. Başka hiçbir şey.
Gerald Schneider

teşekkürler, işe yaradı!
Bruno

Bu yanlış yaklaşım. / Lib / systemd içindeki Systemd birim dosyaları düzenlenmemelidir, / etc / systemd içindeki bırakma dosyaları ile geçersiz kılınmalıdır
Stephen

1
systemctl edit varnish.service sizin için birim dosyası geçersiz kılma eklentileri oluşturmayı otomatikleştirir
HBruijn

5

Açılır menüde boş bir ExecStart = olması gerekir, aksi takdirde hizmeti başlatırken bir hata alırsınız (yinelenen ExecStart)

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

İle

[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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.