JABZ7SHOP : Web Selling Things With Cheap Price : https://jabz7shop.blogspot.com/ : Go To My Shop Online Now
Bài đăng

Cách thiết lập máy chủ ảo Apache trên Ubuntu 20.04

 

Giới thiệu

Apache HTTP là một máy chủ web mã nguồn mở phổ biến linh hoạt, mạnh mẽ và hỗ trợ rộng rãi cho các nhà phát triển. Cấu hình máy chủ Apache không diễn ra trong một tệp nguyên khối mà thay vào đó diễn ra thông qua thiết kế mô-đun - nơi các tệp mới có thể được thêm vào và sửa đổi khi cần thiết. Trong thiết kế mô-đun này, bạn có thể tạo một trang web hoặc miền riêng lẻ được gọi là máy chủ ảo. Sử dụng máy chủ ảo, một phiên bản Apache khác có thể phục vụ nhiều trang web. Mỗi miền hoặc trang web riêng lẻ được thiết lập cấu hình bằng Apache sẽ hướng khách truy cập đến một thư mục cụ thể chứa thông tin của trang web đó. Điều này được thực hiện mà không chỉ ra cho khách truy cập rằng cùng một máy chủ cũng chịu trách nhiệm cho các trang web khác. Lược đồ này có thể mở rộng mà không có bất kỳ giới hạn phần mềm nào miễn là máy chủ của bạn có thể xử lý tải. Trong hướng dẫn này, bạn sẽ thiết lập máy chủ ảo Apache trên máy chủ Ubuntu 20.04. Trong quá cả quá trình, bạn sẽ học cách phân phát nội dung khác nhau cho những khách truy cập khác nhau tùy thuộc vào tên miền mà họ đang yêu cầu bằng cách tạo 2 trang web lưu trữ ảo.

Yêu cầu

  • Máy chủ Ubuntu 20.04 với người dùng non-root có đặc quyền sudo.
  • Cài đặt sẵn Apache trên máy chủ của bạn.

Để hoàn thành được hướng dẫn này, bạn sẽ cần 2 tên miền với:

  • Một bản ghi với your_domain trỏ đến địa chỉ IP công cộng của máy chủ.
  • Một bản ghi có www.your_domain trỏ đến địa chỉ IP công cộng của máy chủ.

Lưu ý: Nếu bạn không có sẵn tên miền tại thời điểm này, bạn có thể sử dụng các giá trị thử nghiệm cục bộ trên máy tính của mình. Bước 6 của hướng dẫn này sẽ chỉ cho bạn cách kiểm tra và cấu hình các giá trị kiểm tra của bạn. Điều này sẽ cho phép bạn xác thực cấu hình của mình mặc dù nội dung của bạn sẽ không có sẵn cho những khách truy cập khác thông qua tên miền.

Bước 1: Tạo cấu trúc thư mục

Bước đầu tiên là tạo cấu trúc thư mục chứa dữ liệu trang web mà bạn sẽ phục vụ cho khách truy cập. Thư mục gốc (document root) của bạn, thư mục cấp cao nhất mà Apache xem xét để tìm nội dung phục vụ, sẽ được đặt thành các thư mục riêng lẻ trong thư mục / var / www. Bạn sẽ tạo một thư mục tại đây cho mỗi máy chủ ảo. Trong mỗi thư mục này, bạn sẽ tạo một thư mục public_html. Thư mục public_html chứa nội dung sẽ được cung cấp cho khách truy cập của bạn. Các thư mục mẹ, được đặt tên ở đây là your_domain_1 vàyour_domain_2, sẽ chứa các tập lệnh và mã ứng dụng để hỗ trợ nội dung web. Sử dụng các lệnh này, với tên miền của riêng bạn, để tạo các thư mục của bạn:

  1. sudo mkdir -p /var/www/your_domain_1/public_html
  2. sudo mkdir -p /var/www/your_domain_2/public_html

Đảm bảo thay thế your_domain_1 và your_domain_2 bằng các miền tương ứng của riêng bạn. Ví dụ: nếu một trong các tên miền của bạn là example.com, bạn sẽ tạo cấu trúc thư mục này: /var/www/example.com/public_html.

Bước 2: Cấp quyền

Bạn đã tạo cấu trúc thư mục cho các tệp của mình nhưng chúng thuộc sở hữu của người dùng gốc (root). Nếu bạn muốn người dùng thông thường của mình có thể sửa đổi các tệp trong các thư mục web này, bạn có thể thay đổi quyền sở hữu bằng các lệnh sau:

  1. sudo chown -R $USER:$USER /var/www/your_domain_1/public_html
  2. sudo chown -R $USER:$USER /var/www/your_domain_2/public_html

Biến $ USER sẽ lấy giá trị của người dùng mà bạn hiện đang đăng nhập như khi bạn nhấn ENTER. Bằng cách này, người dùng thông thường hiện sở hữu các thư mục con public_html nơi bạn sẽ lưu trữ nội dung của mình. Bạn cũng nên sửa đổi các quyền của mình để đảm bảo rằng quyền truy cập đọc được phép vào thư mục web chung và tất cả các tệp và thư mục mà nó chứa để các trang có thể được phân phối chính xác:

  1. sudo chmod -R 755 /var/www

Máy chủ web của bạn hiện có các quyền cần thiết để cung cấp nội dung và người dùng của bạn có thể tạo nội dung trong các thư mục cần thiết. Bước tiếp theo là tạo nội dung cho các trang web máy chủ ảo của bạn.

Bước 3: Tạo các trang mặc định cho mỗi máy chủ ảo

Với cấu trúc thư mục của bạn tại chỗ, bạn có thể bắt đầu tập trung vào từng trang web máy chủ ảo riêng lẻ và nội dung bên trong trang web đó. Bắt đầu bằng cách tạo trang index.html cho trang web đầu tiên của bạn your_domain_1. Mở và tạo tệp index.html bằng trình soạn thảo văn bản ưa thích của bạn. Ví dụ này sử dụng nano:

  1. nano /var/www/your_domain_1/public_html/index.html

Trong tệp này, hãy tạo tệp HTML cho khách truy cập biết họ được kết nối với trang web nào:

/var/www/your_domain_1/public_html/index.html
<html>
  <head>
    <title>Welcome to your_domain_1!</title>
  </head>
  <body>
    <h1>Success! The your_domain_1 virtual host is working!</h1>
  </body>
</html>

Để lưu và đóng tệp ở dạng nano, hãy bắt đầu bằng cách nhấn CTRL + X. Nhấn Y khi được nhắc lưu tệp, sau đó nhấn ENTER khi bạn hoàn tất để thoát. Tiếp theo, sao chép tệp này để sử dụng làm cơ sở cho trang web thứ hai của bạn bằng cách nhập:

cp /var/www/your_domain_1/public_html/index.html /var/www/your_domain_2/public_html/index.html

Sau đó, mở tệp mới này và sửa đổi các phần thông tin có liên quan bằng trình soạn thảo văn bản của bạn như trước:

  1. nano /var/www/your_domain_2/public_html/index.html
/var/www/your_domain_2/public_html/index.html
<html>
  <head>
    <title>Welcome to your_domain_2!</title>
  </head>
  <body> <h1>Success! The your_domain_2 virtual host is working!</h1>
  </body>
</html>

Lưu và đóng tệp lại. Bây giờ bạn có một trang cho mỗi trang web mà bạn có thể sử dụng để kiểm tra cấu hình máy chủ ảo.

Bước 4: Tạo tệp máy chủ ảo mới

Tệp máy chủ ảo là tệp chỉ định cấu hình thực của máy chủ ảo của bạn và chỉ định cách máy chủ web Apache sẽ phản hồi với các yêu cầu miền khác nhau. Apache đi kèm với một tệp máy chủ ảo mặc định có tên 000-default.conf. Bạn có thể sao chép tệp này để tạo tệp máy chủ ảo cho từng tên miền của mình. Sao chép tệp cấu hình mặc định vào tên miền đầu tiên:

  1. sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/your_domain_1.conf

Lưu ý rằng cấu hình Ubuntu mặc định yêu cầu mỗi tệp máy chủ ảo phải kết thúc bằng .conf. Mở tệp mới trong trình soạn thảo văn bản ưa thích của bạn với đặc quyền root:

  1. sudo nano /etc/apache2/sites-available/your_domain_1.conf

Với các nhận xét bị xóa, tệp sẽ tương tự như sau:

/etc/apache2/sites-available/your_domain_1.conf
<VirtualHost *:80>
  ...
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
   ...
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Trong tệp này, hãy tùy chỉnh các mục cho tên miền đầu tiên của bạn và thêm một số chỉ thị bổ sung. Phần máy chủ ảo này phải trùng khớp với bất kỳ yêu cầu nào được thực hiện trên cổng 80, cổng HTTP mặc định. Trước tiên, hãy thay đổi chỉ thị ServerAdmin thành một email mà quản trị viên trang web có thể nhận email thông qua:

