वार्निश डेमन कॉन्फ़िगर पोर्ट पर नहीं सुन रहा है


11

मैं ubuntu 16.04 पर वार्निश स्थापित करने की कोशिश कर रहा हूं,

मैंने कई लेख पढ़े कोई भी काम नहीं कर रहा है। मैंने जो पढ़ा, ubuntu 15.04 से, वार्निश को कॉन्फ़िगर करने का तरीका बदल गया है (सिस्टमड के कारण)।

अब मुझे एक असली गड़बड़ मिल गई है जो काम नहीं करती है:


/ etc / डिफ़ॉल्ट / वार्निश:

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/लेकिन यह अधिक काम नहीं करता है ... मुझे नहीं पता कि क्या करना है ...




संपादित करें: रिबूट के बाद, कुछ भी काम नहीं करता है,

यदि मैं करता हूँ : 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, सब कुछ ठीक काम करता है ... जब तक मैं क्ली को नहीं छोड़ता


@ गेराल्ड श्नाइडर की प्रतिक्रिया के लिए धन्यवाद। मुझे उन चरणों को पोस्ट करना है जो मुझे करना था:

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
माइक क्यू

जवाबों:


17

आपको सिस्टम सेवा की परिभाषा में वार्निश स्टार्ट पैरामीटर को भी बदलना होगा। आप 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 [...]
ब्रूनो

शायद आपको अपाचे और वार्निश के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइलों को पुनर्स्थापित करना चाहिए और शुरू करना चाहिए। मैंने इसे परीक्षण करने के लिए सेट किया है और मुझे केवल 8080 पर पोर्ट और वार्निश। सेवा में एकल लाइन को सुनने के लिए अपाचे कॉन्फिगर को बदलना पड़ा है। और कुछ नहीं।
गेराल्ड श्नाइडर

धन्यवाद, यह काम किया! मैं अपनी पोस्ट में स्थापना रद्द करने के चरणों को जोड़ता हूं
ब्रूनो

यह गलत तरीका है। Systemd Unit की फाइलें / 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 Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.