Varnish là một máy chủ proxy tập trung vào bộ nhớ đệm HTTP. Nó được thiết kế như một trình tăng tốc HTTP và có thể hoạt động như một proxy ngược cho máy chủ web Apache hoặc Nginx của bạn. Varnish đã được sử dụng cho các trang web có lưu lượng truy cập cao và nổi tiếng, bao gồm Wikipedia, The Guardian và New York Times.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt và cấu hình trình tăng tốc HTTP Varnish như một proxy ngược cho máy chủ web Nginx. Máy chủ web thực Nginx sẽ chạy dưới cổng HTTP không chuẩn 8080. Và Varnish sẽ chạy như proxy ngược trên cổng HTTP 80. Đối với hướng dẫn này, chúng tôi sẽ sử dụng máy chủ Ubuntu 16.04.
Cài đặt Nginx từ kho lưu trữ Ubuntu bằng lệnh apt.
Sau khi cài đặt hoàn tất, hãy khởi động Nginx và cho phép dịch vụ khởi chạy mỗi lần khởi động hệ thống bằng lệnh systemctl bên dưới.
Máy chủ web Nginx đang chạy trên cổng HTTP mặc định - kiểm tra bằng netstat và đảm bảo rằng cổng HTTP được Nginx sử dụng.
Đi đến thư mục cấu hình Nginx và chỉnh sửa tệp máy chủ ảo 'mặc định' bằng vim.
Thay đổi giá trị dòng 'listen' thành 8080.
Lưu và thoát.
Bây giờ hãy kiểm tra cấu hình Nginx và đảm bảo không có lỗi. Sau đó, hãy khởi động lại dịch vụ.
Bây giờ hãy kiểm tra lại nginx bằng netstat và đảm bảo rằng nó đang chạy trên cổng HTTP không chuẩn 8080.
Máy chủ web Nginx đã được cài đặt và hiện đang chạy trên cổng 8080.
Cài đặt varnish bằng lệnh apt bên dưới.
Bây giờ hãy khởi động varnish và cho phép nó khởi chạy khi khởi động hệ thống bằng lệnh systemctl bên dưới.
Theo mặc định, varnish sẽ sử dụng cổng 6081 để truy cập công khai và cổng 6082 cho giao diện web quản trị của varnish. Kiểm tra bằng lệnh netstat và đảm bảo các cổng đó có trong danh sách.
Varnish HTTP Accelerator đã được cài đặt.
Trong bước này, chúng ta sẽ cấu hình Varnish cho Nginx, xác định máy chủ phụ trợ, sau đó thay đổi varnish để chạy dưới cổng HTTP 80.
Bây giờ hãy vào thư mục cấu hình varnish và chỉnh sửa tệp 'default.vcl'.
Trên dòng phụ trợ, hãy xác định cấu hình như bên dưới.
Lưu và thoát.
Lưu ý:
Cấu hình phụ trợ đã hoàn tất.
Tiếp theo, chúng ta cần cấu hình Varnish để chạy dưới cổng HTTP 80. Đi tới thư mục '/etc/default' và chỉnh sửa tệp cấu hình varnish 'varnish'.
Trên dòng 'DAEMON_OPTS', hãy thay đổi cổng mặc định 6081 thành cổng HTTP 80.
Lưu và thoát.
Bây giờ hãy chỉnh sửa tệp dịch vụ varnish trong thư mục '/lib/systemd/system'. Vào thư mục hệ thống systemd và chỉnh sửa tệp varnish.service.
Trên dòng 'ExecStart', hãy đổi cổng varnish 6081 thành cổng HTTP 80.
Lưu và thoát.
Tải lại cấu hình systemd và khởi động lại varnish.
Sau khi cấu hình hoàn tất, hãy kiểm tra Varnish bằng lệnh netstat bên dưới.
Đảm bảo Varnish đang chạy trên cổng HTTP 80 như hiển thị bên dưới.
Cấu hình Varnish làm proxy ngược cho Nginx đã hoàn tất.
Trong bước này, chúng ta sẽ kích hoạt tường lửa và mở các cổng mới cho SSH, HTTP và HTTPS.
Chạy các lệnh ufw bên dưới.
Bây giờ hãy kích hoạt tường lửa và cho phép nó khởi chạy mọi lúc khi khởi động.
Gõ 'y' và nhấn Enter để xác nhận.
Tường lửa UFW được kích hoạt và cả cổng HTTP và HTTPS hiện có thể truy cập được từ mạng bên ngoài.
Kiểm tra varnish bằng lệnh curl, do đó chúng ta có thể thấy các tiêu đề HTTP từ server.
Và bạn sẽ nhận được kết quả HTTP Header 'Via: 1.1 varnish-v4' như hiển thị bên dưới.
- Kiểm tra bằng Trình duyệt web
Mở trình duyệt web của bạn và nhập URL hoặc địa chỉ máy chủ sau. Của tôi là:
Đảm bảo bạn nhận được trang mặc định của Nginx như bên dưới.
- Kiểm tra Nhật ký Varnish
Varnish cung cấp một số lệnh để quản lý và xem nhật ký. Chúng tôi sẽ sử dụng 'varnishncsa' để lấy nhật ký truy cập varnish.
Và bạn sẽ nhận được kết quả như hiển thị bên dưới.
Quá trình cài đặt và cấu hình Varnish làm proxy ngược cho máy chủ web Nginx đã hoàn tất.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt và cấu hình trình tăng tốc HTTP Varnish như một proxy ngược cho máy chủ web Nginx. Máy chủ web thực Nginx sẽ chạy dưới cổng HTTP không chuẩn 8080. Và Varnish sẽ chạy như proxy ngược trên cổng HTTP 80. Đối với hướng dẫn này, chúng tôi sẽ sử dụng máy chủ Ubuntu 16.04.
Những gì chúng tôi sẽ làm
- Cài đặt Nginx trên Ubuntu 16.04
- Cấu hình Nginx trên Cổng 8080
- Cài đặt Varnish trên Ubuntu 16.04
- Cấu hình Varnish như Proxy ngược cho Nginx
- Cấu hình Tường lửa UFW
- Kiểm tra
Điều kiện tiên quyết
- Ubuntu 16.04
- Quyền root
Bước 1 - Cài đặt Nginx trên Ubuntu 16.04
Bước đầu tiên chúng ta phải làm khi thực hiện hướng dẫn này là cài đặt Nginx vào hệ thống Ubuntu 16.04. Trong bước này, chúng ta sẽ cài đặt Nginx (có sẵn trong kho lưu trữ Ubuntu chính thức), sau đó khởi động dịch vụ và cho phép dịch vụ khởi chạy mỗi lần khởi động hệ thống.Cài đặt Nginx từ kho lưu trữ Ubuntu bằng lệnh apt.
Mã:
sudo apt install nginx -y
Mã:
systemctl start nginx
systemctl enable nginx
Mã:
netstat -plntu
Bước 2 - Cấu hình Nginx trên Cổng 8080
Trong bước này, chúng ta sẽ cấu hình nginx để chạy dưới cổng HTTP không chuẩn 8080. Với mục đích này, chúng ta cần chỉnh sửa các tệp máy chủ ảo trong thư mục 'sites-available'.Đi đến thư mục cấu hình Nginx và chỉnh sửa tệp máy chủ ảo 'mặc định' bằng vim.
Mã:
cd /etc/nginx/
vim sites-available/default
Mã:
listen 8080 default_server;
listen [::]:8080 default_server;
Bây giờ hãy kiểm tra cấu hình Nginx và đảm bảo không có lỗi. Sau đó, hãy khởi động lại dịch vụ.
Mã:
nginx -t
systemctl restart nginx
Mã:
netstat -plntu
Máy chủ web Nginx đã được cài đặt và hiện đang chạy trên cổng 8080.
Bước 3 - Cài đặt Varnish trên Ubuntu 16.04
Bây giờ chúng ta cần cài đặt Varnish trên hệ thống. Chúng ta có thể cài đặt phiên bản mới nhất của công cụ từ nguồn. Trong hướng dẫn này, chúng ta sẽ cài đặt varnish từ kho lưu trữ Ubuntu - Varnish v4.Cài đặt varnish bằng lệnh apt bên dưới.
Mã:
sudo apt install varnish -y
Mã:
systemctl start varnish
systemctl enable varnish
Mã:
netstat -plntu
Varnish HTTP Accelerator đã được cài đặt.
Bước 4 - Cấu hình Varnish làm Proxy ngược cho Nginx
Trong hướng dẫn này, chúng ta sẽ sử dụng Varnish làm proxy ngược cho máy chủ web Nginx. Varnish sẽ chạy trên cổng HTTP 80 và máy chủ web Nginx trên cổng HTTP 8080 (Hoàn tất).Trong bước này, chúng ta sẽ cấu hình Varnish cho Nginx, xác định máy chủ phụ trợ, sau đó thay đổi varnish để chạy dưới cổng HTTP 80.
Bây giờ hãy vào thư mục cấu hình varnish và chỉnh sửa tệp 'default.vcl'.
Mã:
cd /etc/varnish
vim default.vcl
Mã:
backend default {
.host = "127.0.0.1";
.port = "8080";
}
Lưu ý:
- .host = Địa chỉ máy chủ web phụ trợ.
- .port = Web được sao lưu máy chủ đang chạy trên.
Cấu hình phụ trợ đã hoàn tất.
Tiếp theo, chúng ta cần cấu hình Varnish để chạy dưới cổng HTTP 80. Đi tới thư mục '/etc/default' và chỉnh sửa tệp cấu hình varnish 'varnish'.
Mã:
cd /etc/default/
vim varnish
Mã:
DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m"
Bây giờ hãy chỉnh sửa tệp dịch vụ varnish trong thư mục '/lib/systemd/system'. Vào thư mục hệ thống systemd và chỉnh sửa tệp varnish.service.
Mã:
cd /lib/systemd/system
vim varnish.service
Mã:
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
Tải lại cấu hình systemd và khởi động lại varnish.
Mã:
systemctl daemon-reload
systemctl restart varnish
Sau khi cấu hình hoàn tất, hãy kiểm tra Varnish bằng lệnh netstat bên dưới.
Mã:
netstat -plntu
Cấu hình Varnish làm proxy ngược cho Nginx đã hoàn tất.
Bước 5 - Cấu hình Tường lửa UFW
Hệ thống Ubuntu đi kèm với tường lửa mặc định có thể đọc được bằng con người có tên là 'UFW'. Nếu bạn không có gói, hãy cài đặt chúng bằng lệnh apt bên dưới.
Mã:
sudo apt install ufw
Chạy các lệnh ufw bên dưới.
Mã:
ufw allow ssh
ufw allow http
ufw allow https
Mã:
ufw enable
Tường lửa UFW được kích hoạt và cả cổng HTTP và HTTPS hiện có thể truy cập được từ mạng bên ngoài.
Bước 6 - Kiểm tra
- Kiểm tra bằng cURLKiểm tra varnish bằng lệnh curl, do đó chúng ta có thể thấy các tiêu đề HTTP từ server.
Mã:
curl -I hakase-labs.co
- Kiểm tra bằng Trình duyệt web
Mở trình duyệt web của bạn và nhập URL hoặc địa chỉ máy chủ sau. Của tôi là:
Đảm bảo bạn nhận được trang mặc định của Nginx như bên dưới.
- Kiểm tra Nhật ký Varnish
Varnish cung cấp một số lệnh để quản lý và xem nhật ký. Chúng tôi sẽ sử dụng 'varnishncsa' để lấy nhật ký truy cập varnish.
Mã:
varnishncsa
Quá trình cài đặt và cấu hình Varnish làm proxy ngược cho máy chủ web Nginx đã hoàn tất.