/etc/apache2/sites-available/your_domain_1.conf
ServerAdmin admin@your_domain_1

Sau đó, thêm 2 chỉ thị bổ sung. Đầu tiên, được gọi là ServerName: thiết lập tên miền cơ sở cho định nghĩa máy chủ ảo. Thứ hai, được gọi là ServerAlias: xác định các tên khác phải khớp như thể chúng là tên cơ sở. Điều này hữu ích để đối sánh các máy chủ bổ sung mà bạn đã xác định. Ví dụ: nếu bạn đặt lệnh ServerName thành example.com, bạn có thể xác định ServerAlias thành www.example.com và cả hai sẽ trỏ đến địa chỉ IP của máy chủ này. Thêm hai chỉ thị này vào tệp cấu hình của bạn sau dòng ServerAdmin:

/etc/apache2/sites-available/your_domain_1.conf
<VirtualHost *:80>
  ...
    ServerAdmin admin@your_domain_1
    ServerName   your_domain_1 
     ServerAlias   www.your_domain_1 
    DocumentRoot /var/www/html
    ...
</VirtualHost>

Tiếp theo, thay đổi vị trí tệp máy chủ ảo của bạn cho thư mục gốc (document root) cho tên miền này. Chỉnh sửa chỉ thị DocumentRoot để trỏ đến thư mục bạn đã tạo cho máy chủ này:

/etc/apache2/sites-available/your_domain_1.conf
DocumentRoot /var/www/your_domain_1/public_html

Dưới đây là một ví dụ về tệp máy chủ ảo với tất cả các điều chỉnh được thực hiện ở trên:

/etc/apache2/sites-available/your_domain_1.conf
<VirtualHost *:80>
  ...
    ServerAdmin admin@your_domain_1
    ServerName your_domain_1
   ServerAlias www.your_domain_1
    DocumentRoot /var/www/your_domain_1/public_html
    ...
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    ...
</VirtualHost>

Lưu và đóng tập tin.

Tạo tệp cấu hình thứ hai của bạn bằng cách sao chép tệp từ trang web máy chủ ảo đầu tiên của bạn:

  1. sudo cp /etc/apache2/sites-available/your_domain_1.conf /etc/apache2/sites-available/your_domain_2.conf

Mở tệp mới trong trình chỉnh sửa ưa thích của bạn:

  1. sudo nano /etc/apache2/sites-available/your_domain_2.conf

Bây giờ bạn cần sửa đổi tất cả các phần thông tin để tham chiếu đến tên miền thứ hai của mình. Khi bạn hoàn thành, nó sẽ trông như thế này:

/etc/apache2/sites-available/your_domain_2.conf
<VirtualHost *:80>
  ...
    ServerAdmin admin@your_domain_2
    ServerName your_domain_2
    ServerAlias www.your_domain_2
    DocumentRoot /var/www/your_domain_2/public_html
    ...
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    ...
</VirtualHost>

Lưu và đóng tệp khi bạn đã hoàn tất.

Bước 5: Bật tệp máy chủ ảo mới

Bây giờ bạn đã hoàn tất việc tạo các tệp máy chủ ảo của mình, bạn phải kích hoạt chúng. Apache đã bao gồm một số công cụ cho phép bạn làm điều này. Bạn sẽ sử dụng công cụ a2ensite để kích hoạt từng trang web của mình. Sử dụng các lệnh sau để kích hoạt các trang web máy chủ ảo của bạn:

  1. sudo a2ensite your_domain_1.conf
  2. sudo a2ensite your_domain_2.conf

Sẽ có đầu ra cho cả hai trang web, tương tự như ví dụ bên dưới, nhắc bạn tải lại máy chủ Apache của mình:

Output
Enabling site example.com. To activate the new configuration, you need to run: systemctl reload apache2

Trước khi tải lại máy chủ của bạn, hãy tắt trang web mặc định được xác định trong 000-default.conf bằng cách sử dụng lệnh a2dissite:

  1. sudo a2dissite 000-default.conf
Output
Site 000-default disabled. To activate the new configuration, you need to run: systemctl reload apache2

Tiếp theo, kiểm tra lỗi cấu hình:

  1. sudo apache2ctl configtest

Sẽ nhận được kết quả sau:

Output
. . . Syntax OK

Khi bạn hoàn tất, hãy khởi động lại Apache để những thay đổi này có hiệu lực.

  1. sudo systemctl restart apache2

