Giảm 50% tất cả các gói, thời gian có hạn. Bắt đầu từ $2.48/mo
13 phút còn lại
Ứng Dụng Web & Kinh Doanh

Lưu Trữ Nhiều Website Trên Một Server (Apache & IIS) 🌐

Lily Carnell By Lily Carnell Đọc trong 13 phút Cập nhật 18 tháng 9 năm 2023
Lưu Trữ Nhiều Website Trên Một Server (Apache & IIS) 🌐

Khi bạn truy cập hosting trực tuyến, bạn có thể muốn biết cách hosting nhiều website trên một máy chủ. Mặc dù điều này có vẻ phức tạp, nhưng khi bạn tìm hiểu thêm về chủ đề này, bạn sẽ hiểu rằng bạn có thể làm điều này với sự trợ giúp từ các hướng dẫn kỹ thuật.

Các web server khác nhau có thể cung cấp cho bạn các dịch vụ miễn phí, mã nguồn mở và được sử dụng rộng rãi trên toàn thế giới. Tuy nhiên, trước khi giải thích cách hosting nhiều website trên một máy chủ, chúng ta nên biết web server là gì và nó hoạt động như thế nào.

Máy chủ Web là gì?

Máy chủ web lưu trữ và cung cấp nội dung như văn bản, hình ảnh, video và dữ liệu ứng dụng cho một trang web. Nói cách khác, các máy khách yêu cầu những nội dung này có thể sử dụng chúng với sự trợ giúp của máy chủ web. Một trong những máy khách phổ biến nhất là trình duyệt web, nó yêu cầu dữ liệu từ trang web của bạn khi người dùng nhấp vào một liên kết hoặc tải xuống một tệp.

Máy chủ web giao tiếp thông qua Giao thức truyền tải siêu văn bản (HTTP) với trình duyệt web. Nội dung của hầu hết các trang web được mã hóa bằng Hypertext Markup Language (HTML). Nội dung có thể là tĩnh, như văn bản và hình ảnh, hoặc động, chẳng hạn như danh sách các mục mà khách hàng đã đánh dấu để mua. Hầu hết các máy chủ web hỗ trợ ngôn ngữ lập trình phía máy chủ để mã hóa logic kinh doanh vào trong quá trình giao tiếp nhằm cung cấp nội dung động. Thông thường các ngôn ngữ như Active Server Pages (ASP), JavaScript, PHP, Python và Ruby được hỗ trợ.

Web Server Hoạt Động Như Thế Nào?

Máy chủ web hoạt động dựa trên mô hình client-server client-server. Trong cấu trúc tiêu chuẩn này, khách hàng yêu cầu một tài nguyên hoặc dịch vụ từ máy chủ.

Máy chủ web thực hiện một số bước để xử lý yêu cầu của các máy khách:

  1. Khi người dùng muốn tải nội dung vào trang web, trình duyệt web yêu cầu quyền truy cập (Yêu cầu HTTP) qua internet.
  2. Trình duyệt web tìm kiếm địa chỉ IP của trang web được yêu cầu. Nó dịch tên miền URL của các trang web bằng cách sử dụng Hệ thống Tên miền (DNS) hoặc tìm kiếm trong bộ nhớ cache của nó. Quá trình này giúp bạn định vị máy chủ web, nơi lưu trữ các tệp của trang web.
  3. Tại thời điểm này, máy chủ web nhận được yêu cầu HTTP và xử lý nó thông qua máy chủ HTTP.
  4. Khi máy chủ HTTP chấp nhận yêu cầu, nó sẽ tìm kiếm các tệp trên máy chủ để lấy dữ liệu liên quan.
  5. Máy chủ web trả lại các tệp trang web cho trình duyệt đã gửi yêu cầu. Sau đó, người dùng sẽ thấy nội dung trang web.

