Mar 20, 2018
91 Views

Cấu hình Varnish hoạt động trên 2 port khác nhau

Written by

Nếu bạn sử dụng HocVPS Script, bên cạnh port 80, mình còn để Nginx listen thêm một port admin nữa, mặc định là 2313. Listen port 80 thì đơn giản rồi, tuy nhiên, làm thế nào để Varnish listen thêm một port khác nữa và connect với backend thì là vấn đề khác.

Nhân dịp có bạn viết comment hỏi về việc để Varnish listen thêm port, mình có mày mò và viết lại bài hướng dẫn này cho các bạn đang cần sử dụng.

Lưu ý: nếu bạn không muốn mày mò mất thời gian, hãy dùng thẳng IP gốc + port là đủ.

Hướng dẫn cấu hình Varnish hoạt động trên nhiều port

Trong bài viết này, mình sẽ hướng dẫn cấu hình để Varnish listen trên 2 port là 80 và 2313. Khi có truy cập sẽ kết nối với backend 127.0.0.1 với port 8080 và 2313. Lưu ý trường hợp này đặc biệt ở chỗ Varnish và Nginx cùng listen trên port 2313 nhé. Giả sử IP server là 11.22.33.44.

– Đầu tiên bạn cấu hình Varnish listen trên 2 port là 80 và 2313 bằng cách mở file cấu hình tham số Varnish

nano /etc/sysconfig/varnish

Kéo xuống dưới cùng, chuyển tham số:

DAEMON_OPTS="-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \

thành

DAEMON_OPTS="-a :80,11.22.33.44:2313 \

Bạn cần add thêm IP server vào port 2313 để phân biệt với Nginx cũng listen port 2313, trên host là 127.0.0.1.

– Tiếp theo, mở file VCL mặc định:

nano /etc/varnish/default.vcl

Thêm đoạn cấu hình port admin bên dưới backend default:

backend default {
    .host = "127.0.0.1";
    .port = "8080";
}

backend admin {
    .host = "127.0.0.1";
    .port = "2313";
}

Sau đó quy định rule khi nào thì sử dụng cấu hình backend default hoặc admin trong sub vcl_recv, ví dụ:

sub vcl_recv {
        # Default backend is set to default
        set req.backend_hint = default;
        if (req.http.host == "example.com:2313") {
                set req.backend_hint = admin;
        }

– Restart Varnish và Nginx

service nginx restart
service varnish restart

Vậy là xong, tận hưởng thành quả thôi.

Article Tags:
· · · · · ·
Article Categories:
IT & Network
    http://linholiver.com

    https://linholiver.com/diary/about/