Cách tăng tốc Apache bằng bộ đệm HTTP Varnish trên Ubuntu 16.04 LTS

theanh

Administrator
Nhân viên
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 của bạn (Apache hoặc Nginx). 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à The New York Times.

Trong hướng dẫn này, chúng 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 Apache. Máy chủ web thực Apache sẽ chạy dưới cổng HTTP không chuẩn (chạy trên cổng 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​

  1. Cài đặt máy chủ Web Apache
  2. Thay đổi cổng mặc định của Apache
  3. Cài đặt Varnish
  4. Cấu hình Varnish
  5. Kiểm tra thiết lập

Điều kiện tiên quyết​

  • Ubuntu 16.04
  • Quyền root

Bước 1 - Cài đặt máy chủ Web Apache​

Để bắt đầu, hãy cài đặt máy chủ web Apache. Theo mặc định, nó có sẵn trong kho lưu trữ Ubuntu.

Cập nhật kho lưu trữ Ubuntu rồi cài đặt Apache bằng lệnh apt.
Mã:
sudo apt update
sudo apt install -y apache2
Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ Apache và cho phép dịch vụ này tự động chạy khi khởi động hệ thống bằng các lệnh systemctl sau.
Mã:
systemctl start apache2
systemctl enable apache2


Máy chủ web Apache đã được cài đặt.

Tiếp theo, để cho phép mọi người truy cập Đối với máy chủ web, chúng ta phải cho phép HTTP và HTTPS trên quy tắc tường lửa của mình. Theo mặc định, Ubuntu đi kèm với một gói tường lửa có tên là UFW.

Mở các cổng SSH, HTTP và HTTPS mới bằng các lệnh ufw sau.
Mã:
ufw allow ssh
ufw allow http
ufw allow https
Bây giờ hãy khởi động dịch vụ tường lửa và cho phép nó tự động khởi chạy khi khởi động hệ thống.
Mã:
ufw enable
Gõ 'y' và nhấn Enter để xác nhận.



Các cổng mới cho http, https và ssh đã được mở và có thể truy cập từ bên ngoài mạng.

Nếu bạn muốn kiểm tra máy chủ web Apache, bạn có thể sử dụng lệnh netstat và đảm bảo rằng apache đang chạy dưới cổng 80.
Mã:
netstat -plntu
Hoặc bạn có thể sử dụng lệnh curl sau.
Mã:
curl -I hakase-labs.co
Bạn nên lấy kết quả như hiển thị bên dưới.


Bước 2 - Thay đổi Cổng mặc định của Apache​

Trong hướng dẫn này, chúng ta sẽ sử dụng Apache làm máy chủ phụ trợ và nó sẽ không chạy dưới cổng http chuẩn 80. Máy chủ web Apache sẽ chạy trên cổng 8080 làm máy chủ phụ trợ và cổng http chuẩn 80 sẽ được 'Varnish' sử dụng.

Để thay đổi cổng apache mặc định, chúng ta cần chỉnh sửa cấu hình apache 'ports.conf' và tất cả cấu hình máy chủ ảo trong thư mục 'sites-available'.

Đi tới thư mục cấu hình Apache.
Mã:
cd /etc/apache2
Thay thế cổng '80' bằng '8080' trong cấu hình Apache 'ports.conf' và tất cả các tệp máy chủ ảo trong thư mục 'sites-available'. Chúng ta có thể thực hiện điều đó bằng cách chạy các lệnh sed sau.
Mã:
sed -i -e 's/80/8080/g' ports.conf
sed -i -e 's/80/8080/g' sites-available/*
Tiếp theo, hãy kiểm tra cấu hình Apache và đảm bảo không có lỗi, sau đó khởi động lại dịch vụ Apache.
Mã:
apachectl configtest
systemctl restart apache2


Bây giờ Apache đang chạy dưới cổng http '8080', hãy kiểm tra bằng lệnh netstat như hiển thị bên dưới.
Mã:
netstat -plntu
Đảm bảo bạn có kết quả như bên dưới.



Vì vậy, bạn có thể thấy máy chủ web Apache đang chạy trên cổng '8080'.

Bước 3 - Cài đặt Varnish HTTP Accelerator​

Trong bước này, chúng ta sẽ cài đặt Varnish từ kho lưu trữ Ubuntu. Và đối với hướng dẫn này, chúng ta sẽ sử dụng varnish 4.

Cài đặt varnish bằng lệnh apt sau.
Mã:
sudo apt install -y varnish
Sau khi cài đặt hoàn tất, hãy khởi động Varnish và cho phép nó tự động khởi chạy khi khởi động hệ thống.
Mã:
systemctl start varnish
systemctl enable varnish


Varnish đã được cài đặt trên hệ thống Ubuntu 16.04.

Theo mặc định, nó chạy dưới các cổng '6081' cho địa chỉ công khai và '6082' cho địa chỉ máy chủ cục bộ. Kiểm tra bằng lệnh netstat bên dưới.
Mã:
netstat -plntu
Và bạn sẽ nhận được cổng varnish mặc định.


Bước 4 - Cấu hình Varnish làm Proxy ngược cho Apache​

Trong bước này, chúng ta sẽ cấu hình varnish ở mặt trước của máy chủ web Apache. Varnish sẽ chạy dưới cổng http 80 và mọi yêu cầu từ máy khách sẽ được xử lý bởi nó trước khi được gửi đến máy chủ web Apache chạy trên cổng 8080.

- Cấu hình Backend

Đi đến thư mục cấu hình 'varnish' và sao lưu tệp mặc định 'default.vcl'.
Mã:
cd /etc/varnish/
cp default.vcl default.vcl.aseli
Chỉnh sửa cấu hình varnish 'default.vcl' bằng trình soạn thảo vim.
Mã:
vim default.vcl
Xác định cấu hình 'backend' ở dòng 16. Backend cho thiết lập của chúng ta là Apache và nó đang chạy trên cổng 8080. Vì vậy, cấu hình varnish cho thiết lập apache của chúng ta phải như sau:
Mã:
backend default {
 .host = "127.0.0.1";
 .port = "8080";
 }


Lưu và thoát.

- Chạy Varnish trên Cổng 80

Tiếp theo, chúng ta cần thay đổi các cổng Varnish mặc định. Các cổng mặc định cho varnish là '6081' và '6082', và chúng ta cần thay đổi cổng thành cổng http 80 (chỉ dành cho địa chỉ công khai).

Chỉnh sửa cấu hình tham số varnish trong thư mục '/etc/default'.
Mã:
cd /etc/default/
vim varnish
Chỉnh sửa dòng 'DAEMON_OPTS', thay đổi cổng mặc định '6081' cho địa chỉ công khai thành cổng http chuẩn '80' như hiển thị bên dưới.
Mã:
DAEMON_OPTS="-a :80 \
 -T localhost:6082 \
 -f /etc/varnish/default.vcl \
 -S /etc/varnish/secret \
 -s malloc,256m"


Lưu và thoát.

Tiếp theo, chúng ta cần chỉnh sửa tệp dịch vụ varnish 'varnish.service'. Vào thư mục '/lib/systemd/system' và chỉnh sửa tệp dịch vụ bằng vim.
Mã:
cd /lib/systemd/system/
vim varnish.service
Trên dòng 'ExecStart', hãy thay đổi lệnh bắt đầu varnish như bên dưới.

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

Lưu và thoát.

Tải lại cấu hình dịch vụ systemd rồi khởi động lại varnish.
Mã:
systemctl daemon-reload
systemctl restart varnish
Bây giờ hãy kiểm tra varnish và đảm bảo rằng nó đang chạy trên cổng http 80.
Mã:
netstat -plntu


Vì vậy, Varnish hiện đang chạy dưới cổng http 80 làm giao diện cho máy chủ web Apache, nằm trên cổng 8080.

Bước 5 - Kiểm tra​

Kiểm tra bằng lệnh curl.
Mã:
curl -I hakase-labs.co
Đảm bảo bạn nhận được tiêu đề http như hiển thị bên dưới.



Kiểm tra từ trình duyệt web, URL của máy chủ thử nghiệm của tôi là:http://hakase-labs.co/. Chọn URL máy chủ của bạn tại đây.

Và chúng ta vẫn nhận được nội dung Apache.



Kiểm tra nhật ký varnish bằng lệnh 'varnishncsa'.
Mã:
varnishncsa
Và chúng ta nhận được nhật ký chỉ từ nhật ký truy cập Apache.



Quá trình cài đặt và cấu hình Varnish cho máy chủ web Apache đã hoàn tất.

Tham khảo
 
Back
Bên trên