1. Giới thiệu
- Apache:
- Vai trò chung là web server
- Trong bài lab này Apache giữ vai trò
Webserver
, source code và DB sẽ được đặt trên máy chủ này.
- Nginx:
- Là một web server tương tự Apache
- Trong bài lab này đóng vai trò là 1
Reverse Proxy
- Nginx đứng trước để tiếp nhận các kết nối và che chắn cho Webserver Apache.
1.1 Mô hình
| Reverse Proxy | Webserver | USER | --- | --- | --- | --- | OS | Ubuntu 16.04 | Ubuntu 16.04 | Windows 7 | NIC | eth0 | eth0 | LAN | IP | 192.168.100.194 | 192.168.100.195 | 192.168.100.22 | Package| NGINX | APACHE | Firefox + WireShark |
1.2 Lợi ích khi sử dụng Reverse Proxy
- Giảm tải cho Webserver
- Xử lý nhanh các request tĩnh
- Giấu được mô hình, tăng tính bảo mật
1.3 Mô tả hoạt động
Trong bài lab này, tôi sẽ bắt các gói tin tại máy chủ
Reverse Proxy
để phân tích luồng hoạt động của hệ thống khi mà người dùng truy cập.- Bước 1: Request của
USER
đếnReverse Proxy
- Bước 2: Request của
USER
đượcReverse Proxy
chuyển đếnWebserver
- Bước 3: Webserver trả về reponse cho
Reverse Proxy
, cache được lưu lại ởReverse Proxy
- Bước 4:
Reverse Proxy
trả reponse choUSER
- Bước 5: Request của
USER
lần thứ 2 đếnReverse Proxy
- Bước 6: Request của
USER
lần thứ 2 đượcReverse Proxy
xử lý, nếu request yêu cầu có sẵn trong cache thì trả lại choUSER
, nếu chưa có thì quay lạiBước 2
, và tương tự như vậy đến lần thứ n.
2. Phân tích hoạt động
2.1 Chuẩn bị
Dùng công cụ
tcpdump
để bắt gói tin trên máy chủ Reverse Proxy
và các bước thực hiện như sau:
Bước 1: Bắt gói tin trên
Reverse Proxy
tcpdump -p tcp -w /opt/proxy.pcap
Bước 2 Tạo Request đến
Reverse Proxy
Dùng Firefox truy cập vào
Reverse Proxy
với địa chỉ http://192.168.100.194
Sau khi tải xong, bấm
CTRL
+ F5
để tạo request lần 2
Bước 3: Dừng việc bắt gói, lấy file
.pcap
- Dừng bắt gói tin bằng
CTRL
+C
ở Terminal
- Dùng WinSCP lấy file
proxy.pcap
về và mở bằng WireShark
2.2 Phân tích hoạt động
Request của USER lần thứ 1:
No.12
, Người dùng có IP: 192.168.100.20 truy cập HTTP đếnReverse Proxy
thông qua IP là 192.168.100.194No.17
,Reverse Proxy
có địa chỉ 192.168.100.194 sẽ gửi bản tin truy cập HTTP của Người dùng đếnWebserver
có IP là 192.168.100.195No.19
,Webserver
(192.168.100.195) xử lý request rồi gửi lại response choReverse Proxy
có địa chỉ là 192.168.100.194No.25
,Reverse Proxy
gửi trả response từ 192.168.100.195 đến người dùng có địa chỉ là 192.168.100.20
Request của USER lần thứ 2:
No.15
, Người dùng có IP: 192.168.100.250 truy cập HTTP đếnReverse Proxy
thông qua IP là 192.168.100.194No.18
,Reverse Proxy
(192.168.100.194) xử lý request, và thấy request đã có ở trong cache vì thế nó sẽ trả reponse từReverse Proxy
(192.168.100.194) về luôn cho Người dùng có địa chỉ là 192.168.100.250 mà KHÔNG phải gửi yêu cầu đếnWebserver
3. Kết luận
Qua bài phân tích trên, chúng ta thấy được luồng hoạt động của mô hình này. Các request từ người dùng chỉ giao tiếp với Reverse Proxy không hề biết bên trong có máy chủ Web, đồng thời Reverse Proxy cũng lưu trữ lại cache việc này làm giảm tải cho Webserver không phải làm việc quá nhiều.
Source : https://github.com/hoangdh/ghichep-HTTP/blob/master/Phan-tich-hoat-dong-ReverseProxy.md
Blogger Comment
Facebook Comment