2.2.1. Yêu cầu về mặt tài nguyên
- Máy chủ chạy dịch vụ Web phải có cấu hình đủ lớn để đảm bảo xử lý thông suốt, phục vụ cho số lượng lớn người truy cập. Phải có đường truyền kết nối tốc độ cao để đảm bảo không bị nghẽn mạch dữ liệu.
- Máy chủ phải được người quản trị hệ thống cập nhật, quản lý tên miền, giám sát các miền đang hoạt động (an ninh ...), chặn các miền khi nội dung chứa virut, bảo dưỡng thường xuyên nhằm tránh các rủi ro về mặt kỹ thuật cũng như bảo mật.
- Web Hosting phải có một dung lượng đủ lớn (tính theo MBytes) để lưu giữ được đầy đủ các thông tin, dữ liệu, hình ảnh trên Website.
Dung lượng của web hosting là khoảng không gian được phép lưu trữ dữ liệu của mình trên ổ cứng của máy chủ.
- Có bandwidth (băng thông) đủ lớn để phục vụ các hoạt động giao dịch, trao đổi thông tin của Website:
Chương này sẽ trình bày những nội dung sau:
Giới thiệu dịch vụ Web hosting
Những yêu cầu chung của dịch vụ Web hosting
Phân loại dịch vụ Web hosting
28
Băng thông của web hosting là lượng dữ liệu (tính bằng MBytes) trao đổi giữa website của bạn với người sử dụng trong một tháng. Ví dụ nếu bạn tải lên website của mình một tệp tài liệu có kích thước là 1MB và có 100 khách hàng tải tệp tài liệu đó về thì bạn đã tiêu tốn tổng cộng 101MB băng thông.
- Khi sử dụng dịch vụ hosting khách hàng cần được cấp những tài nguyên sau: IP tĩnh, cấp nguồn tài nguyên trên máy chủ, phân quyền cập nhật, chỉnh sửa và một số phân quyền mở rộng khác tùy thuộc vào gói dịch vụ đăng ký.
2.2.2. Yêu cầu chức năng
- Hosting phải hỗ trợ việc back up dữ liệu.
- Hosting phải hỗ trợ truy xuất máy chủ để cập nhật và chỉnh sửa mã nguồn dữ liệu.
Chỉnh sửa mã nguồn và dữ liệu là nhu cầu tất yếu các các khách hàng hosting vậy nên việc nhà cung cấp dịch vụ phải hỗ trợ khả năng truy xuất máy chủ để cập nhật, sửa đổi dữ liệu là việc rất quan trọng. Các cách để người sử dụng có thể quản lý hosting của mình như : copy trực tiếp lên máy chủ dùng FTP; dùng giao diện web kết nối đến server thông qua internet.
- Hỗ trợ đầy đủ các dịch vụ hoặc các công cụ viết sẵn để phục vụ các hoạt động giao dịch trên Website như gửi mail, upload qua trang Web, quản lý sản phẩm, tin tức...vv. Một số dịch vụ thường được hỗ trợ như:
Với máy chủ Hosting có hệ điều hành Windows:
Windows hosting là một dịch vụ lưu trữ rất nhiều các trang web trên một máy chủ chạy hệ điều hành Windows Sever kết nối Internet. Mỗi trang web có phân vùng riêng của mình thường sử dụng các phần mềm chia hosting như Hosting Controller, Plesk, Lotus. Các dứng dụng hỗ trợ khác như:
+ ASP, ASP.Net, PHP.
+ Hệ quản trị dữ liệu: MS Access, MS SQL Server, một số nơi còn hỗ trợ MySQL.
+ Control panel để người dùng điều khiển hosting qua giao diện web. + Webmail để người dùng sử dụng mail qua giao diện web.
29
+ FTP để truyền tải file.
Với máy chủ Hosting có hệ điều hành Linux:
Linux hosting là một dịch vụ lưu trữ rất nhiều các trang web trên một máy chủ chạy hệ điều hành Linux kết nối Internet. Mỗi trang web có phân vùng riêng của mình thường sử dụng các phần mềm hỗ trợ như Cpanel, Direct Admin, Plesk, Hosting Controller. Các ứng dụng hỗ trợ trên máy chủ Linux.
+ PHP, Perl, Python + MySQL + SSH Access + Protected Directories + POP3/SMTP/IMAP/Webmail + FTP, HTTP File Manager + FrontPage Extensions + CGI-Bin
- Có giao diện quản lý Web Hosting để dễ dàng quản lý website, các tài khoản FTP, E-mail...vv.
2.3. Phân loại Hosting
Web hosting được phân chia thành rất nhiều loại tuỳ thuộc vào nhu cầu của người sử dụng. Có thể phân chia như sau:
2.3.1. Shared hosting
Shared hosting là gói hosting phổ thông và có giá rẻ hơn so với các loại khác. Do dung nhà cung cấp hosting “chia nhỏ” tài nguyên của máy chủ này thành 5, 10,.. cho khách hàng thuê phần nhỏ đó. Shared hosting phù hợp cho website nhỏ có lượng truy cập thấp, tài nguyên sử dụng không nhiều và vì thế giá thuê rất rẻ, trung bình khoảng 2-20 $/tháng tuỳ theo cấu hình.Tất cả các gói shared host này đều chạy chung 1 nền tảng hệ điều hành của máy chủ hạ tầng và có dịch vụ tương đối giống nhau, cùng chia sẻ phần cứng trên máy chủ.
Các phần mềm nổi tiếng hiện nay để cấu hình share host phải kể đến như Plesk (Windows + Linux), Direct Admin (Linux), Cpanel (Linux), Hosting
30
Controller (hỗ trợ cả Windows + Linux, là phần mềm duy nhất hỗ trợ Exchange, Lotus nhưng ở VN ít dùng vì license khá đắt …vv. Trên thực tế các phần mềm này cũng đều chạy dựa trên các services hệ thống như IIS, Apache, SQL, MySQL nhưng nó tạo ra cho bạn 1 wizard để control tất cả mọi thứ 1 cách tự động và thông minh, giảm tải công việc cho Kỹ thuật viên, cũng như nâng cao bảo mật. Gói này chịu sự quản lý của ISP admin.
Ƣu điểm:
-Giá thành thuê hosting rẻ.
- Người sử dụng không đòi hỏi nhiều hiểu biết kỹ thuật để quản trị.
Khuyết điểm:
- Nếu tài nguyên được nhà cung cấp phân chia không hợp lý, họ gom càng nhiều khách hàng vào một máy chủ mà không tính đến việc quá tải và khi một website khác có lượng truy cập tăng đột biến, các website còn lại chung máy chủ đó sẽ bị chậm lại.
- Do phải chia sẻ tài nguyên phần cứng với nhiều người nên hosting gói hosting có cấu hình thấp và tài nguyên hạn chế rất nhiều.
- Dễ bị tấn công local attack từ những người dùng khác trên cùng server nếu người quản trị máy chủ đó không cấu hình bảo mật.
2.3.2. Collocated hosting
Collocated hosting (thuê chỗ đặt máy chủ): Là dạng hosting mà khách hàng sẽ tự trang bị máy chủ của mình. Sau khi cài đặt và cấu hình hoàn thiện họ sẽ liên hệ với nhà cung cấp dịch vụ để thuê chỗ đặt máy chủ đó tại data center. Lúc này nhà cung cấp chỉ lo việc đảm bảo nguồn điện, hệ thống làm lạnh, đường truyền dữ liệu. Khách hàng sẽ có toàn quyền quản lý máy chủ. Họ có thể cài đặt các phần mềm phục vụ cho công việc một cách tự chủ. Trong một số trường hợp hoặc tuỳ vào hợp đồng ký kết giữa hai bên, khách hàng có thể vào data center để thao tác trực tiếp trên máy chủ như cài đặt lại OS, nâng cấp phần cứng, …vv.
Với gói này thì nhà cung cấp sẽ đóng vai trò hỗ trợ kỹ thuật khi khách hàng có nhu cầu.
31
Ƣu điểm:
- Khách hàng có toàn quyền cài đặt và cấu hình theo nhu cầu.
Khuyết điểm:
- Giá thành thuê hosting khá cao.
- Khách hàng phải người có kiến thức về hệ điều hành tương ứng, cùng nhiều kiến thức về mạng, phần mềm, bảo mật. Họ sẽ phải tự cài đặt các dịch vụ như: cài Web server, FTP Server, dịch vụ DNS (Domain Name Server), cấu hình nhiều thông số khác nhau và tự quản trị các dịch vụ đó.
2.3.3. Virtual Private Server (VPS)
Virtual Private Server (VPS) là máy chủ riêng ảo. Nhà cung cấp dịch vụ sử dụng công nghệ ảo hoá (thông dụng nhất hiện nay) để chia một máy chủ vật lý thành nhiều máy chủ ảo. Số lượng máy chủ ảo (VPS) tùy vào năng lực của máy chủ thật. Các VPS này khác share host ở chỗ nó không phải là gói hosting đầy đủ dịch vụ mà là các máy tính hoạt động riêng biệt, từ hệ điều hành cho đến các dịch vụ. Khi thuê VPS, khách hàng toàn quyền quản trị hay lựa chọn hệ điều hành tùy ý mà không ảnh hưởng đến những anh láng giềng khác.
Các công nghệ tạo VPS hiện có nhiều như Vmware, Virtozzo (parallels), HyperV (MS), Xen Citrix....Gói này vẫn chịu sự quản lý của ISP Admin.
32
Ƣu điểm:
- Khách hàng có toàn quyền cài đặt và cấu hình theo nhu cầu. - Giá phù hợp với doanh nghiệp vừa và nhỏ.
Khuyết điểm:
- Khách hàng phải người có kiến thức về hệ điều hành tương ứng, cùng nhiều kiến thức về mạng, phần mềm, bảo mật. Họ sẽ phải tự cài đặt các dịch vụ như: cài Web server, FTP Server, dịch vụ DNS (Domain Name Server), cấu hình nhiều thông số khác nhau và tự quản trị các dịch vụ đó.
2.3.4. Dedicated Server
Dedicated Server (máy chủ dùng riêng): dạng hosting tự trang bị hoặc thuê hẳn toàn bộ phần cứng máy chủ của nhà cung cấp dịch vụ làm hosting. Sau khi cài đặt hoàn tất theo yêu cầu trong hợp đồng, nhà cung cấp sẽ gửi cho khách hàng thông tin đăng nhập cho khách hàng để khách hàng có thể dùng chức năng quản trị từ xa kết nối vào máy chủ và làm tất cả những công việc mà khách hàng muốn. Nhà cung cấp dịch vụ sẽ không có quyền truy cập vào hệ thống đó.
Ƣu điểm:
- Chạy riêng hệ điều hành, không chia sẻ chung phần cứng và băng thông với ai. Cài cắm phần mềm tùy ý và bạn là người quản lý toàn bộ.
Nhƣợc điểm:
- Chi phí đắt nhất trong các loại. [13]
2.4. Quyền hạn của ngƣời dùng trong dịch vụ Web hosting
Dịch vụ web hosting cung cấp cho người sử dụng không gian lưu trữ, cơ sở dữ liệu công cụ ứng dung. Tất cả các tài nguyên này được truy cập bởi một tên miền và nhiều tên miền có thể ánh xạ tới 1 máy.
Khi truy cập vào 1 trang web hoặc sử dụng 1 ứng dụng web. Chúng ta có thể có thể tạo, chỉnh sửa, xoá dữ liệu tệp tin, thư mục trên máy chủ, có thể truy cập cơ sở dữ liệu và có thể sửa code tuỳ thuộc vào quyền hạn của bạn. Sau đây là sơ đồ thể hiện quyền hạn của người dùng trong mô hình dịch vụ Web hosting:
33
Hình 2.2: Quyền hạn của người dùng trong dịch vụ Web hosting
Administrator: Người quản trị web hosting có quyền hạn cao nhất, họ có thể quản lý người sử dụng, quản lý các dealer, quản lý lượng truy cập của các khách truy cập. Ngoài ra người quản trị có thể quản lý hạn ngạch dung lượng của mỗi web hosting.
User: Thông qua tài khoản được cung cấp, người sử dụng có thể thao tác (truy cập, chỉnh sửa, update) trên 1 vùng tài nguyên, cơ sở dữ liệu đã được phân quyền sẵn. Các thao tác của người dùng này phải đảm bảo không được xâm phạm CSDL của người dùng khác.
Visitors: Có thể xem nội dung trang web, sử dụng các công cụ update dữ liệu khi được cho phép.
Dealer: Có quyền quản lý 1 hoặc nhiều người dùng truy cập.
2.5. Các hạn chế của dịch vụ Hosting
Web hosting là một dịch vụ cung cấp không gian lưu trữ, hỗ trợ các công cụ ứng dụng tải lên hoặc tải xuống sử dụng để cập nhật các trang web và các ứng dụng của nó. Hầu hết các ứng dụng đó là PHP, .Net, Python, LAMP (Linux, Apache, MySQL and PHP) được sử dụng phổ biến trong những trang web động.
Nhà cung cấp nhiều dịch vụ hosting chịu trách nhiệm cung cấp cơ chế bảo mật, an toàn cho người sử dụng truy cập vào trang web. Nhưng việc cung cấp dịch
34
vụ Web hosting của nhà cung cấp dịch vụ gặp phải những vấn đề sau đây: - Hạn chế về tài nguyên vật lý.
- Hạn chế về tài nguyên Internet.
- Hạn chế về khả năng quản lý, quản trị.
2.5.1. Hạn chế về tài nguyên vật lý
+ Hạn chế về băng thông
Bandwidth (băng thông) là thông số chỉ dung lượng thông tin tối đa mà website được lưu chuyển qua lại mỗi tháng. Giả sử xem 1 trang web thì băng thông tiêu tốn là 1.000KB (bao gồm tất cả hình ảnh trên trang web), 1 lượt xem trung bình 5 trang web thì tiêu tốn 5.000 KB. Nếu băng thông 10GB/tháng thì số lượt truy cập tối đa mà website có thể phục vụ mỗi tháng khoảng 2.000 lượt.
Nếu chọn dịch vụ không giới hạn băng thông hoặc băng thông thật lớn (trên 100GB/tháng) thì tránh được tình trạng website bị khóa lại vì sử dụng vượt hạn mức băng thông.
+ Hạn chế về dung lượng ổ cứng
Dung lượng hosting là dung lượng tối đa cho phép chứa dữ liệu website của bạn. Đơn vị tính được liệt kê trong các bảng thông tin dịch vụ thường là megabytes. Các tập tin chiếm dung lượng đĩa nhiều thông thường là các tập tin nhạc, video như .mp3, .avi, .mpeg, …vv.
+ Hạn chế về khả năng tính toán
Ví dụ nếu bạn đặt website tại một server có uptime trung bình là 99.86%, điều này có nghĩa là website của bạn sẽ bị down khoảng 1h mỗi tháng. Hầu như không có dịch vụ thuê chỗ dạng shared hosting nào có thể đảm bảo uptime 100%.
2.5.2. Hạn chế về tài nguyên Internet
+ Hạn chế về địa chỉ IP
Do địa chỉ Ipv4 hiện nay đã cạn kiệt vậy nên khó có thể cung cấp đủ cho tất cả những người đăng ký dịch vụ hosting nên rất nhiều web đã phải dùng chung một địa chỉ IP.
35
Với mỗi tài khoản hosting, cần ít nhất 1 website. Tuy nhiên có thể sử dụng nhiều tên miền cho website đó hoặc các website khác. Nghĩa là khi gõ địa chỉ các tên miền này thì sẽ xuất hiện website giống nhau hoặc khác nhau.
2.5.3. Hạn chế về khả năng quản lý
Khả năng quản lý là việc theo dõi đảm bảo kỹ thuật cho các hosting hoạt động tốt. Khi số lượng các hosting tăng lên thì công việc của nhà cung cấp dịch vụ như thiết lập, phân chia tài nguyên sao cho phù hợp, thiết lập các quyền cho khách hàng, thiết kế khả năng bảo mật cho khác hàng cững tăng lên, điều đó làm cho nhà cung cấp hosting sẽ gặp nhiều khó khăn và thách thức.
Để khắc phục những hạn chế của dịch vụ Hosting đã nêu ở trên. Đồng thời cho phép người dùng đưa nội dung trang web, ứng dụng trực tuyến dễ dàng, quản lý cơ sở dữ liệu một cách an toàn và bảo lãnh sự riêng tư, an ninh, an toàn cho người sử dụng dữ liệu. Trong nghiên cứu này, chúng tôi trình bày một số mô hình cho dịch vụ hosting sử dụng LAMP như:
- Một máy chủ cùng với virtual hosts.
- Một máy chủ cùng với virtul host và lớp phần mềm bổ sung.
- Nhiều máy chủ ảo Server cùng với virtual host với lớp phần mềm bổ sung. - Sử dụng Proxy ngược.
36
CHƢƠNG 3: MỘT SỐ GIẢI PHÁP MÔ HÌNH HOSTING CHO DỊCH VỤ WEB
3.1. Mô hình một máy chủ với Virtual hosts 3.1.1. Giới thiệu mô hình 3.1.1. Giới thiệu mô hình
Virtual host là một phương pháp tạo, lưu trữ nhiều tên miền (như domain1.example.vn và domain2.example.vn) trên một máy chủ. Điều này cho phép một máy chủ có thể chia sẻ tài nguyên băng thông, bộ nhớ, CPU giúp tối ưu hoá tài nguyên trên máy chủ.
Đây cũng là một phương pháp được sử dụng rộng rãi khi chia sẻ Web hosting. Do giá Web hosting thấp so với các phương pháp khác. Nó cũng được dùng phổ biến cho những khách hàng muốn sử dụng nhiều tên miền trên cùng một máy do nhu cầu sử dụng.
Hình 3.1: Mô hình máy chủ với Virtual hosts
Có 2 cách để chia sẻ hosting trong Virtual hosts đó là “IP - based”, “Name - based”. “IP - based” là sử dụng một địa chỉ IP riêng biệt cho mỗi trang Web. Nó có thể được thực bởi bất kỳ giao thức nào đòi hỏi phải có 1 địa chỉ IP dành riêng cho
Chương này sẽ trình bày những nội dung sau:
Trình bày giải pháp mô hình một máy chủ với Virtual host
Trình bày giải pháp mô hình một máy chủ với lớp phần mềm bổ sung
Trình bày giải pháp mô hình nhiều máy chủ với lớp phần mềm bổ sung
37
mỗi tên miền. “Name- based” là sử dụng nhiều tên chạy trên 1 địa chỉ IP.
3.1.2. Virtual host với Apache.
3.1.2.1. Cơ chế làm việc của Virtual host trong Apache.
Cơ chế làm việc của Virtual host trong Apache được thể hiện như hình sau: