I. WEB SERVER
1. Khái Niệm
Web server là nơi tiếp nhận và xử lý các yêu cầu (request) từ trình duyệt web của người dùng, sau đó gửi thông tin về cho client thông qua giao thức HTTP và các giao thức khác. Một số web server phổ biến hiện nay bao gồm: Apache, Nginx, IIS...
Các ứng dụng trên web server được thiết lập để phục vụ cho việc cung cấp nội dung web. Khi tiếp nhận các yêu cầu từ trình duyệt, web server nhanh chóng gửi lại dữ liệu cho client.
2. Thành Phần Của Một Web Server
- Phần Cứng: Web server được kết nối với internet và có thể truy cập thông qua tên miền như google.com. Đây chính là nơi lưu trữ các tệp tài nguyên của một website, bao gồm file ảnh, CSS, Javascript, và HTML, giúp chuyển giao chúng tới người dùng cuối.
- Phần Mềm: Web server bao gồm các thành phần điều khiển truy cập vào các tệp lưu trữ trên một HTTP server. Một HTTP server là phần mềm giúp hiểu URL và giao thức mà trình duyệt đang sử dụng. Mỗi khi trình duyệt cần dữ liệu từ máy chủ, nó sẽ gửi yêu cầu thông qua HTTP.
3. Chức Năng Của Web Server
Chức năng chính của web server là lưu trữ, xử lý và phân phối nội dung của website đến client, với các chức năng như:
- Xử lý Dữ Liệu Qua Giao Thức HTTP: Cung cấp thông tin cho người dùng qua internet bằng giao thức HTTP, ví dụ như khi truy cập Bizfly.vn.
- Kết Nối Linh Hoạt: Bất kỳ máy tính nào có phần mềm server và kết nối internet đều có thể trở thành một máy chủ.
- Chương Trình Chuyển Đổi Thông Minh: Phần mềm server cho phép người dùng cài đặt trên bất kỳ máy tính nào đủ yêu cầu về bộ nhớ.
- Lưu Trữ Dữ Liệu: Có thể thuê các máy chủ nhỏ, VPS hoặc hosting để lưu trữ.
4. Cách Thức Hoạt Động Của Web Server
Giao tiếp giữa client và server được thực hiện thông qua giao thức HTTP.
- Textual: Tất cả lệnh đều là văn bản thuần túy, dễ đọc hiểu.
- Stateless: Một ứng dụng server cung cấp quy tắc rõ ràng cho giao tiếp giữa server và client.
- Các Loại Web Server Phổ Biến:
- Nginx: Một máy chủ reverse proxy mã nguồn mở hỗ trợ HTTP, HTTPS, SMTP, POP3, IMAP, và nhiều tính năng khác.
- Apache: Phần mềm web server phổ biến nhất thế giới, phát triển bởi cộng đồng mã nguồn mở.
- Lighttpd: Phần mềm nhẹ nhàng, chiếm ít tài nguyên, hỗ trợ nhiều hệ điều hành.
- IIS: Dịch vụ web server phát triển bởi Microsoft, tích hợp trên Windows.
II. NGINX
1. Giới Thiệu
Nginx là một máy chủ web mã nguồn mở, được thiết kế để tối ưu hiệu suất và độ ổn định. Nó cũng hoạt động như một reverse proxy và cân bằng tải cho http, tcp, và udp. Nginx được sử dụng rộng rãi bởi nhiều công ty lớn như Autodesk, Microsoft và Facebook.
2. Nguyên Lý Hoạt Động Của Nginx
Khác với các máy chủ khác, Nginx không dựa vào luồng để xử lý yêu cầu mà sử dụng kiến trúc sự kiện, không đồng bộ, giúp tăng khả năng mở rộng.
3. Những Tính Năng Của Máy Chủ HTTP Nginx
- Xử lý hơn 10.000 kết nối đồng thời với bộ nhớ thấp.
- Phục vụ tệp tĩnh và lập chỉ mục tệp nhanh chóng.
- Tăng tốc reverse proxy và hỗ trợ cân bằng tải.
- Hỗ trợ SSL/TLS và cấu hình linh hoạt.
- Khả năng triển khai các quy tắc rewrite URL và giới hạn số lượng kết nối.
- Tương thích với IPv6 và hỗ trợ WebSockets.
4. Cài Đặt Nginx
Cài đặt Nginx và kích hoạt nó với hệ điều hành.
yum list -y nginx
yum install -y nginx
systemctl enable nginx.service
Sử dụng firewalld để mở port cho Nginx:
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload
5. Tuning Kernel Để Tối Ưu Cho Nginx
Thêm các giá trị phù hợp vào file /etc/sysctl.conf bằng:
vi /etc/sysctl.conf
6. Chạy Thử Nginx
Tạo một tệp /usr/share/nginx/html/index.html và khởi động lại Nginx. Truy cập địa chỉ 192.168.254.7:80 để xem kết quả.
7. Tìm Hiểu Về SSL (Secure Sockets Layer)
(Một bài viết riêng sẽ được chia sẻ về cơ chế của SSL và TLS)
8. Cấu Hình Nginx Làm Reverse Proxy
Tạo file /etc/nginx/reverse-proxy.conf để cấu hình Nginx làm reverse-proxy và trỏ cấu hình này trong file nginx.conf.
9. Cấu Hình Cache Trên Nginx
Tạo file /etc/nginx/cache.conf để cấu hình cache cho Nginx. Kiểm tra và reload lại để áp dụng.
Lưu ý: Nên sử dụng nginx -t
để kiểm tra cấu hình và nginx -s reload
để cập nhật mà không gián đoạn dịch vụ.
source: viblo