daemon véc ni không nghe trên cổng cấu hình


11

Tôi đang cố gắng cài đặt véc ni trên Ubuntu 16.04,

Tôi đọc một số bài viết không ai đang làm việc. Từ những gì tôi đọc được, kể từ ubfox 15.04, cách cấu hình véc ni đã thay đổi (vì systemd).

Bây giờ tôi đã có một mớ hỗn độn thực sự không hoạt động:


/ etc / default / véc ni:

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

/etc/varnish/default.vcl (thông thường nó trỏ đến một máy chủ trỏ đến 127.0.0 và cổng 8080, nhưng với mục đích gỡ lỗi, tôi đã sửa đổi nó thành một miền bên ngoài) 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

sau một

sudo service varnish stop
sudo service varnish start

Dịch vụ véc ni không lắng nghe http://127.0.0.1:80/, trước khi khởi động lại, nó lắng nghe http://127.0.0.1:6081/nhưng nó không hoạt động nữa ... Tôi không biết phải làm gì nữa ...




EDIT: sau khi khởi động lại, không có gì hoạt động,

nếu tôi làm : 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

nếu tôi sudo : varnishd -d -f /etc/varnish/default.vcl, thì start, mọi thứ đều hoạt động tốt ... cho đến khi tôi thoát khỏi cli


giải quyết nhờ phản hồi @Gerald Schneider. Tôi đăng các bước tôi phải làm:

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

và mọi thứ hoạt động tốt! phép màu có trong /lib/systemd/system/varnish.servicetập tin, các tài nguyên trực tuyến khác mà tôi tìm thấy khiến tôi nghĩ rằng nó ở nơi khác, vì vậy hãy cẩn thận với các hướng dẫn trực tuyến (lỗi thời)!


Có lẽ cần thiết để loại bỏ thả trước đó của bạn ->. /etc/systemd/system/varnish.service
Mike Q

Câu trả lời:


17

Bạn cũng cần thay đổi các tham số bắt đầu véc ni trong định nghĩa dịch vụ systemd. Bạn có thể chỉnh sửa dòng bắt đầu bằng ExecStarttrong tệp định nghĩa dịch vụ:

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

Tuy nhiên, sửa đổi tệp này có nhược điểm là nó sẽ không được cập nhật trong các bản cập nhật trong tương lai của gói. Ngoài ra, như được đề xuất trong các nhận xét, bạn có thể tạo tệp thả xuống systemd , đây là cách ưa thích để thêm cài đặt vào định nghĩa systemd.

# 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

Tại đây bạn chỉ cần thêm các cài đặt bạn muốn thay đổi, mọi thứ khác sẽ được tải từ tệp định nghĩa mặc định.

Thí dụ:

[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

Đây là dòng mặc định, thay đổi nó khi bạn cần

Sau đó, yêu cầu systemctl tải lại các tệp cấu hình của nó và khởi động lại dịch vụ

sudo systemctl daemon-reload
sudo service varnish restart

Varnish bây giờ nên nghe trên cổng 80.


Tôi đã thực hiện điều này, tập tin này chứa:[...] [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

Có lẽ bạn nên khôi phục các tệp cấu hình mặc định cho apache và véc ni và bắt đầu lại. Tôi đã thiết lập điều này để kiểm tra nó và tôi chỉ phải thay đổi cấu hình apache để nghe trên cổng 8080 và một dòng duy nhất trong var Vec.service. Không có gì khác.
Gerald Schneider

cảm ơn, nó đã làm việc Tôi thêm các bước để gỡ cài đặt trong bài đăng của mình
Bruno

Đây là phương pháp sai. Không nên chỉnh sửa các tệp đơn vị Systemd trong / lib / systemd, chúng phải được ghi đè bằng các tệp thả trong / etc / systemd
Stephen

1
systemctl edit varnish.service tự động hóa việc tạo tập tin ghi đè đơn vị cho bạn
HBruijn

5

Lưu ý rằng trình đơn thả xuống phải có ExecStart trống = Nếu không, bạn sẽ gặp lỗi khi khởi động dịch vụ (trùng lặp ExecStart)

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

Với

[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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.