Tuy nhiên, hãy lưu ý rằng nếu máy chủ HTTP không tìm thấy hoặc không xử lý được các tệp được yêu cầu, bạn sẽ thấy thông báo lỗi trong trình duyệt web. Bây giờ khi bạn đã làm quen với các khái niệm chính về máy chủ web, bạn có thể dễ dàng học cách lưu trữ nhiều máy chủ web trên một máy chủ. 

Hosting nhiều website trên một máy chủ: Apache

Nếu bạn muốn lưu trữ nhiều hơn một trang web trên một máy chủ, bạn nên sử dụng các tệp máy chủ ảo của Apache để chỉ định tên miền nào sẽ được sử dụng. Một trong những phương pháp được sử dụng để giải quyết yêu cầu trang web được gọi là Máy chủ ảo dựa trên tên. Khi ai đó truy cập trang web của bạn, yêu cầu sẽ được gửi tới máy chủ, yêu cầu xác định tệp của trang web nào cần phục vụ dựa trên tên miền. Kỹ thuật này cho phép bạn lưu trữ nhiều trang web trên một máy chủ với cùng một IP. Hướng dẫn này sẽ giải thích cách thiết lập tệp máy chủ ảo cho mỗi tên miền của bạn. Trước khi chúng ta đi vào chi tiết hơn, hãy nhớ rằng bạn nên đăng nhập bằng tài khoản root.

Đọc thêm:Linux hay Windows: Cách nào tốt hơn cho bạn?

Bước 1: Tạo Một Thư Mục Cho Mỗi Trang Web

Trước tiên cài đặt apache2 bằng lệnh này

Đối với hệ thống dựa trên Debian

apt install apache2 -y

Đối với hệ thống dựa trên CentOS

yum install apache2 -y

Bạn phải tạo một thư mục cho mỗi trang web mà bạn sẽ lưu trữ (trong thư mục /var/www). Hãy xem xét domain.com và domain2.com cho tên miền của bạn.

mkdir -p /var/www/domain.com/public_html
mkdir -p /var/www/domain2.com/public_html

Bước 2: Đặt quyền truy cập thư mục

chmod -R 755 /var/www

Bước 3: Thiết lập trang chỉ mục

Để xem trang chủ, bạn nên đảm bảo rằng index.html tệp được tạo cho mỗi tên miền. Bạn có thể đặt một cái gì đó đơn giản như kiểm tra cho domain.com trong tệp này.

vim /var/www/domain.com/public_html/index.html

kiểm tra cho domain.com

Bây giờ bạn phải lưu và thoát bằng cách nhấn Thoát ra nút và nhập: wq

Bạn có thể sử dụng lệnh dưới đây để lặp lại tất cả các bước này cho tên miền thứ hai của bạn.

vim /var/www/domain2.com/public_html/index.html

Bước 4: Sao chép tệp cấu hình cho từng trang web

Bạn phải sao chép tệp cấu hình mặc định cho từng trang web, đảm bảo luôn có một bản sao mặc định để tạo trang web trong tương lai.

cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain.com.conf
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain2.com.conf

Bước 5: Chỉnh sửa tệp cấu hình cho từng trang web

Ít nhất bạn sẽ thay đổi và thêm các dòng được đánh dấu trong <VirtualHost *:80> </VirtualHost> thẻ.

Lưu ý rằng ServerAlias là tên thay thế cho miền của bạn; trong trường hợp này và hầu hết các trường hợp, bạn đặt www phía trước tên miền để những người khác có thể truy cập trang web bằng www hoặc không có www (ServerName).

vim /etc/apache2/sites-available/domain.com.conf

Thông tin trang web
Thông tin trang web

Lại bấm Quit và Save bằng wq. Bạn phải lặp lại quy trình này cho domain2.com.conf tệp; hãy chắc chắn cập nhật ServerName, ServerAlias, và DocumentRoot cho miền thứ hai của bạn.

Đọc thêm:Apache vs NGINX

 Bước 6: Kích hoạt tệp cấu hình của bạn

