TÌM HIỂU VỀ WEB SERVER
Khái niệm Web Server
Web server, hay máy chủ web, là một máy tính lớn kết nối với mạng máy tính rộng lớn Nó được cài đặt các chương trình để phục vụ ứng dụng web, lưu trữ toàn bộ dữ liệu và quản lý các hoạt động liên quan.
Mỗi web server đều có một địa chỉ IP hoặc cũng có thể có một domain name.
Phần cứng của máy chủ web kết nối với internet, cho phép trao đổi dữ liệu với các thiết bị liên quan Phần mềm quản lý giúp kiểm soát cách người dùng truy cập và đánh giá các tệp đã được lưu trữ.
Web server là máy tính có dung lượng lớn và tốc độ cao, cần thiết để lưu trữ và vận hành kho dữ liệu trên internet Nó hỗ trợ phần mềm điều khiển hệ thống máy tính hoạt động trơn tru thông qua các cổng giao tiếp riêng biệt Để duy trì cung cấp dữ liệu liên tục cho mạng lưới máy tính, web server phải hoạt động không ngừng nghỉ.
Các giao thức sử dụng trên Web Server
2.1 Định nghĩa Đơn giản mà nói thì giao thức mạng như một bộ quy tắc và chúng phải tuân theo những quy tắc bắt buộc đó Nó giống như những tiêu chuẩn và chính sách chính thức và gộp lại, tạo nên những quy tắc đó Các giao thức mạng này nhằm thực hiện những hành động, chính sách và giải quyết vấn đề từ đầu đến cuối giúp quá trình giao tiếp mạng hoặc
Giao thức mạng là các quy tắc thiết lập kết nối giữa máy tính, router, máy chủ và các thiết bị mạng khác để chúng có thể giao tiếp hiệu quả Để đảm bảo quá trình truyền tải dữ liệu diễn ra trơn tru, các giao thức này cần được xác nhận và cài đặt bởi cả người gửi và người nhận.
Giao thức truyền siêu văn bản (HTTP) là tiêu chuẩn được sử dụng để truyền tải tài liệu và tệp siêu văn bản giữa máy chủ Web và máy khách Web thông qua trình duyệt HTTP hoạt động ở tầng ứng dụng trong các hệ thống thông tin phân tán và siêu phương tiện, cho phép máy khách gửi yêu cầu dạng tệp siêu văn bản đến máy chủ và nhận phản hồi từ máy chủ.
Sơ đồ hoạt động của HTTP
HTTP hoạt động dựa trên mô hình Client – Server.
Trong mô hình client-server, máy tính của người dùng hoạt động như máy khách (Client) Khi người dùng thực hiện một thao tác, các máy khách sẽ gửi yêu cầu đến máy chủ (Server) và chờ đợi phản hồi từ máy chủ.
HTTP là một stateless protocol Hay nói cách khác, request hiện tại không biết những gì đã hoàn thành trong request trước đó.
HTTP cho phép gửi và nhận nhiều loại dữ liệu khác nhau, tạo điều kiện cho việc xây dựng hệ thống độc lập với loại dữ liệu được truyền tải.
Giao thức FTP là gì?
FTP (Giao thức truyền tải tập tin) là một phương thức trao đổi dữ liệu qua mạng sử dụng giao thức TCP/IP, thường hoạt động trên các cổng 20 và 21 Giao thức này cho phép các máy client truy cập vào máy chủ FTP để gửi và nhận dữ liệu Một trong những ưu điểm nổi bật của FTP là khả năng truy cập và truyền tải dữ liệu từ xa, mang lại sự linh hoạt cho người dùng.
2.3 Mô hình hoạt động của giao thức FTP
Giao thức FTP hoạt động trên nguyên tắc truyền và nhận dữ liệu giữa máy Client và máy Server Quá trình này được thực hiện thông qua hai kết nối chính: Control Connection và Data Connection, sử dụng tiến trình TCP logic để đảm bảo việc truyền tải dữ liệu hiệu quả.
Control Connection là phiên làm việc TCP logic đầu tiên được thiết lập khi bắt đầu quá trình truyền dữ liệu Phiên làm việc này chủ yếu kiểm soát các thông tin điều khiển như các tập lệnh, và nó sẽ được duy trì liên tục trong suốt thời gian diễn ra phiên làm việc.
Kết nối dữ liệu (Data Connection) là một kết nối TCP chuyên biệt được thiết lập nhằm mục đích truyền tải dữ liệu giữa máy Client và máy Server Kết nối này sẽ tự động ngắt khi quá trình truyền tải dữ liệu hoàn tất, khác với tiến trình Control Connection.
Các phương thức truyền dữ liệu trong giao thức FTP
Khi thiết lập quá trình truyền dữ liệu, thông tin sẽ được gửi từ máy Client đến máy Server hoặc ngược lại Dựa trên phương thức truyền tải này, FTP hỗ trợ ba chế độ truyền dữ liệu: stream mode, block mode và compressed mode.
Chế độ stream hoạt động dựa trên độ tin cậy của giao thức TCP, cho phép truyền dữ liệu dưới dạng các byte không liên tiếp Trong phương thức này, thiết bị gửi chỉ cần đẩy luồng dữ liệu qua kết nối TCP đến thiết bị nhận mà không cần một trường tiêu đề cố định.
Chế độ block là phương thức truyền dữ liệu tiêu chuẩn, trong đó dữ liệu được chia thành các khối nhỏ và đóng gói thành các block FTP Mỗi block sẽ chứa thông tin chi tiết về khối dữ liệu đang được gửi đi.
Chế độ nén sử dụng phương pháp "run-length encoding" để truyền dữ liệu Thuật toán này giúp phát hiện và loại bỏ các đoạn dữ liệu lặp lại, từ đó giảm độ dài của toàn bộ thông điệp khi gửi đi.
Máy chủ web có vai trò quan trọng trong việc lưu trữ và phát tệp tin của website qua internet, giúp khách truy cập có thể xem và hiểu nội dung Khi người dùng truy cập trang web, trình duyệt của họ sẽ kết nối với máy chủ web để gửi và nhận thông tin, từ đó hiển thị nội dung trên màn hình của họ.
Một số chức năng có thể kể đến của web server :
1 Đầu tiên, một web server phải lưu trữ các file của website, đó là các tài liệu HTML và các tài nguyên liên quan đến nó, bao gồm các ảnh, file CSS, file JavaScript, fonts và videos.
Sự khác nhau giữa Web Server, Web Browser
STT Nội dung Web Server Web Browser
1 Mục đích Web server là một phần mềm cung cấp các tài liệu này khi Web Browser yêu cầu.
Web Browser là một phần mềm được sử dụng để duyệt và hiển thị các trang có sẵn trên internet.
Web Server xem và phê duyệt các yêu cầu đó do trình duyệt web đưa ra và gửi tài liệu để phản hồi.
Web Browser gửi yêu cầu tới máy chủ đối với các tài liệu và dịch vụ dựa trên web.
Máy chủ web nhận Yêu cầu HTTP và gửi Phản hồi HTTP.
Web Browser gửi Yêu cầu HTTP và nhận được phản hồi HTTP.
Web Server tuân theo ba mô hình xử lý chính: dựa trên quy trình, dựa trên luồng hoặc kết hợp.
Web Browser không có mô hình xử lý.
Web Server cung cấp một khu vực để lưu trữ trang web.
Web Browser lưu trữ dữ liệu người dùng trong cookie trong máy cục bộ.
6 Cài đặt Web Server có thể được cài đặt ở bất kỳ đâu nhưng nó cần phải ở trên mạng hoặc trên máy tính cục bộ.
Web Browser được cài đặt trên máy của người dùng.
7 Ví dụ Máy chủ Apache Google Chrome
PHẦN QUAN TRỌNG CẤU THÀNH WEB SERVER
Khái niệm phần cứng
Phần cứng máy chủ (Hardware of Server) bao gồm tất cả các thành phần cần thiết để tạo nên một thiết bị hoàn chỉnh Tương tự như máy tính cá nhân, các thiết bị phần cứng như chuột, bàn phím, màn hình, ổ đĩa cứng và ổ DVD là những bộ phận có thể nhìn thấy và tương tác trực tiếp Nói một cách đơn giản, phần cứng là những thành phần vật lý mà người dùng có thể quan sát.
Máy chủ là một hệ thống phức tạp, có chức năng lưu trữ và quản lý dữ liệu tập trung, đồng thời xử lý các yêu cầu truy xuất thông tin từ các máy tính khác qua Internet Thiết bị phần cứng của máy chủ tương tự như máy tính để bàn (PC), nhưng có độ tin cậy và hiệu suất vượt trội hơn nhiều so với máy tính thông thường.
Tùy theo nhu cầu của người dùng, yêu cầu phần cứng của máy chủ sẽ khác nhau Máy chủ có nhiệm vụ cung cấp dịch vụ cho nhiều người dùng trong một mạng lưới, do đó, các yêu cầu cũng sẽ đa dạng và thay đổi theo từng trường hợp cụ thể.
Nguyên lý hoạt động
Các máy chủ thực hiện kiểm tra bộ nhớ trước khi khởi động và khởi động các dịch vụ quản lý từ xa Các bộ điều khiển ổ đĩa cứng khởi động các ổ đĩa một cách liên tục để tránh quá tải nguồn điện Sau đó, hệ thống RAID (Mảng đĩa độc lập dự phòng) được khởi động để đảm bảo an toàn dữ liệu và tăng tốc độ truy xuất dữ liệu từ ổ cứng Cuối cùng, hệ thống yêu cầu kiểm tra hoạt động chính xác của thiết bị dự phòng.
Quá trình khởi động máy chủ có thể kéo dài hơn so với máy tính, thường mất nhiều thời gian để nạp hệ điều hành Đặc biệt, một số cấu hình phần cứng máy chủ có thể cần thời gian khởi động lâu hơn, và trong nhiều trường hợp, máy chủ có thể không cần khởi động lại trong nhiều tháng hoặc thậm chí nhiều năm.
Cấu tạo
Máy chủ vật lý có cấu trúc tương tự như một máy tính PC thông thường, nhưng giữa phần cứng của máy chủ và PC vẫn có những khác biệt nhất định.
Chipset của main máy chủ khác biệt hoàn toàn so với PC nhờ khả năng hỗ trợ ảo hóa mạnh mẽ Chúng thường là các loại chip chuyên dụng, đặc biệt phù hợp cho việc tạo ra các máy chủ ảo Trong khi đó, bo mạch chủ PC chủ yếu sử dụng các dòng chipset cũ như Intel.
Các dòng chipset mới như Intel 845, 865, 945 và 975 thường được sử dụng trên các bo mạch chủ của máy chủ, với các chipset chuyên dụng như Intel E7520, Intel 3000 và Intel 5000X Những chipset này nổi bật với khả năng hỗ trợ giao tiếp tốc độ cao, bao gồm RAM ECC, HDD SCSI – SAS, RAID và khả năng gắn nhiều CPU dòng Xeon.
Bộ vi xử lý (CPU)
CPU dành cho máy chủ là loại vi xử lý mạnh mẽ, được thiết kế để xử lý nhiều tác vụ đồng thời với số lượng nhân và luồng lớn Đặc biệt, CPU máy chủ cần có khả năng hỗ trợ các tính năng chuyên biệt cho môi trường máy chủ Khác với các dòng CPU dành cho PC như Pentium 4, Pentium D, Dual Core hay Quadcore sử dụng các Socket 478, 775, máy chủ thường sử dụng dòng CPU Xeon riêng biệt để đảm bảo hiệu suất tối ưu.
Dòng vi xử lý Xeon nổi bật với kiến trúc độc đáo, hoạt động trên các socket 771, 603, và 604, tích hợp dung lượng cache L2 cao cùng khả năng ảo hóa cứng Trong khi đó, một số máy chủ cấp thấp vẫn sử dụng CPU Socket 775 làm vi xử lý chính.
Trên thị trường, bạn có thể tìm thấy DDR RAM I, II có Bus 400, 800,… Thật ra, RAM dành cho máy chủ cũng tương tự nhưng có thêm tính năng ECC
EEC (Error Correction Code) là loại RAM có khả năng điều khiển được dòng dữ liệu truy xuất trong nó giúp tự động sửa lỗi
Khi xảy ra xung đột, RAM ECC có khả năng gửi lại gói tin bị lỗi, giúp giảm rủi ro và chi phí vận hành nhờ vào độ ổn định cao RAM ECC ngăn ngừa tình trạng treo máy và màn hình xanh khi có lỗi bit trong quá trình xử lý dữ liệu, đồng thời cho phép tháo lắp nóng mà không cần tắt hệ thống, tuy nhiên, bo mạch chủ phải hỗ trợ chuẩn RAM này Đối với ổ cứng, khả năng lưu trữ và tốc độ là yếu tố quan trọng, với ổ cứng chuyên dụng cho máy chủ có tốc độ quay và băng thông cao hơn nhiều so với ổ cứng PC Các HDD dành cho máy chủ thường sử dụng giao tiếp SCSI hay SAS, cung cấp băng thông lên tới 600MB/s và tốc độ vòng quay cao hơn 30% (10.000RPM), trong khi một số ổ SAS mới có thể đạt đến 15.000 RPM, tối ưu hóa tốc độ đọc/ghi dữ liệu.
Bộ điều khiển Raid là thành phần phần cứng thiết yếu trong máy chủ hiện đại, giúp kết hợp các ổ cứng thành một hệ thống thống nhất với cơ chế sao lưu hiệu quả Khi xảy ra sự cố vật lý, các cơ chế sao lưu này bảo vệ dữ liệu, đảm bảo an toàn cho thông tin của bạn Các bo mạch khác nhau hỗ trợ các mức Raid khác nhau, trong đó Raid 1 và Raid 5 là hai mức phổ biến nhất Tuy nhiên, nhiều bo mạch máy chủ hiện nay đã tích hợp sẵn chip
Bộ cung cấp nguồn (PSU)
Nguồn cung cấp năng lượng cho máy chủ đóng vai trò quan trọng trong hoạt động của thiết bị Các máy chủ chuyên dụng thường đi kèm với bộ nguồn công suất cao, có khả năng thay thế hoặc dự phòng khi nguồn chính gặp sự cố Tùy thuộc vào nhu cầu và tính chất sử dụng, bạn nên lựa chọn phương thức phù hợp nhất.
Phần mềm
2.1 Khái niệm phần mềm Để một ứng dụng Web có thể hoạt động trên mạng thì chúng ta cần phải cần tải và cài đặt mã nguồn ứng dụng này lên 1 web server Web server (hay còn gọi là máy chủ Web) là thiết bị máy tính chứa phần mềm máy chủ (server software) nhằm tạo lập ra môi trường để các ứng dụng web có thể hoạt động và thực thi trên Internet Một web server có thể chứa một hoặc nhiều website và xử lý các yêu cầu đến và trả về kết quả ở trình duyệt người dùng thông qua giao thức HTTP hoặc HTTPs.
2.2 Các phần mềm Web Server phổ biến hiện nay
Theo báo cáo của W3techs, những phần mềm web server phổ biến hiện nay bao gồm Apache, Nginx, Cloudflare server, Litespeed và IIS Tuy nhiên, nếu website của bạn được lưu trữ trên máy chủ tại Việt Nam, việc sử dụng Cloudflare không phải là lựa chọn tối ưu Điều này là do truy vấn sẽ phải đi qua DNS Server của Cloudflare trước khi trở lại Việt Nam, dẫn đến chất lượng đường truyền quốc tế tại Việt Nam bị chậm.
Tỉ lệ web server sử dụng bởi các website
Apache là một chương trình máy chủ HTTP, cho phép giao tiếp qua giao thức HTTP Chương trình này hoạt động trên nhiều hệ điều hành khác nhau, bao gồm Unix, Microsoft Windows, và Novell Netware Apache đóng vai trò thiết yếu trong sự phát triển của mạng web toàn cầu.
Khi người dùng truy cập vào website của bạn bằng cách nhập tên miền vào thanh địa chỉ, web server sẽ hoạt động như một nhân viên vận chuyển ảo, truyền tải các file cần thiết xuống máy tính của họ.
Apache không phải là một server vật lý mà là phần mềm chạy trên server, có nhiệm vụ thiết lập kết nối giữa server và trình duyệt người dùng như Firefox, Google Chrome và Safari Phần mềm này cho phép chuyển file qua lại giữa server và trình duyệt, hoạt động theo cấu trúc client-server hai chiều Apache là phần mềm đa nền tảng, hoạt động hiệu quả trên cả hệ điều hành Unix và Windows.
Khi một khách truy cập tải một trang web trên website của bạn Đơn cử, trang chủ
Khi người dùng truy cập vào trang "Giới Thiệu", trình duyệt sẽ gửi yêu cầu đến server, và Apache sẽ phản hồi bằng cách cung cấp tất cả các file cần thiết để hiển thị trang, bao gồm hình ảnh và văn bản Giao tiếp giữa server và client diễn ra qua giao thức HTTP, với Apache đảm nhận vai trò quan trọng trong việc đảm bảo quá trình này diễn ra một cách mượt mà và an toàn.
Apache là một nền tảng module linh hoạt, cho phép quản trị server tùy chỉnh chức năng bằng cách thêm hoặc tắt các module Nền tảng này cung cấp các module hỗ trợ bảo mật, caching, URL rewriting và chứng thực mật khẩu, giúp tối ưu hóa hiệu suất và bảo vệ dữ liệu.
Máy chủ web Apache hỗ trợ nhiều mô-đun bổ sung, như MPM để xử lý nhiều yêu cầu và mod_ssl để kích hoạt hỗ trợ SSLv3 và TLS Một số tính năng phổ biến của Apache bao gồm khả năng mở rộng và bảo mật cao.
Định vị địa lý dựa trên địa chỉ IP
Nhiều chế độ xử lý yêu cầu (MPM) bao gồm Event driven / Async , Threaded và Prefork.
Xử lý các tệp tĩnh, tệp chỉ mục, tự động lập chỉ mục và nội dung
TLS / SSL với hỗ trợ stapling SNI và OCSP , thông qua OpenSSL hoặc wolfSSL
Kiểm soát truy cập xác thực và ủy quyền chi tiết
Nén và giải nén gzip
Hạn chế kết nối đồng thời
Trình phân tích cú pháp biểu thức chung
Chế độ xem trạng thái thời gian thực
Hỗ trợ FTP (bằng một mô-đun riêng)
Apache hỗ trợ nhiều tính năng thông qua các mô-đun được biên dịch, mở rộng chức năng cốt lõi của nó Những mô-đun này bao gồm các lược đồ xác thực như mod_access, mod_auth, mod_digest và mod_auth_digest, cùng với các ngôn ngữ lập trình phía máy chủ như Perl, Python, Tcl và PHP Ngoài ra, Apache còn cung cấp các tính năng như hỗ trợ Secure Sockets Layer và Transport Layer Security (mod_ssl), mô-đun proxy (mod_proxy), mô-đun URL (mod_rewrite), cấu hình tệp nhật ký tùy chỉnh (mod_log_config) và hỗ trợ lọc (mod_include và mod_ext_filter).
Các phương thức nén phổ biến trên Apache, như mô-đun mod_gzip, giúp giảm kích thước các trang Web khi cung cấp qua HTTP Ngoài ra, ModSecurity là một công cụ mã nguồn mở hiệu quả trong việc phát hiện và ngăn chặn xâm nhập cho các ứng dụng Web Để phân tích nhật ký Apache, người dùng có thể sử dụng các tập lệnh miễn phí như AWStats hoặc W3Perl.
Hosting ảo cho phép một cài đặt Apache phục vụ nhiều trang web khác nhau như www.example.com và www.example.org Apache có khả năng cấu hình thông báo lỗi, sử dụng cơ sở dữ liệu xác thực dựa trên DBMS, hỗ trợ content negotiation và nhiều giao diện người dùng đồ họa (GUI) Nó cũng cung cấp xác thực mật khẩu và chứng chỉ số Với mã nguồn miễn phí, người dùng có thể điều chỉnh máy chủ theo nhu cầu riêng và truy cập vào thư viện tiện ích bổ sung phong phú của Apache.
Nginx là một trong những web server sử dụng mã nguồn mở vô cùng mạnh mẽ.
Nginx, với kiến trúc đơn luồng và hướng sự kiện, mang lại hiệu suất vượt trội so với Apache server Nó không chỉ hỗ trợ load balancing và HTTP caching mà còn hoạt động hiệu quả như một reverse proxy Kiến thức về Nginx là rất quan trọng và cần thiết cho web developer, system administrator và devops.
Khi người dùng gửi yêu cầu mở một trang web, trình duyệt sẽ kết nối với máy chủ của trang đó Máy chủ sau đó tìm kiếm và gửi các tệp cần thiết để hiển thị trang web về trình duyệt, đây là quy trình yêu cầu cơ bản nhất.
Nginx hoạt động khác biệt so với các máy chủ web truyền thống nhờ vào kiến trúc hướng sự kiện không đồng bộ Thay vì tạo một luồng đơn cho mọi yêu cầu, Nginx quản lý các luồng thông qua một worker process, trong đó mỗi worker process chứa nhiều worker connection Những worker connection này chịu trách nhiệm xử lý các yêu cầu và chuyển chúng đến master process, nơi kết quả được trả về Điều đặc biệt là một worker connection có thể xử lý lên đến 1024 yêu cầu đồng thời, cho phép Nginx xử lý hàng ngàn yêu cầu mà không gặp khó khăn Chính vì vậy, Nginx trở thành lựa chọn lý tưởng cho các trang web có lượng yêu cầu lớn như thương mại điện tử, công cụ tìm kiếm và lưu trữ đám mây.
Nginx có thể triển khai để phục vụ nội dung HTTP động thông qua FastCGI, SCGI cho tập lệnh, máy chủ ứng dụng WSGI hoặc mô-đun Phusion Passenger, đồng thời hoạt động như một bộ cân bằng tải phần mềm Với cách tiếp cận theo hướng sự kiện không đồng bộ thay vì sử dụng các luồng, Nginx mang lại hiệu suất ổn định hơn khi chịu tải cao.
CÀI ĐẶT VÀ CẤU HÌNH WEB SERVER
Cài đặt web server (Internet Information Service - IIS 6.0
1 Click nút Start -> Settings - > Control Panel -> Add or Remove Programs
2 Click vào nút Add/Remove Windows Components
3 Cửa sổ Windows Components Wizard xuất hiện
4 Chọn dòng Application Server, click nút Details
5 Chọn dòng Internet Information Services (IIS), click nút Details…
6 Chọn dòng World Wide Web Service, click nút Details để xem cácSubcomponents trong Web Service
7 Chọn checkbox Active Server Pages để Webserver hỗ trợ chạy các trang web động ASP
8 Chọn checkbox Internet Data Connector để hỗ trợ hoạt động cho các trang web có kết nối cơ sở dữ liệu
9 Chọn checkbox Remote Administration (HTML) cài dịch vụ cấu hình dịch vụ Web Server IIS (Internet Information Server) qua mạng
10 Chọn checkbox Remote Desktop Web Connection nếu muốn cài đặt dịch vụ cấu hình Remote Desktop thông qua Web
11 Chọn Checkbox Server Side Includes để hỗ trợ các trang web động chạy trên máy chủ
12 Chọn checkbox WebDAV Publishing để cài dịch vụ Web Folder (Web Distributed Authoring and Versioning) là một giao thức bảo mật cho việc truyền các tập tin qua mạng Intranet hay Internet
Với WebDAV Publishing bạn có thể Upload, Download và quản lý các tập tin trên máy ở xa (Remote Computer) thông qua mạng Intranet hay Internet
WebDAV mang đến một phương thức truyền tải tập tin qua web an toàn hơn so với FTP, nhờ vào cơ chế bảo vệ mật khẩu và mã hóa dữ liệu Khi sử dụng WebDAV, thông tin của bạn được bảo vệ khi truyền đến Web Server thông qua dịch vụ SSL (Secure Sockets Layer).
Nếu Web Server không hỗ trợ dịch vụ SSL (Secure Sockets Layer), WebDAV có thể bảo vệ mật khẩu của bạn khi sử dụng cơ chế xác thực Windows Authentication, nhưng dữ liệu sẽ không được mã hóa khi truyền đến máy chủ Ngược lại, nếu Web Server có dịch vụ SSL, các Web Client sẽ truy cập thông qua giao thức https://, đảm bảo an toàn cho dữ liệu.
FTP không sử dụng mã hóa (Encryption) để bảo vệ Password của bạn khi bạn Login vào Server & không mã hóa dữ liệu của bạn khi truyền đến Server
13 Chọn checkbox World Wide Web Service để cài đặt dịch vụ Web Server -> Click nút OK
14 Bạn có thể chọn cài thêm phần mở rộng FrontPage 2002 Server Extensions để hỗ trợ cho nhiều User đồng thời tạo, quản lý & xuất các website từ máy tính của Client qua mạng Internet
15 Click nút OK 16 Bạn có thể chọn thêm ASP.NET là một Web Application Flatform cung cấp các dịch vụ cần thiết để xây dựng & phân phối các ứng dụng web động ASP.NET và dịch vụ XML Web.
17 Chọn cài Application Server Console để có thể quản lý Website bằng dòng lệnh 18. Click nút OK
20 Hộp thoại Insert Disk xuất hiện (bạn hãy bỏ đĩa cài đặt Windows Server 2003 vào),Click nút OK
21 Click nút Browse tới thư mục cài đặt I386 trên đĩa CDROM
22 Chọn tập tin ADROT.DL_ -> Click nút Open -> Click nút OK -> cờ Copy File
23 Hộp thoại Insert Disk lại xuất hiện -> Click nút OK
24 Click nút Browse tới thư mục cài đặt I386 trên đĩa CDROM
25 Chọn tập tin ASPPERF.DL -> Click nút Open
26 Click nút OK -> chờ Copy File, Hộp thoại Insert Disk lại xuất hiện
27 Click nút OK, Click nút Browse tới thư mục cài đặt I386 trên đĩa CDROM
28 Chọn tập tin IIS6.CAB -> click nút Open -> click nút OK -> chờ Copy File
29 Click nút Finish -> Chờ Windows cập nhật các thành phần
30 Click nút Close 31 Double-click vào biểu tượng Administrative Tools
32 Double-click vào dòng Internet Information Services (IIS) Manager -> Xuất hiện cửa sổ quản lý dịch vụ Web Server (IIS)
34 Sau khi cài đặt dịch vụ IIS bạn thấy xuất hiện thư mục Application Pools: chứa các ứng dụng sử dụng Worker process (chứa các tiến trình xử lý riêng biệt) dùng xử lý các yêu cầu của HTTP Request
35 Thư mục Website chứa danh sách các website đã được tạo ra trên IIS
36 Default Website là Website mặc định được hệ thống tạo sẵn (khi cấu hình Website bạn không nên sử dụng Default Web Site để tổ chức mà chỉ nên dựa vào Website này để tham khảo các thuộc tính mẫu cần thiết do hệ thống cung cấp để cấu hình cho Website mới của mình)
37 Administration là Website hỗ trợ một số thao tác quản trị hệ thống qua Web
38 Microsoft SharePoint Administration là Website được tạo cho Frontpage Server Extensions 2002 Server Administration
39 Thư mục Website Extensions chứa danh sách các Web Services Extension để cho phép hay không cho phép Web Server có thể thực thi được một số ứng dụng Web nhưASP, ASP.NET, CGI, WebDAV,
B CẤU HÌNH DEFAULT WEB SITE:
1 Trước khi cấu hình Website mới chúng ta nên tham khảo cấu hình có sẵn của Default Website Để cấu hình Default Website click phải chuột vào Default Website -> chọn menu Properties -> xuất hiện hộp thuộc tính của Default Web Site.
2 Description là tên mô tả của Website
3 Hãy chỉ định địa chỉ sử dụng cho Website tại hộp IP address Nếu chọn All Unassigned thì HTTP sẽ hoạt động trên tất cả các địa chỉ của Server
4 Hoặc bạn chỉ định địa chỉ IP cụ thể cho Website
5 TCP Port chỉ định cổng hoạt động cho dịch vụ Web (mặc định là 80)
6 SSL Port chỉ định Port cho https (mặc định port 443)
7 Chỉ định thời gian duy trì cho một phiên http
8 Cho phép sử dụng HTTP Keep-Alives
9 Cho phép ghi nhận nhật ký Log
10 Click nút Properties Chọn phương thức lập lịch cho việc ghi nhận Log
11 Chọn Hourly nếu muốn ghi nhận Log theo giờ
12 Chọn Daily nếu muốn ghi nhận Log theo ngày
13 Chọn Weekly nếu muốn ghi nhận Log theo tuần
14 Chọn Monthly nếu muốn ghi nhận Log theo tháng
15 Chọn Unlimited file size nếu không muốn giới hạn kích thước File Log
16 Chọn When file size reaches nếu muốn giới hạn kích thước File Log, Nhập vào kích thước tối đa của tập tin Log
17 Chỉ định nơi chứa tập tin Log tại hộp Log file Directory
18 Chọn Tab Advanced , Bạn có thể chỉ định thêm một số thuộc tính tùy chọn cho việc ghi nhận Log
20 Chọn Tab Performance để chỉ định giới hạn băng thông & kết nối cho Website
21 Chọn checkbox Limit the network bandwidth available to this Website nếu bạn muốn giới hạn băng thông cho Website, nhập vào số KB băng thông tối đa trên giây 22 Chọn Radio Unlimited nếu không muốn giới hạn các kết nối vào Website
23 Chọn Radio Connections limited to nếu muốn giới hạn các kết nối vào Website, Nhập số kết nối tối đa vào hộp này
25 Local Path là đường dẫn mặc định đến thư mục Home chứa Default Website Bạn có thể click nút Browse để chỉ định đường dẫn khác
26 Chọn checkbox Script source access để cho phép truy xuất các đoạn Script cho ứng dụng Web
27 Chọn quyền Read là quyền được truy xuất nội dung thư mục
28 Chọn quyền Write để cho phép ghi và cập nhật dữ liệu của Website
29 Chọn quyền Directory Browsing để cho phép xem nội dung thư mục Website dưới dạng danh sách liệt kê (khi không tìm được trang chủ mặc định)
30 Bạn có thể chỉ định tên cho ứng dụng tại Application Name & chọn quyền thực thi Script Execute permissions cho các ứng dụng Web, chọn Scripts and Executables 31 Tại hộp Application pool tạo hộp combo box chọn DefaultAppPool combo box 32 Click nút Configuration để cấu hình các Extension về asp, aspx, asa, cho ứng dụng Web Application
33 Double-click vào scroll bar để xem các Application Extensions Nếu muốn bổ sung bạn có thể Click nút Add
34 Extension aspx cho phép ứng dụng Web viết theo công nghệ ASP.NET
35 Extension asp cho phép ứng dụng Web viết theo công nghệ ASP
36 Chọn Extension asp -> click nút Edit
37 Click nút OK, Click nút OK
39 Chọn Checkbox Enable default content page để chỉ định trang web mặc định khi người sử dụng truy cập vào Website
40 Bạn có thể xóa các trang web mặc định ở đây bằng cách chọn nó & click nút Remove hoặc thêm trang web mặc định bằng cách click nút Add, nhập vào tên trang dự định làm trang chủ -> Click nút OK , Click nút Move Up hay Move Down để đổi thứ tự các trang này
41 Chọn Tab Directory Security để đặt một số phương thức bảo mật cho IIS
42 Authentication And Access Control: IIS cung cấp 6 phương thức chứng thực kết hợp quyền truy cập NTFS để bảo vệ việc truy xuất tài nguyên trong hệ thống
43 IP address and domain name restriction: Cung cấp một số tính năng giới hạn Host & Network truy xuất vào Website
44 Secure communication: Cung cấp một số tính năng bảo mật trong giao tiếp giữa Client & Server bằng cách Server tạo ra giấy chứng nhận cho Client (Client Certificate)
& yêu cầu Client khi truy xuất vào tài nguyên trên Server thì phải gửi giấy chứng nhận để Server xác nhận yêu cầu có hợp lệ hay không.
45 Click nút Edit mặc định Server không yêu cầu chứng thực & cho mọi người sử dụng (Anonymous) có thể truy xuất được Website
IUSR_SERVER1 là tên user Anonymous dùng để truy cập Website & bên dưới là Password mặc định của user Anonymous
48 Click phải chuột vào nút Start -> Chọn menu Explore -> Xuất hiện cửa sổ Windows Explore
49 Chọn thư mục F:\Inetpub\wwwRoot (là thư mục được tạo ra khi bạn cài đặt Web Server & là thư mục Home Directory của Default Website), Click phải chuột vào desktop -> chọn Menu New -> Text Document để tạo một trang web đơn giản (để xây dựng được một website phức tạp xin mời các bạn xem các Demo minh họa trong CDROM thiết kế web động chuyên nghiệp)
50 Nhập vào tên trang web (Ví dụ: trang index.htm - là trang chủ của Default Website) -
51 Click phải chuột vào trang index.htm -> Open with -> Notepad, nhập nội dung cho trang chủ
52 Chọn menu File ->Save -> Click nút Close
53 Mở trình duyệt Internet Explorer trong hộp Address nhập vào địa chỉ của Local Website -> Bạn đã thấy được nội dung của trang chủ
54 Bạn có thể truy cập vào Website Local bằng địa chỉ IP Nếu muốn người ngoài mạng Internet có thể truy cập được vào Web Server trong mạng LAN nội bộ của bạn bạn phải NAT trên Router ADSL (Xem lại DEMO LAB 9)
56 Hãy mở lại chương trình Internet Information Server -> Chọn Default Web Site
57 Click nút Delete để xóa Website mặc định
TẠO MỚI WEBSITE
1 Click phải chuột vào thư mục Web Sites -> Chọn menu New -> Website…
2 Cửa sổ Website Creation Wizard xuất hiện , click nút Next >
3 Nhập tên mô tả cho WebSite tại hộp Description, click nút Next >
4 Chỉ định địa chỉ IP sử dụng cho Website Nếu chọn All Unsigned có nghĩa là HTTP hoạt động được trên tất cả các địa chỉ của Server, nếu bạn chọn địa chỉ 192.168.10.131 thì HTTP chỉ hoạt động được trên địa chỉ này
5 Host header for this Website (Default: None): Thông số này để nhận diện tên Website khi ta muốn tạo nhiều Website cùng sử dụng chung một địa chỉ IP Nếu bạn tổ chức mộtWebsite tương ứng với một địa chỉ IP thì bạn không cần sử dụng thông số này
6 Chỉ định cổng hoạt động cho dịch vụ Web.
8 Click nút Browse để chỉ định nơi lưu các trang web, chọn thư mục F:\ Inetpub\ wwwRoot, Click nút OK
9 Chọn checkbox Allow anonymous access to this Website để cho phép mọi người có thể truy cập vào được Website, Click nút Next >
10 Chọn thêm quyền Run scripts (such as ASP) để cấp quyền thực thi các trang ASP 11. Click nút Next >
13 Click phải chuột vào Viet Chuyen's Web Site, chọn menu Properties để xem lại các thuộc tính của Website, Cửa sổ Viet Chuyen's Website Properties xuất hiện
14 Chọn Tab Documents để khai báo trang chủ mặc định
15 Click nút Add nhập vào tên các trang dự định làm trang chủ & click nút OK
17 Chọn Tab Directory Security -> Click nút Edit bạn đã cấp quyền cho phép tất cả mọi người (Anonymous) có quyền truy cập vào Web Site , Click nút OK.
19 Mở trình duyệt Internet Explorer- > Nhập vào địa chỉ của máy chủ Web Server -> Bạn sẽ thấy được nội dung trang chủ index.htm
20 Nhập vào địa chỉ Localhost -> Bạn sẽ không thấy được nội dung của trang chủ index.htm vì bạn chỉ cấu hình cho Web Server chạy được chỉ trên 192.168.10.131
21 Quay về chương trình Internet Information Services (IIS) Manager , Click phải chuột vào tên Web Site -> Chọn menu Properties, Cửa sổ Viet Chuyen's Website Properties xuất hiện Tại hộp IP chọn (All Unassigned) để Web Server có thể hoạt động được trên tất cả các địa chỉ của Server
23 Hãy quay lại trình duyệt - Microsoft Internet Explorer -> Click nút Refresh -> Bạn đã truy cập được Website bằng địa chỉ Localhost
25 Chọn thư mục Web Sites, có thể thấy Viet Chuyen's Website đang ở trạng tháiRunning
26 Click nút Stop để dừng chạy Website hay click nút Start để cho chạy Website. Website
Viet Chuyen's Website đang chạy ở Port 80 trên tất cả các địa chỉ IP trên máy chủ.
27 Chọn tên Website -> click phải chuột vào trang web muốn mở lên xem -> chọn menu Browse
Bạn cũng sẽ thấy được nội dung của trang Web.
WEB SERVER HOẠT ĐỘNG NHƯ THẾ NÀO?
Quy trình hoạt động của web server
1.1 Lưu giữ các file (Hosting files)
Một web server lưu trữ các tệp của website, bao gồm tài liệu HTML, tệp CSS, file JavaScript, fonts, ảnh và video Mặc dù người dùng có thể lưu trữ các tệp này trên máy tính cá nhân, nhưng việc lưu trữ trên một máy chủ riêng biệt mang lại nhiều lợi ích hơn.
Luôn luôn sẵn sàng tải lên và hoạt động.
Sở hữu một địa chỉ IP cố định.
Được bảo dưỡng từ nhà cung cấp
Từ những lợi ích trên, việc lựa chọn một nhà cung cấp Web server khá quan trọng trong việc phát triển website.
1.2 Giao tiếp thông qua HTTP
Next, a web server must support HTTP (Hypertext Transfer Protocol), which is a set of rules for connecting two computers HTTP is a textual and stateless protocol.
Textual: gồm tất cả các lệnh là văn bản và người dùng có thể đọc hiểu.
Stateless là một ứng dụng quy định các quy tắc giao tiếp giữa máy chủ web và khách hàng, giúp đảm bảo sự tương tác hiệu quả và nhất quán.
Web server bắt buộc phải trả lời mọi yêu cầu HTTP và chỉ bị lỗi ít nhất một thông điệp
Khách hàng mới gửi yêu cầu HTTP đến máy chủ, và chỉ có máy chủ mới có khả năng phản hồi lại các yêu cầu này.
Khách hàng cần phải cung cấp URL của file, khi yêu cầu file đó qua HTTP.
1.3 Nội dung static hay dynamic
Một Web server có thể xử lý các nội dung dynamic hay nội dung static:
A static web server consists of hardware, such as a computer, combined with HTTP server software In this setup, the server transmits HTML, CSS, and JavaScript files to web browsers.
Máy chủ web động bao gồm một máy chủ tĩnh, một máy chủ ứng dụng và một cơ sở dữ liệu Tên gọi "động" xuất phát từ khả năng của máy chủ ứng dụng trong việc cập nhật các tệp lưu trữ trực tiếp từ cơ sở dữ liệu và gửi chúng qua máy chủ HTTP đến trình duyệt web Khả năng xử lý nội dung và tạo ra dữ liệu từ cơ sở dữ liệu giúp máy chủ này linh hoạt hơn, nhưng cũng yêu cầu kỹ thuật cao hơn Quy trình xây dựng một trang web động thường khá phức tạp.
Những lúc khi nào bạn muốn xem một trang web trên internet có nghĩ là bạn đang yêu cầu trang đó từ web server.
Nguyên lý hoạt động của Web server
Bước 1: Máy Client gửi yêu cầu.
Người dùng truy cập Internet để vào các website thông qua trình duyệt như Chrome, Firefox hay Cốc Cốc trên thiết bị di động hoặc máy tính Ví dụ, để truy cập Wikipedia, bạn chỉ cần nhập địa chỉ URL: https://www.wikipedia.org/.
Bước 2: Trình duyệt web sẽ gửi yêu cầu đến Web server xử lý.
Khi người dùng truy cập một trang web, trình duyệt sẽ gửi yêu cầu chuyển đổi từ tên miền sang địa chỉ IP với sự hỗ trợ của máy chủ DNS Sau đó, trình duyệt sử dụng giao thức HTTP để gửi yêu cầu đến máy chủ web, thông báo rằng người dùng muốn truy xuất thông tin tại địa chỉ đó, và yêu cầu máy chủ trả về kết quả cho người dùng.
Bước 3: Máy chủ kiểm tra và trả về kết quả hiển thị cho người dùng.
Khi trình duyệt web gửi yêu cầu, máy chủ web sẽ kiểm tra hệ thống để tìm tài nguyên liên quan đến địa chỉ mà người dùng muốn truy cập Có hai trường hợp xảy ra trong quá trình này.
Trường hợp có web server sẽ trả lại thông tin qua giao thức HTTP tới trình duyệt web để hiển thị cho người dùng.
Trường hợp không có thông tin thì nó sẽ hiển thị các thông báo lỗi hay nội dung không được tìm thấy.
Cứ như vậy quy trình được lặp đi lặp lại.
Lưu ý khi sử dụng webserver
Để đảm bảo hiệu suất tối ưu cho web server, cần lựa chọn cấu hình phần cứng phù hợp với lưu lượng truy cập Việc sử dụng máy tính có cấu hình cao và dung lượng lớn sẽ hỗ trợ tốt hơn cho số lượng người truy cập đông đảo Nếu web server có cấu hình yếu, quá tải lượt truy cập có thể dẫn đến tình trạng chậm chạp, ảnh hưởng tiêu cực đến trải nghiệm người dùng Mục tiêu của việc xây dựng web server là tạo ra một ứng dụng giúp người dùng tìm kiếm thông tin liên quan đến trang web một cách nhanh chóng và hiệu quả.
Để đảm bảo hoạt động liên tục 24/24 cho web server, việc duy trì kết nối trực tuyến là rất quan trọng Web server có nhiệm vụ cung cấp dữ liệu và chuyển đổi thông tin từ máy chủ đến máy tính người dùng một cách kịp thời Do đó, việc thiết kế các máy chủ chuyên dụng thay vì sử dụng máy trạm là một giải pháp tối ưu.
AN TOÀN BẢO MẬT WEB SERVER
Các lưu ý để bảo mật Web Server
Để web server được bảo vệ tốt nhất, cần lưu ý thực hiện:
1 Đặt máy chủ web trong vùng DMZ – vùng mạng trung lập giữa mạng nội bộ và mạng Internet Đây là nơi chứa các thông tin cho phép người dùng từ Internet truy xuất vào và chấp nhận các rủi ro tấn công từ Internet.
2 Thiết lập firewall không cho các kết nối tới máy chủ web trên toàn bộ các cổng, ngoại trừ cổng 80 (http), cổng 443 (https) và các cổng dịch vụ mà bạn sử dụng.
3 Làm sạch máy chủ web Bạn cần xóa bỏ tất cả dịch vụ không cần thiết khỏi Web server, kể cả FPT (chỉ giữ lại nếu thật cần) Việc làm sạch này sẽ giúp loại bỏ nguy cơ các dịch vụ không cần thiết bị lợi dụng để tấn công hệ thống, nếu máy chủ không có chế độ bảo mật tốt.
4 Không cho phép quản trị hệ thống từ xa, trừ khi nó được đăng nhập theo kiểu mật khẩu chỉ được sử dụng một lần hoặc đường kết nối đã được mã hóa Bạn không nên sử dụng telnet hay ftp với user là anonymous (đòi hỏi một username và password cho việc truy cập) từ bất cứ website không được chứng thực nào Tốt hơn hết, bạn hãy giới hạn số lượng kết nối trong các hệ thống bảo mật và các hệ thống bên trong mạng Intranet của bạn.
5 Giới hạn số người có quyền quản trị hay truy cập mức tối cao (root) Web Server của bạn.
6 Môi trường mã hóa các log : Tạo các log file theo dõi hoạt động của người sử dụng và duy trì các log file này trong môi trường được mã hoá.
7 Cài đặt các bẫy macro để xem các tấn công vào máy chủ Bạn cần tạo các macro chạy liên tục hoặc có thể kiểm tra mức độ nguyên vẹn của file password và các file hệ thống khác Khi các macro kiểm tra một sự thay đổi, chúng nên gửi một email tới nhà quản lý hệ thống.
8 Cập nhật thường xuyên bản vá: Đăng ký và cập nhật định kỳ các bản sửa lỗi mới nhất về an toàn, bảo mật từ các nhà cung cấp cho Web Server của bạn.
9 Giới hạn quyền truy cập: Chạy web server trong các thư mục được đặt quyền truy cập và quyền sử dụng và chỉ có người quản trị mới có thể truy cập hệ thống thực.
10 Chạy server Ftp theo chế độ anonymous (nếu hệ thống cần) trong một thư mục được đặt quyền truy cập, khác với thư mục được sử dụng bởi máy chủ web.
11 Giảm nguy cơ server treo: Thực hiện toàn bộ việc cập nhật từ mạng Intranet. Duy trì trang web ban đầu trên mỗi server trên hệ thống mạng Intranet và tạo các thay đổi và cập nhật ở đây; sau đó mới đẩy các cập nhật này lên website qua một kết nối SSL Nếu thực hiện điều này hàng giờ, có thể tránh khả năng server bị treo một thời gian dài.
12 Scan server thường xuyên: Quét server theo định kỳ với các công cụ như ISS hay map để tìm kiếm lỗ hổng.
13 Sử dụng thông báo, cảnh báo an ninh: Trang bị phần mềm, dịch vụ an ninh mạng giúp phát hiện truy nhập trái phép tới các máy chủ, đặt phần mềm này cảnh báo các hành động nguy hiểm và bắt các session của chúng lại để xem Những thông tin này có thể giúp lấy được thông tin về cách thức phá hoại mạng, cũng như mức độ bảo mật trong hệ thống.
Việc tuân thủ các quy tắc bảo mật sẽ tăng cường bảo vệ cho Webserver, giúp người quản trị mạng giảm bớt lo lắng về an toàn máy chủ và thông tin trong toàn bộ hệ thống.
Các bước bảo mật Web server
Sử dụng mật khẩu có ít nhất 8 ký tự
Sử dụng mật khẩu có độ phức tạp bao gồm số, chữ, ký hiệu …
Sử dụng nhiều mật khẩu cho các tài khoản khác nhau.
Kiểm tra độ mạnh mật khẩu bằng các công cụ hỗ trợ.
Không sử dụng các mật khẩu thông dụng.
2.2 Bảo mật ứng dụng Web
Cập nhật các phiên bản website mới nhất.
Sử dụng công cụ quét bảo mật Nessus giúp đánh giá và phát hiện các lỗ hổng bảo mật trên hệ thống Windows, Linux và Mac, đồng thời cung cấp các biện pháp khắc phục hiệu quả.
Khi upload mã shell, nếu website bị hack và sau đó được khôi phục và bảo mật, nhưng vẫn còn mã shell do hacker để lại trên máy chủ, thì website chắc chắn sẽ bị hack lại, bất kể mức độ bảo mật của nó.
Cài các module an ninh như: Mode Security, htaccess, thiết lập quyền
Đổi tên, di chuyển các thư mục quản trị
Sử dụng phương thức POST thay vì GET để gửi dữ liệu nhạy cảm là lựa chọn an toàn hơn, vì dữ liệu được truyền ngầm và không hiển thị trên URL Điều này giúp bảo vệ thông tin cá nhân, trong khi phương thức GET có thể cho phép hiển thị lại dữ liệu trong đường dẫn.
Vô hiệu hóa Comment nếu không cần thiết
Cấm upload các file có phần mở rộng nguy hiểm như bat, exe…
Vô hiệu hóa các dịch vụ trên server nếu không dùng
Vô hiệu hóa các hàm nguy hiểm
Việc sao lưu dữ liệu thường xuyên là rất quan trọng, vì dữ liệu là tài sản quý giá của cả cá nhân và doanh nghiệp Sao lưu giúp lưu trữ dữ liệu dự phòng, đảm bảo rằng khi xảy ra sự cố như hư hỏng, tấn công từ hacker hay mất điện, bạn vẫn có thể khôi phục lại dữ liệu Điều này giúp hạn chế thiệt hại và bảo vệ nguồn tài nguyên dữ liệu quý giá.
Cập nhật các phiên bản hệ điều hành thường xuyên.
Dùng các công cụ Scan các lỗi bảo mật
Không sử dụng các giao thức không an toàn, độ bảo mật kém dễ bị tấn công như Telnet
Không sao lưu hoặc phần mềm các phiên bản cũ.
Hạn chế quyền truy cập vào các tài khoản nhạy cảm.
Chắc chắn rằng máy chủ đã cài đặt tường lửa.
Luôn có hệ thống tự sao lưu hệ thống.
Luôn cập nhật hệ thống dịch vụ thông báo bảo mật.
Thiết lập các dịch vụ mặc định trong Apache, SSH và dịch vụ khác.