CÀI ĐẶT HỆ ĐIỀU HÀNH LINUX REDHAT 8.0 - Trang 28

www.nhipsongcongnghe.net


3.1. Chọn và cài đặt hệ điều hành cho reverse proxy

Dĩ nhiên là tôi sử dụng linux cho máy chủ reverse proxy. Tôi không mô tả quá trình cài đặt
linux ở đây bởi có rất nhiều tài liệu hay trên Internet nói về đề tài này, và hơn nữa tôi nghĩ
là một khi đã nghĩ đến chuyện làm reverse proxy thì chắc chắn chuyện cài đặt Linux không
là vấn đề.Linux có quá trời distro, thế mrro chọn distro nào? Theo tôi thì distro nào cũng
như nhau cả thôi, nhưng nếu ai đó hỏi tôi câu hỏi trên thì câu trả lời sẽ là Trustix -4-. Bất
kể chọn distro nào, nhớ là sau khi cài đặt xong, hãy dành một chút thời gian để secure cái
distro của mình lại trước khi đọc tiếp -5-. Phần tiếp theo chúng ta sẽ bàn về việc cài đặt
Apache httpd cũng như các module kèm theo của nó.

3.2. 1.3.x hay 2.x?

Trước tiên, tôi nghĩ cần phải trả lời câu hỏi là chúng ta sẽ chọn phiên bản Apache nào để
làm reverse proxy đây, 1.3.x hay 2.x? Tôi chọn 2.x vì ba lý do: thứ nhất là tôi "nghe đồn"

là có rất nhiều 0-day trong phiên bản 1.3.x

. Lý do thứ hai là Apache 2.x cung cấp một

bộ filtering API tốt hơn so với phiên bản 1.3.x, cho phép các module có thể nhìn thấy và
tương tác với nội dung của các request cũng như các response tương ứng từ trả lời từ
server. Điều này rất quan trọng đối với một reverse proxy đóng vai trò là một application
gateway bởi vì nó phải kiểm tra tất cả thông tin đi xuyên qua nó trước khi chuyển giao cho
bên nhận. -6-. Lý do cuối cùng là Apache httpd 2.x có performance cao hơn hẳn 1.3.x khi
phục vụ các static content như file HTML và file hình ảnh. Tôi quan tâm đến vấn đề này là
vì tôi có ý định giảm tải cho các content server bên trong bằng cách tách content ra làm
hai loại là dynamic (các loại file CGI/Perl, PHP) và static (các file HTML và file hình ảnh),
các content server chỉ phục vụ dynamic content, còn tất cả static content thì đưa qua máy
chủ reverse proxy luôn. Lúc đó khi các request của client đi vào reverse proxy, nếu request
đó có đích đến là một static content, máy chủ reverse proxy sẽ trả lời luôn cho client mà
không cần forward request đó đến content server ở phía sau, chỉ những request đến các
dynamic content mới được forward để các content server xử lí. Tôi sẽ đi vào chi tiết vấn đề
này ở phần sau, chỉ lưu ý một điều là cuối cùng tôi lại không dùng Apache httpd cho mục
đích này mà lại sử dụng một máy chủ web khác chuyên trị static content.

3.3. Chọn module cho Apache httpd

Ngoài những module mà tài liệu "Securing Apache 2: step by step" đề nghị, chúng ta phải
chọn thêm các module sau đây:

-mod_rewrite, mod_proxy, mod_proxy_http: các module này sẽ hỗ trợ chúng ta trong việc
thiết lập reverse proxy.

-mod_security: module này giúp chúng ta cấu hình reverse proxy thành một application
firewall để chống lại các dạng tấn công thường thấy vào các web-application chạy trên
content server. -7-

-mod_ssl: module này giúp chúng ta mã hóa dữ liệu của các kết nối từ client đến server
thông qua giao thức SSL và TLS, biến giao thức HTTP không an toàn thành giao thức
HTTPS rất bảo mật. -8-

Phần quan trọng tiếp theo là chọn một MPM phù hợp với mục đích làm reverse proxy của
chúng ta. MPM là viết tắt của cụm từ Multi-Processing Module, là một cải thiện đáng kể của
Apache httpd 2.x so với Apache 1.x. Trong kiến trúc của Apache 2.x, MPM đóng vai trò hết
sức quan trọng, nó chịu trách nhiệm lắng nghe trên các cổng mạng, chấp nhận các yêu
cầu kết nối từ phía client, và chuyển các yêu cầu đó vào bên trong để Apache httpd xử lí -
9-. Trong trường hợp này tôi chọn MPM worker. MPM worker sử dụng thread để phục vụ
các request, do đó nó có khả năng phục vụ một lượng lớn các request nhưng lại tốn rất ít
tài nguyên so với các process-based MPM khác như prefork. Đồng thời MPM worker vẫn
khai thác đặc tính ổn định của cá process-based MPM bằng cách tạo ra nhiều process để
trước, mỗi process có nhiều thread để sẵn sàng phục vụ client -10-.

3.4. Biên dịch và cài đặt Apache httpd

Câu hỏi kế tiếp là biên dịch các module theo kiểu nào. Như chúng ta đều biết, có hai cách

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.