Máy chủ của bạn được đặt để đọc tệp 000-default.conf theo mặc định. Nhưng, ở bước trước, chúng tôi đã tạo một tệp cấu hình mới cho từng miền. Vì vậy, chúng tôi cần vô hiệu hóa tệp mặc định và sử dụng tệp phù hợp với tệp cấu hình mới.

a2dissite 000-default.conf

Bạn có thể ánh xạ máy chủ của mình tới các miền của bạn bằng cách bật từng tệp .conf mới tạo của bạn.

a2ensite domain.com.conf
a2ensite domain2.com.conf

Bây giờ, hãy khởi động lại Apache để đăng ký các thay đổi được thực hiện đối với nó.

systemctl restart apache2

Bước 7: Xác minh cấu hình Apache

Sau khi khởi động Apache, bạn có thể thấy rằng các cấu hình đang hoạt động bằng cách chỉnh sửa tệp /etc/host trên máy tính của bạn hoặc DNS của miền của bạn.

Sau khi mỗi khía cạnh được thiết lập, bạn có thể truy cập trang web của mình trong trình duyệt để xem các trang index.html được tạo ở Bước 3.

Cũng đọc thêm: On-Premises vs. Cloud

Lưu trữ nhiều trang web trên một máy chủ: IIS

Chúng tôi có thể sử dụng máy chủ web IIS (Internet Information Services) để lưu trữ hàng chục hoặc thậm chí hàng trăm trang web. Bạn có thể lưu trữ nhiều trang web trên nó, lắng nghe và phản hồi trên cùng một Cổng TCP. Tuy nhiên, giao diện IIS Manager không hiển thị rằng bạn có thể lưu trữ một trang web khác mà không ràng buộc nó với cổng khác như 8080. Phần này sẽ giải thích cách bạn có thể lưu trữ nhiều trang web trên cùng một máy chủ IIS và ràng buộc chúng với cùng một cổng và địa chỉ IP hoặc thậm chí với các địa chỉ IP khác nhau.

Cách cài đặt IIS trên máy chủ Windows?

Khi bạn cài đặt IIS trên Windows, một Default Website trống được tạo và lắng nghe trên cổng HTTP web chuẩn – TCP 80. Về mặt kỹ thuật, trang web của chúng tôi được ràng buộc với cổng TCP/80. Chúng tôi phải nhập tên của máy chủ IIS ("http://web-srv1") hoặc địa chỉ IP của nó ("http://192.168.1.100") vào trình duyệt của bạn để mở trang web này.

Bước 1: Ràng buộc Trang web IIS 

Máy chủ web IIS chạy trên Windows Server có thể giúp bạn lưu trữ nhiều trang web. Nhưng, IIS chỉ phân phối các yêu cầu HTTP một cách chính xác nếu mỗi trang web phải được xác định bằng một giá trị duy nhất. Trang web IIS bao gồm ba thuộc tính tạo thành một tổ hợp duy nhất cho mỗi trang web. Các thuộc tính này được liệt kê ở đây:

  • một số cổng TCP
  • địa chỉ IP
  • một tiêu đề máy chủ (hostname)

Thông tin về các trang web được lưu trữ được lưu trong ServerBindings thuộc tính của IIS Metabase, và định dạng của nó như thế này: IP:Cổng:Tên máy chủ. Vì vậy, nếu bạn muốn lưu trữ nhiều website trên một máy chủ (cùng port và địa chỉ IP), bạn phải sử dụng Host header duy nhất.

Bạn có thể tự hỏi, Host header là gì? Host header là một phần của yêu cầu HTTP gửi đến máy chủ, chỉ định website nào nhận yêu cầu đó. Vì thế, chúng ta phải khai báo Host header này trên máy chủ web. Lưu ý rằng DNS phải có bản ghi đúng tương ứng với hostname và địa chỉ IP của máy chủ IIS.

Giả sử bạn đã có một website chạy trên máy chủ IIS và lắng nghe trên port 80. Làm thế nào khi bạn muốn gắn website thứ hai vào cùng port?

Bước 2: Gắn website IIS thứ hai