Theo tùy chọn, bạn có thể kiểm tra trạng thái của máy chủ sau tất cả những thay đổi này bằng lệnh này:

  1. sudo systemctl status apache2

Máy chủ của bạn bây giờ sẽ được thiết lập để phục vụ 2 trang web. Nếu đang sử dụng tên miền thực, bạn có thể bỏ qua Bước 6 và chuyển sang Bước 7. Nếu bạn đang kiểm tra cấu hình cục bộ của mình, hãy làm theo Bước 6 để tìm hiểu cách kiểm tra thiết lập bằng máy tính cục bộ của bạn.

Bước 6: Thiết lập tệp máy chủ lưu trữ cục bộ (Có thể bỏ qua)

Nếu bạn không sử dụng tên miền thực mà thay vào đó đang sử dụng các miền mẫu, bạn vẫn có thể kiểm tra chức năng của các trang web máy chủ ảo của mình bằng cách tạm thời sửa đổi tệp máy chủ trên máy tính cục bộ của bạn. Điều này sẽ chặn mọi yêu cầu đối với các miền mà bạn đã định cấu hình và trỏ chúng đến Máy chủ Riêng Ảo (VPS) của bạn, giống như hệ thống DNS sẽ thực hiện nếu bạn đang sử dụng các miền đã đăng ký. Điều này sẽ chỉ hoạt động từ máy tính cục bộ của bạn và chỉ dành cho các mục đích thử nghiệm. Đảm bảo rằng bạn đang hoạt động trên máy tính cục bộ của mình cho các bước này chứ không phải máy chủ VPS của bạn. Bạn sẽ cần biết mật khẩu quản trị của máy tính hoặc nếu không thì phải là thành viên của nhóm quản trị. Nếu bạn đang sử dụng máy tính Mac hoặc Linux, hãy chỉnh sửa tệp cục bộ của bạn với các đặc quyền quản trị bằng cách nhập:

  1. sudo nano /etc/hosts

Nếu bạn đang sử dụng máy Windows, hãy mở Command Prompt và nhập:

  1. notepad %windir%\system32\drivers\etc\hosts

Các chi tiết bạn cần thêm là địa chỉ IP công cộng của máy chủ của bạn, tiếp theo là tên miền bạn muốn sử dụng để truy cập máy chủ đó. Sử dụng các tên miền có trong hướng dẫn này và thay thế địa chỉ IP máy chủ của bạn cho văn bản your_server_IP, tệp của bạn sẽ trông giống như sau:

/etc/hosts
127.0.0.1   localhost
127.0.1.1   guest-desktop
your_server_IP your_domain_1
your_server_IP your_domain_2

Điều này sẽ hướng bất kỳ yêu cầu nào cho 2 tên miền của bạn trên máy tính của bạn và gửi chúng đến máy chủ của bạn tại địa chỉ IP được chỉ định.

Lưu và đóng tập tin.

Bước 7: Kiểm tra kết quả

Bây giờ bạn đã thiết lập thành công các máy chủ ảo của mình. Bạn có thể kiểm tra kết quả bằng cách truy cập các tên miền bạn đã thiết lập cấu hình ở trên ngay tại trình duyệt web của mình:

http://your_domain_1

description imageBạn cũng có thể truy cập trang lưu trữ thứ hai của mình và xem tệp bạn đã tạo cho trang web thứ hai của mình:

your_domain_2

description imageNếu cả 2 trang web này hoạt động như mong đợi, bạn đã thiết lập cấu hình thành công 2 máy chủ ảo trên cùng một máy chủ.

Lưu ý: Nếu bạn đã điều chỉnh tệp máy chủ trên máy tính cục bộ của mình, như trong Bước 6 của hướng dẫn này, bạn có thể muốn xóa các dòng bạn đã thêm ngay bây giờ mà bạn đã xác minh rằng cấu hình của mình hoạt động. Điều này sẽ ngăn không cho tệp máy chủ của bạn bị lấp đầy bởi các mục không còn cần thiết.

Kết luận

Bây giờ bạn có một máy chủ duy nhất xử lý hai tên miền riêng biệt của mình. Bạn có thể mở rộng quy trình này bằng cách làm theo các bước chúng tôi đã nêu ở trên để thêm các máy chủ ảo bổ sung. Không có giới hạn phần mềm về số lượng tên miền mà Apache có thể xử lý, vì vậy hãy thoải mái tạo càng nhiều máy chủ ảo tùy theo khả năng xử lý của máy chủ.

00:00 / 00:00

Đăng nhận xét