Cách cấu hình web server theo cụm với Varnish và Nginx trên Ubuntu 13.10
Web server được phân group là một kỹ thuật được sử dụng trong lưu trữ web để phân phối tải trên nhiều máy hoặc 'nút'. Mục đích của kỹ thuật này là loại bỏ các điểm lỗi đơn lẻ và tăng tính khả dụng và thời gian hoạt động của trang web. Thông thường, các cụm web sẽ sử dụng nhiều nút backend và giao diện user .Giới thiệu về web server được phân group
Phân cụm không cần phải tốn kém và cực kỳ dễ dàng để bắt đầu - hướng dẫn này sẽ trình bày cách tạo một web server phân cụm hai nút vòng tròn với Nginx và Varnish.
Về Varnish
Varnish là một trình tăng tốc HTTP; nói cách khác là một server bộ nhớ đệm. Nó cho phép ta tăng tốc trang web bằng cách hướng các yêu cầu HTTP bản sao tĩnh của trang web do Varnish duy trì và production .
Về Nginx
Nginx là một server HTTP nhẹ, hiệu suất cao sẽ đóng role là dịch vụ backend cho Varnish. Nó sẽ không trực tiếp phục vụ các trang web cho khách truy cập; tuy nhiên, nó sẽ phản hồi các yêu cầu từ Varnish khi nào bộ nhớ cache được yêu cầu được xây dựng.
Cài đặt
Để thực hiện các bước trong hướng dẫn này, bạn cần ba server , tất cả đều có thể là version 512mb tối thiểu.
Tôi khuyên bạn nên đặt tên cho tên server của các version như sau:
Varnish
nginx01
nginx02
Tất nhiên bạn có thể thêm bao nhiêu “nginx0x” tùy thích, nhưng đối với hướng dẫn này, tôi sẽ gắn bó với 2.
Khi SSH ban đầu vào ba version mới được tạo, hãy thực hiện lệnh sau:
sudo apt-get update
Bước một - Cài đặt Nginx
Nginx là phần mềm sẽ chịu trách nhiệm cung cấp trang web của ta tới Varnish.
bỏ qua bước này cho version varnish của bạn . Bạn phải cài đặt cái này trên version nginx01 và nginx02, nghĩa là lặp lại quá trình này trên mỗi server nginx0x mà bạn muốn sử dụng.
Ta khuyên bạn nên cài đặt Nginx từ nguồn đảm bảo ta có được version mới nhất .
Nginx có hai phần phụ thuộc chính: PCRE (Thư viện biểu thức chính quy tương thích Perl) và zlib (Một thư viện nén). Tại thời điểm viết hướng dẫn này, version mới nhất là:
Nginx : 1.4.4
PCRE : 8,34
zlib : 1.2.8
Bây giờ ta phải download nguồn của phần trên đã sẵn sàng để được extract và xây dựng; nhập riêng từng lệnh sau:
wget http://nginx.org/download/nginx-1.4.4.tar.gz wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.34.tar.gz wget http://zlib.net/zlib-1.2.8.tar.gz tar -zxvf nginx-1.4.4.tar.gz tar -zxvf pcre-8.34.tar.gz tar -zxvf zlib-1.2.8.tar.gz
Trước khi tiếp tục xây dựng Nginx, trước tiên ta phải lấy một chương trình có tên “Make” và một trình biên dịch cho mã nguồn C ++ 'g ++', điều này sẽ chịu trách nhiệm thực hiện tất cả các lệnh cần thiết để xây dựng Nginx trên các version của ta . Bạn có thể lấy nó thông qua apt-get:
sudo apt-get install make g++
Ở giai đoạn này, bây giờ ta có thể tiếp tục và xây dựng các folder Nginx / First change vào folder Nginx đã extract mà bạn vừa tạo:
cd nginx-1.4.4
Tiếp theo, ta phải cấu hình các tùy chọn xây dựng cho version cụ thể của ta :
./configure --with-pcre=../pcre-8.34 --with-zlib=../zlib-1.2.8
Sau đó, ta có thể tiếp tục tạo các file binary Nginx:
make
Cuối cùng, ta có thể cài đặt Nginx vào hệ thống của bạn :
sudo make install
Bước hai - Cài đặt Varnish
Varnish sẽ chịu trách nhiệm cung cấp trang web của ta cho khách truy cập.
Bạn chỉ phải cài đặt cái này trên version varnish .
Trước tiên, ta cần lấy véc ni GPG Key cung cấp để ta truy cập vào kho của họ. Ta có thể download bằng cách chạy lệnh:
wget http://repo.varnish-cache.org/debian/GPG-key.txt
Sau đó cài đặt khóa:
sudo apt-key add GPG-key.txt
Sau đó, ta cần thêm danh sách kho Varnish vào danh sách nguồn version của ta :
echo "deb http://repo.varnish-cache.org/ubuntu/ precise varnish-3.0" | sudo tee -a /etc/apt/sources.list
Sau đó, hãy đảm bảo apt-get biết các gói Varnish:
sudo apt-get update
Cuối cùng, cài đặt Varnish:
sudo apt-get install varnish
Ở giai đoạn này, ta đã sẵn sàng cấu hình cả Nginx và Varnish để phục vụ một trang web ra thế giới bên ngoài!
Bước 3 - Cấu hình Nginx
Ta không cần phải sửa đổi cấu hình của Nginx quá nhiều, nó sẽ ổn đối với hướng dẫn này. Tuy nhiên, tôi khuyên ta nên sửa đổi trang “Chào mừng đến với nginx” mà ta thấy để chỉ định VPS nào đang cung cấp trang web cho Varnish.
Điều hướng đến folder html root , nơi đặt trang chào mừng Nginx:
cd /usr/local/nginx/html/
Bây giờ hãy chỉnh sửa index.html:
vim index.html
Sửa đổi file để phù hợp với những điều sau:
nginx01 :
<h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <p>I am nginx01</p>
nginx02 :
<h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <p>I am nginx02</p>
Bây giờ ta có thể bắt đầu Nginx ( Lưu ý : Nếu lệnh này không tạo ra kết quả , nó đã được thực thi thành công):
sudo /usr/local/nginx/sbin/nginx
Bước 4 - Cấu hình Varnish
Đầu tiên, bạn phải cài đặt Varnish để chạy trên cổng 80. Để làm điều đó, bạn phải sửa đổi file cấu hình Varnish mặc định. Đầu tiên hãy thay đổi các folder thành nơi chứa file này:
cd /etc/default
Sau đó, ta phải mở file varnish
:
sudo vim varnish
Định vị khối sau trong file :
## Alternative 2, Configuration with VCL # # Listen on port 6081, administration on localhost:6082, and forward to # one content server selected by the vcl file, based on the request. Use a 1GB # fixed-size cache file. # DAEMON_OPTS="-a :6081 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,256m"
Sửa đổi nó để phù hợp với những điều sau:
## Alternative 2, Configuration with VCL # # Listen on port 6081, administration on localhost:6082, and forward to # one content server selected by the vcl file, based on the request. Use a 1GB # fixed-size cache file. # DAEMON_OPTS="-a :80 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,256m"
Tiếp theo, ta cần cấu hình bộ cân bằng tải của bạn . Thay đổi folder thành nơi đặt tập lệnh cấu hình Varnish của ta :
cd /etc/varnish
Sau đó, mở file default.vcl
:
sudo vim default.vcl
Bạn phải xóa khối backend default
trong file này trông giống như sau:
backend default { .host = "127.0.0.1"; .port = "8080"; }
Thay thế nó bằng những thứ sau. Đảm bảo bạn thay đổi .host tương ứng cho nginx01 và nginx02 thành công khai của bạn (hoặc riêng tư nếu version của bạn có tính năng này) DigitalOcean IP:
# define our first nginx server backend nginx01 { .host = "192.168.0.100"; .port = "80"; } # define our second nginx server backend nginx02 { .host = "192.168.0.101"; .port = "80"; } # configure the load balancer director nginx round-robin { { .backend = nginx01; } { .backend = nginx02; } } # When a request is made set the backend to the round-robin director named nginx sub vcl_recv { set req.backend = nginx; }
Bước 5 - Kiểm tra tính khả dụng
Hãy kiểm tra xem liệu ta có thể truy cập trang web của bạn thông qua server Varnish của ta hay không. Định vị IP công khai của version véc ni mà bạn đã chạy và duyệt nó thông qua trình duyệt web. Nếu bạn nhìn thấy văn bản sau, mọi thứ đang hoạt động!
Welcome to nginx! If you see this page, the nginx web server is successfully installed and working. Further configuration is required. I am nginx01 For online documentation and support please refer to nginx.org. Commercial support is available at nginx.com. Thank you for using nginx.
Bạn có thể kiểm tra xem trang web có trực tuyến hay không bằng cách tắt Nginx trên server mà Nginx báo cáo là đang phục vụ. Trong trường hợp của tôi, đây là nginx01, để tắt nginx, bạn có thể thực hiện như sau:
/usr/local/nginx/sbin -s stop
Thử lại IP công cộng Varnish của bạn. Bạn vẫn có thể thấy VPS bạn vừa tắt được báo cáo là server đang hoạt động; điều này là do Varnish đang giữ bộ nhớ cache. Khi bộ nhớ cache này hết hạn, bạn sẽ thấy nginx02 đang cung cấp nội dung.
Để buộc Varnish xóa bộ nhớ cache, hãy khởi động lại dịch vụ:
sudo service varnish restart
Kết luận
Ở giai đoạn này, bạn đã có một cụm vòng tròn cân bằng tải Varnish được cấu hình đầy đủ. Tôi khuyên bạn nên làm theo các hướng dẫn khác về cách cấu hình server Nginx của bạn thêm: Cách cài đặt ngăn xếp Linux, nginx, MySQL, PHP (LEMP) trên Ubuntu 12.04
<div class = “author”> Bài viết được gửi bởi: <a href =osystemhttp://jacob.uk.com[> Jacob Clark </a> </div>
Các tin liên quan
Cách triển khai các ứng dụng web Flask bằng uWSGI Behind Nginx trên CentOS 6.42014-01-14
Cách triển khai ứng dụng web CherryPy đằng sau Nginx Reverse-Proxy
2014-01-14
Cách tạo ứng dụng web với HMVC PHP5 Framework Kohana
2013-12-30
Hướng dẫn đơn giản về cách cài đặt ứng dụng trực diện web trên VPS
2013-12-09
So sánh web server (Rack) cho Ứng dụng Web Ruby
2013-11-25
So sánh các web server cho các ứng dụng web dựa trên Python
2013-10-28
Cách sử dụng node.js, request và cheerio để thiết lập Web-Scraping đơn giản
2013-09-16
Cách tạo một ứng dụng web nhỏ với CakePHP trên VPS (Phần 1)
2013-08-23
Cách mở rộng ứng dụng web trên Ubuntu 12.10
2013-04-11