Trong Internet Information Service (IIS) Manager, bạn cần tạo một website khác bằng cách sử dụng cửa sổ Add Website và đặt tên là TestSite; Website này sẽ nằm trong C:\inetpub\TestSite. Chú ý là chưa cần chỉ định hostname lúc này.

Sau khi sao chép nội dung site vào C:\inetpub\TestSite, hãy mở Internet Information Service (IIS) Manager, và trong hostname của máy chủ, thêm site để mở trình hướng dẫn cho bạn.

hostwebsites.png

thêm-trang-web-mới-iis
Cửa sổ Add Website

 

Sau khi nhấp Ok, bạn sẽ nhận được thông báo cảnh báo rằng bạn không thể sử dụng binding *:80 cho cả hai website này.

thêm trang web

Cổng liên kết 80 đã được gán cho một trang web khác
Kiểm tra Binding

Sau khi bạn chấp nhận cảnh báo này, website thứ hai sẽ được gắn vào port 80. Tuy nhiên, bạn không thể khởi động nó mà không dừng website đầu tiên. Bạn có thể hiểu rõ hơn bằng cách chú ý đến hình ảnh dưới đây.

4 Gán port binding khác nhau cho các website
Gán port binding khác nhau cho các website

windows-original-vps Hosting VPS Windows

Khám phá các gói Windows VPS giá cả phải chăng của chúng tôi, tích hợp phần cứng mạnh mẽ, độ trễ tối thiểu và một Windows miễn phí theo lựa chọn của bạn!

Nhận Windows Miễn Phí của Bạn

Lưu trữ nhiều trang web trên máy chủ IIS bằng Host Headers

Bạn phải chọn một tên khác (Host Name) cho website IIS thứ hai để tạo binding duy nhất. Để làm điều này, hãy nhấp chuột phải vào TestSite và chọn Chỉnh sửa Bindings. Chọn binding bạn cần và nhấp Chỉnh sửa.

Như bạn thấy trong hình ảnh dưới đây, chúng ta phải chỉ định hostname duy nhất mà người dùng sẽ truy cập. Trong hướng dẫn này, chúng ta sử dụng TestSite; vì vậy hãy nhập nó vào trường Hostname.

test-iis-site-binding
Cửa sổ Edit Site Binding

Bạn có thể sử dụng command prompt để cấu hình IIS site binding. Nếu bạn sử dụng IIS 7 hoặc phiên bản mới hơn, bạn sẽ thấy kết quả như thế này sau khi chạy lệnh cấu hình IIS Site binding:

C:\Windows\System32\inetsrv\appcmd.exe set site /site.name:testsite /+bindings.[protocol='http',bindingInformation='*:80:testsite']

Tương tự như website đầu tiên, bạn cũng có thể khởi động website thứ hai.

start-iis-site
Quản lý Trang web

Lúc này, bạn phải thêm bản ghi DNS cho máy chủ (bản ghi A hoặc CNAME), chỉ đến địa chỉ IP hoặc hostname của máy chủ IIS của bạn. Nếu bạn sử dụng Active Directory domain, bạn cần tạo các bản ghi DNS trên domain controller. IIS cho phép bạn tạo CNAME bản ghi cho tên TestSite trong bảng điều khiển DNS (dnsmgmt.msc) và đặt tên miền của máy chủ IIS của bạn thành FQDN target host.

tạo bản ghi CNAME cho tên TestSite trong bảng điều khiển DNS
tạo bản ghi CNAME cho tên TestSite trong bảng điều khiển DNS

Bạn cũng có thể tạo bản ghi DNS này thông qua PowerShell với lệnh sau:

Add-DnsServerResourceRecordCName -HostNameAlias web-srv1.woshub.com -Name testsite -ZoneName woshub.com

Hãy thử mở http://TestSite trong trình duyệt. Nếu mọi thứ được cấu hình chính xác, nó sẽ mở thành công.

nhiều-trang-web-iis-trên-cùng-cổng-http-80
Kết quả cuối cùng của testsite

 

linux-vps Hosting Linux Đơn Giản

Muốn tìm một cách tốt hơn để lưu trữ trang web và ứng dụng web của bạn? Đang phát triển điều gì đó mới? Hoặc đơn giản là bạn không thích Windows? Vì thế chúng tôi có Linux VPS.

Nhận Linux VPS của bạn

Chạy nhiều trang web với các địa chỉ IP khác nhau trên máy chủ IIS

Bây giờ hãy nói về việc chạy hai trang web trên máy chủ IIS với các địa chỉ IP khác nhau. Trước tiên, bạn phải thêm một giao diện VLAN riêng biệt trên Máy chủ Windows hoặc gán một địa chỉ IP bổ sung (alias) cho NIC.

Trong hướng dẫn này, máy chủ có địa chỉ IP chính 192.168.13.100 và chúng ta sẽ thêm IP alias 192.168.13.101 vào cùng bộ điều hợp mạng:

Get-NetIPAddress | ft IPAddress, InterfaceAlias, SkipAsSource
New-NetIPAddress –IPAddress 192.168.13.101 –PrefixLength 24 –InterfaceAlias “Ethernet” –SkipAsSource $True

Bây giờ bạn phải tạo bản ghi A cho trang web mới của bạn trên máy chủ DNS:

Add-DnsServerResourceRecordA -Name NewSite3 -IPv4Address 192.168.13.101 -ZoneName woshub.com -TimeToLive 01:00:00 –CreatePtr

Tiếp theo, hãy mở cài đặt Site Binding và liên kết trang web với địa chỉ IP bổ sung của máy chủ của bạn. Bạn có thể quản lý liên kết các trang web trên máy chủ IIS bằng PowerShell. Để làm điều này, mô-đun WebAdministration được sử dụng:

Import-Module WebAdministration

Bạn có thể xem thông tin chi tiết về tất cả các trang web IIS khả dụng và các liên kết của chúng:

Get-IISSite

Hoặc chỉ về một trang web duy nhất:

(Get-Website -Name NewSite).bindings.Collection

bindings.Collection

Sử dụng lệnh sau để thay đổi liên kết của trang web này. Lưu ý rằng nó cho phép bạn thay đổi địa chỉ IP, cổng hoặc tên:

Set-WebBinding -Name NewSite1 -BindingInformation "192.168.13.101:80:NewSite1" -PropertyName 'Port' -Value '8080'
Set-WebBinding -Name NewSite1 -BindingInformation "192.168.13.101:8080:NewSite1" -PropertyName 'IPAddress' -Value '192.168.13.100'

Bạn có thể chạy lệnh này để thêm liên kết mới cho trang web IIS cụ thể:

New-IISSiteBinding -Name NewSite1 -BindingInformation "*:9090:" -Protocol http

Để xóa liên kết, hãy sử dụng lệnh sau:

Remove-IISSiteBinding -Name NewSite1 -BindingInformation "*:9090:"

Như bạn đã thấy ở đây, bạn có thể chạy nhiều trang web trên máy chủ web IIS cả trên các địa chỉ IP khác nhau và trên cùng một địa chỉ IP và số cổng TCP.

Tóm lại: Lưu trữ nhiều trang web trên một máy chủ

 Bài viết này tập trung chủ yếu vào các khái niệm cơ bản về máy chủ, giúp bạn học cách lưu trữ nhiều trang web trên một máy chủ. Chúng tôi cũng cung cấp nhiều Linux VPS giải pháp lưu trữ mà bạn có thể sử dụng để chạy các trang web khác nhau trên một máy chủ. Các gói của Cloudzy giảm chi phí sở hữu nhiều máy chủ, nhưng chúng tôi cũng cho phép bạn sử dụng dịch vụ của chúng tôi một cách tối ưu. Hơn nữa, bạn có thể dễ dàng nâng cấp tài nguyên máy chủ của mình, bao gồm RAM, lưu trữ, bộ xử lý và băng thông.

Câu hỏi thường gặp

 

Bạn có thể lưu trữ nhiều trang web trên một máy chủ web duy nhất không?

Nếu bạn có một máy chủ lớn với tài nguyên phong phú như không gian HDD đủ, RAM và sức mạnh CPU, bạn có thể lưu trữ nhiều trang web bằng cách sử dụng virtual hosting. Bạn có thể lưu trữ số lượng trang web không giới hạn trên máy chủ web của mình.

Làm cách nào để chạy hai trang web trên một máy chủ?

Lưu trữ nhiều trang web trên một máy chủ web duy nhất được gọi là Virtual Server. Ngoài ra, bạn nên đảm bảo rằng máy chủ được chọn có đủ tài nguyên để xử lý lưu lượng truy cập và yêu cầu không gian đĩa.

Máy chủ VPS được sử dụng để làm gì?

VPS là dịch vụ lưu trữ có thể cung cấp cho bạn tài nguyên chuyên dụng (riêng) trên một máy chủ. Lưu ý rằng sử dụng VPS là một giải pháp an toàn và ổn định hơn so với lưu trữ chia sẻ, nơi bạn không có không gian máy chủ riêng.

Tại sao mọi người sử dụng VPS?

Lưu trữ VPS đã trở thành lựa chọn phổ biến vì nó thường có chi phí thấp hơn lưu trữ chuyên dụng trong khi cung cấp độ tin cậy, bảo mật và hiệu suất tốt hơn so với lưu trữ chia sẻ.

Chia sẻ

Bài viết mới từ blog

Tiếp tục đọc.

Hình ảnh tính năng đánh giá Odoo với tiêu đề lớn ở bên trái và logo Odoo ở bên phải, được bao quanh bởi các bảng điều khiển giao diện ứng dụng nổi trên nền chủ đề mây màu tím nhẹ.
Ứng Dụng Web & Kinh Doanh

Đánh Giá Toàn Diện Odoo: Odoo Có Phù Hợp Với Doanh Nghiệp Của Bạn Không

Odoo là một trong những nền tảng ERP được xem xét rộng rãi nhất cho các doanh nghiệp đang phát triển, vì một lý do đơn giản: nó tập hợp nhiều tính năng trong một chỗ. Bán hàng, kế toán, quản lý hàng tồn kho

Jim SchwarzJim Schwarz 11 phút đọc
Hình ảnh tính năng các giải pháp WordPress mã nguồn mở với nền độ dốc đầy màu sắc, màn hình máy tính để bàn, trình chỉnh sửa mã, xem trước bảng điều khiển mờ và văn bản tiêu đề lớn ở bên trái.
Ứng Dụng Web & Kinh Doanh

Các Giải Pháp WordPress Mã Nguồn Mở Tốt Nhất Được Tối Ưu Hóa Cho Lập Trình Viên

WordPress vẫn có giá trị và hoạt động tốt cho rất nhiều trang web. Thư viện plugin của nó có hơn 62.000 plugin, và thư viện chủ đề của nó cung cấp hơn 14.000 chủ đề miễn phí. Đó là

Jim SchwarzJim Schwarz 14 phút đọc
Hình ảnh tính năng so sánh Automad và WordPress với logo của cả hai nền tảng và tiêu đề hỏi lập trình viên nên chọn CMS nào.
Ứng Dụng Web & Kinh Doanh

Automad Và WordPress: So Sánh Chi Tiết Hai Nền Tảng CMS Hàng Đầu

Automad và WordPress giải quyết cùng một vấn đề nhưng theo hai cách hoàn toàn khác nhau. Automad là một CMS và công cụ mẫu dựa trên tệp, do đó nội dung tồn tại dưới dạng tệp thay vì cơ sở dữ liệu, nhưng WordPress thì

Jim SchwarzJim Schwarz 9 phút đọc

Sẵn sàng triển khai? Từ $2.48/tháng.

Cloud độc lập, hoạt động từ 2008. AMD EPYC, NVMe, 40 Gbps. Hoàn tiền trong 14 ngày.