Thứ ba, 22/04/2014 | 00:00 GMT+7

Cách thiết lập server ảo Apache trên Ubuntu 14.04 LTS

Web server Apache là cách phổ biến nhất để phục vụ nội dung web trên internet. Nó chiếm hơn một nửa số trang web đang hoạt động trên internet và cực kỳ mạnh mẽ và linh hoạt.

Apache chia chức năng và các thành phần của nó thành các đơn vị riêng lẻ có thể được tùy chỉnh và cấu hình độc lập. Đơn vị cơ bản mô tả một trang web hoặc domain riêng lẻ được gọi là virtual host .

Các chỉ định này cho phép administrator sử dụng một server để lưu trữ nhiều domain hoặc trang web ngoài một giao diện hoặc IP duy nhất bằng cách sử dụng cơ chế phù hợp. Điều này có liên quan đến bất kỳ ai muốn lưu trữ nhiều hơn một trang web trên một VPS duy nhất.

Mỗi domain được cấu hình sẽ hướng khách truy cập đến một folder cụ thể chứa thông tin của trang web đó, không bao giờ cho biết cùng một server 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à server của bạn có thể xử lý tải.

Trong hướng dẫn này, ta sẽ hướng dẫn bạn cách cài đặt server ảo Apache trên VPS Ubuntu 14.04. Trong quá trình này, bạn sẽ học cách cung cấp các nội dung khác nhau cho những khách truy cập khác nhau tùy thuộc vào domain họ đang yêu cầu.

Yêu cầu

Trước khi bắt đầu hướng dẫn này, bạn nên tạo một user không phải root như được mô tả trong các bước 1-4 tại đây.

Bạn cũng cần phải cài đặt Apache để thực hiện các bước này. Nếu bạn chưa làm như vậy, bạn có thể cài đặt Apache trên server của bạn thông qua apt-get :

sudo apt-get update sudo apt-get install apache2 

Sau khi các bước này hoàn tất, ta có thể bắt đầu.

Theo mục đích của hướng dẫn này, cấu hình của tôi sẽ tạo một server ảo cho example.com và một server khác cho test.com . Những điều này sẽ được tham chiếu trong suốt hướng dẫn, nhưng bạn nên thay thế các domain hoặc giá trị của riêng mình trong khi làm theo.

Để tìm hiểu cách cài đặt domain của bạn với DigitalOcean , hãy nhấp vào liên kết này. Nếu bạn không có sẵn domain để chơi, bạn có thể sử dụng các giá trị giả.

Ta sẽ hướng dẫn cách chỉnh sửa file server local của bạn sau này để kiểm tra cấu hình nếu bạn đang sử dụng giá trị giả. Điều này sẽ cho phép bạn kiểm tra cấu hình của bạn từ máy tính tại nhà, mặc dù nội dung của bạn sẽ không khả dụng thông qua domain cho những khách truy cập khác.

Bước một - Tạo cấu trúc folder

Bước đầu tiên mà ta sẽ thực hiện là tạo một cấu trúc folder chứa dữ liệu trang web mà ta sẽ phục vụ cho khách truy cập.

document root của ta (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 folder riêng lẻ trong folder /var/www . Ta sẽ tạo một folder ở đây cho cả hai server ảo mà ta định tạo.

Trong mỗi folder này , ta sẽ tạo một folder public_html chứa các file thực của ta . Điều này mang lại cho ta một số tính linh hoạt trong lưu trữ của ta .

Ví dụ, đối với các trang web của ta , ta sẽ tạo các folder của bạn như sau:

<pre>
sudo mkdir -p / var / www / <span class = “highlight”> example.com </span> / html công khai
sudo mkdir -p / var / www / <span class = “highlight”> test.com </span> / public
html
</pre>

Các phần màu đỏ thể hiện domain mà ta muốn cung cấp từ VPS của bạn .

Bước hai - Cấp quyền

Bây giờ ta có cấu trúc folder cho các file của bạn , nhưng chúng thuộc sở hữu của user root của ta . Nếu ta muốn regular user của bạn có thể sửa đổi các file trong folder web của ta , ta có thể thay đổi quyền sở hữu bằng cách thực hiện điều này:

<pre>
sudo chown -R $ USER: $ USER / var / www / <span class = “highlight”> example.com </span> / public html
sudo chown -R $ USER: $ USER / var / www / <span class = “highlight”> test.com </span> / public
html
</pre>

Biến $USER sẽ lấy giá trị của user mà bạn hiện đang đăng nhập như khi bạn nhấn “ENTER”. Bằng cách làm này, regular user của ta hiện sở hữu các folder con public_html nơi ta sẽ lưu trữ nội dung của bạn .

Ta cũng nên sửa đổi các quyền của bạn một chút đảm bảo rằng quyền truy cập đọc được phép vào folder web chung và tất cả các file và folder mà nó chứa để các trang có thể được phân phối chính xác:

sudo chmod -R 755 /var/www 

Web server của bạn bây giờ sẽ có các quyền cần thiết để cung cấp nội dung và user của bạn có thể tạo nội dung trong các folder cần thiết.

Bước 3 - Tạo các trang demo cho từng server ảo

Ta có cấu trúc folder của ta tại chỗ. Hãy tạo một số nội dung để phục vụ.

Ta chỉ để trình diễn, vì vậy các trang của ta sẽ rất đơn giản. Ta sẽ tạo một trang index.html cho mỗi trang web.

Hãy bắt đầu với example.com . Ta có thể mở index.html trong editor của bạn bằng lệnh :

<pre>
nano / var / www / <span class = “highlight”> example.com </span> /public_html/index.html
</pre>

Trong file này, hãy tạo một trang HTML đơn giản cho biết trang web mà nó được kết nối. Tệp của tôi trông như thế này:

<pre>
<html>
<head>
<title> Chào mừng bạn đến với <span class = “highlight”> Example.com </span>! </title>
</head>
<body>
<h1> Thành công! Server ảo <span class = “highlight”> example.com </span> đang hoạt động! </h1>
</body>
</html>
</pre>

Lưu file khi bạn hoàn tất.

Ta có thể sao chép file này để sử dụng làm cơ sở cho trang web thứ hai của bạn bằng lệnh :

<pre>
cp / var / www / <span class = “highlight”> example.com </span> / public html / index.html / var / www / <span class = “highlight”> test.com </span> / public html / index.html
</pre>

Sau đó, ta có thể mở file và sửa đổi các phần thông tin liên quan:

<pre>
nano / var / www / <span class = “highlight”> test.com </span> /public_html/index.html
</pre>
<pre>
<html>
<head>
<title> Chào mừng bạn đến với <span class = “highlight”> Test.com </span>! </title>
</head>
<body>
<h1> Thành công! Server ảo <span class = “highlight”> test.com </span> đang hoạt động! </h1>
</body>
</html>
</pre>

Lưu file này. Đến đây bạn có các trang cần thiết để kiểm tra cấu hình server ảo.

Bước 4 - Tạo file server ảo mới

Tệp server ảo là các file chỉ cấu hình thực của server ảo của ta và chỉ định cách web server Apache sẽ phản hồi với các yêu cầu domain khác nhau.

Apache đi kèm với một file server ảo mặc định có tên 000-default.conf mà ta có thể sử dụng làm điểm khởi động. Ta sẽ sao chép nó để tạo một file server ảo cho từng domain của ta .

Ta sẽ bắt đầu với một domain , cấu hình nó, sao chép nó cho domain thứ hai và sau đó thực hiện một vài điều chỉnh cần thiết. Cấu hình Ubuntu mặc định yêu cầu mỗi file server ảo phải kết thúc bằng .conf .

Tạo file server ảo đầu tiên

Bắt đầu bằng cách sao chép file cho domain đầu tiên:

<pre>
sudo cp /etc/apache2/sites-available/000-default.conf / etc / apache2 / sites-available / <span class = “highlight”> example.com </span> .conf
</pre>

Mở file mới trong editor với quyền root:

<pre>
sudo nano / etc / apache2 / sites-available / <span class = “highlight”> example.com </span> .conf
</pre>

Tệp sẽ trông giống như thế này (Tôi đã xóa các comment ở đây để làm cho file dễ tiếp cận hơn):

<pre>
<VirtualHost *: 80>
Administrator web ServerAdmin @ localhost
DocumentRoot / var / www / html
ErrorLog $ {APACHE LOG DIR} /error.log
CustomLog $ {APACHE LOG DIR} /access.log kết hợp
</VirtualHost>
</pre>

Như bạn thấy , không có nhiều thứ ở đây. Ta sẽ tùy chỉnh các mục ở đây cho domain đầu tiên của ta và thêm một số chỉ thị bổ sung. Phần server ảo này trùng 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.

Đầu tiên, ta cần thay đổi chỉ thị ServerAdmin thành một email mà administrator trang web có thể nhận email thông qua.

<pre>
ServerAdmin <span class = “highlight”> admin@example.com </span>
</pre>

Sau đó, ta cần thêm hai chỉ thị. Đầu tiên, được gọi là ServerName , cài đặt domain cơ sở phù hợp với định nghĩa server ảo này. Đây rất có thể sẽ là domain của bạn.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 cho các server phù hợp mà bạn đã xác định, như www :

<pre>
ServerName <span class = “highlight”> example.com </span>
ServerAlias <span class = “highlight”> www.example.com </span>
</pre>

Điều duy nhất ta cần thay đổi đối với file server ảo cơ bản là vị trí của root tài liệu cho domain này. Ta đã tạo folder ta cần, vì vậy ta chỉ cần thay đổi chỉ thị DocumentRoot để phản ánh folder ta đã tạo:

<pre>
DocumentRoot / var / www / <span class = “highlight”> example.com </span> / public_html
</pre>

Tổng cộng, file virtualhost của ta sẽ trông như thế này:

<pre>
<VirtualHost *: 80>
ServerAdmin <span class = “highlight”> admin@example.com </span>
ServerName <span class = “highlight”> example.com </span>
ServerAlias <span class = “highlight”> www.example.com </span>
DocumentRoot / var / www / <span class = “highlight”> example.com </span> / public html
ErrorLog $ {APACHE
LOG DIR} /error.log
CustomLog $ {APACHE
LOG_DIR} /access.log kết hợp
</VirtualHost>
</pre>

Lưu và đóng file .

Sao chép server ảo đầu tiên và tùy chỉnh cho domain thứ hai

Bây giờ ta đã cài đặt file server ảo đầu tiên, ta có thể tạo file thứ hai bằng cách sao chép file đó và điều chỉnh nó nếu cần.

Bắt đầu bằng cách sao chép nó:

<pre>
sudo cp / etc / apache2 / sites-available / <span class = “highlight”> example.com </span> .conf / etc / apache2 / sites-available / <span class = “highlight”> test.com </ span> .conf
</pre>

Mở file mới với quyền root trong editor :

<pre>
sudo nano / etc / apache2 / sites-available / <span class = “highlight”> test.com </span> .conf
</pre>

Đến đây bạn cần sửa đổi tất cả các phần thông tin để tham chiếu đến domain thứ hai của bạn . Khi bạn hoàn thành, nó có thể trông giống như sau:

<pre>
<VirtualHost *: 80>
ServerAdmin <span class = “highlight”> admin@test.com </span>
ServerName <span class = “highlight”> test.com </span>
ServerAlias <span class = “highlight”> www.test.com </span>
DocumentRoot / var / www / <span class = “highlight”> test.com </span> / public html
ErrorLog $ {APACHE
LOG DIR} /error.log
CustomLog $ {APACHE
LOG_DIR} /access.log kết hợp
</VirtualHost>
</pre>

Lưu file khi bạn hoàn tất.

Bước 5 - Bật file server ảo mới

Bây giờ ta đã tạo các file server ảo của bạn , ta phải kích hoạt chúng. Apache bao gồm một số công cụ cho phép ta làm điều này.

Ta có thể sử dụng công cụ a2ensite để kích hoạt từng trang web của ta như sau:

<pre>
sudo a2ensite <span class = “highlight”> example.com </span> .conf
sudo a2ensite <span class = “highlight”> test.com </span> .conf
</pre>

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

sudo service apache2 restart 

Rất có thể bạn sẽ nhận được một thông báo có nội dung tương tự như:

 * Restarting web server apache2  AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message 

Đây là một thông báo vô hại và không ảnh hưởng đến trang web của ta .

Bước sáu - Cài đặt file server lưu trữ local (Tùy chọn)

Nếu bạn chưa sử dụng domain thực mà bạn sở hữu để kiểm tra quy trình này và thay vào đó đang sử dụng một số domain mẫu, ít nhất bạn có thể kiểm tra chức năng của quy trình này bằng cách tạm thời sửa đổi file hosts trên máy tính local của bạn.

Điều này sẽ chặn mọi yêu cầu đối với các domain mà bạn đã cấu hình và trỏ chúng đến server 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 domain đã đăng ký. Tuy nhiên, điều này sẽ chỉ hoạt động trên máy tính của bạn và đơn giản là hữu ích cho mục đích thử nghiệm.

Đảm bảo rằng bạn đang hoạt động trên máy tính local của bạn cho các bước này chứ không phải server VPS của bạn. Bạn cần biết password quản trị của máy tính hoặc nói cách khác là thành viên của group 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 file local của bạn với các quyền quản trị bằng lệnh :

sudo nano /etc/hosts 

Nếu bạn đang sử dụng máy Windows, bạn có thể tìm thấy hướng dẫn về cách thay đổi file server của bạn tại đây.

Các chi tiết bạn cần thêm là địa chỉ IP công cộng của server VPS của bạn, sau đó là domain bạn muốn sử dụng để truy cập VPS đó.

Đối với các domain mà tôi đã sử dụng trong hướng dẫn này, giả sử rằng địa chỉ IP VPS của tôi là 111.111.111.111 , tôi có thể thêm các dòng sau vào cuối file server của bạn :

<pre>
127.0.0.1 localhost
127.0.1.1 máy tính khách
111.111.111.111 <span class = “highlight”> example.com </span>
111.111.111.111 <span class = “highlight”> test.com </span>
</pre>

Điều này sẽ hướng bất kỳ yêu cầu nào cho example.comtest.com trên máy tính của ta và gửi chúng đến server của ta tại 111.111.111.111 . Đây là những gì ta muốn nếu ta thực sự không phải là chủ sở hữu của các domain này để kiểm tra các server ảo của ta .

Lưu và đóng file .

Bước 7 - Kiểm tra kết quả của bạn

Đến đây bạn đã cấu hình các server ảo của bạn , bạn có thể kiểm tra cài đặt của bạn một cách dễ dàng bằng cách truy cập các domain bạn đã cấu hình trong trình duyệt web của bạn :

<pre>
http: // <span class = "highlight"> example.com </span>
</pre>

Bạn sẽ thấy một trang trông như thế này:

Ví dụ  server  lưu trữ ảo Apache

Tương tự như vậy, nếu bạn có thể truy cập trang thứ hai của bạn :

<pre>
http: // <span class = “highlight”> test.com </span>
</pre>

Bạn sẽ thấy file bạn đã tạo cho trang web thứ hai của bạn :

Kiểm tra  server  ảo Apache

Nếu cả hai trang web này hoạt động tốt, bạn đã cấu hình thành công hai server ảo trên cùng một server .

Nếu bạn đã điều chỉnh file server của máy tính gia đình của bạn , bạn có thể cần xóa các dòng bạn đã thêm bây giờ mà bạn đã xác minh cấu hình của bạn hoạt động. Điều này sẽ ngăn không cho file server của bạn bị lấp đầy bởi các mục không thực sự cần thiết.

Nếu bạn cần truy cập lâu dài, hãy cân nhắc mua domain cho mỗi trang web bạn cần và cài đặt nó để trỏ đến server VPS của bạn .

Kết luận

Nếu bạn đã làm theo, bây giờ bạn sẽ có một server duy nhất xử lý hai domain riêng biệt. Bạn có thể mở rộng quy trình này theo các bước ta đã nêu ở trên để tạo thêm các server ảo.

Không có giới hạn phần mềm về số lượng domain mà Apache có thể xử lý, vì vậy hãy thoải mái tạo ra càng nhiều càng tốt để server của bạn có thể xử lý.

<div class = “author”> Bởi Justin Ellingwood </div>


Tags:

Các tin liên quan

Cách cài đặt Apache Tomcat 7 trên Ubuntu 14.04 qua Apt-Get
2014-04-18
Cách thiết lập server ảo Apache trên Ubuntu 13.10
2014-04-16
Cách chạy Django với mod_wsgi và Apache với môi trường Python virtualenv trên VPS Debian
2014-04-10
Cách di chuyển cấu hình Apache của bạn từ cú pháp 2.2 sang 2.4.
2014-03-31
Cách sử dụng server Apache HTTP dưới dạng Reverse-Proxy bằng cách sử dụng extension mod_proxy
2014-02-14
Cách cài đặt và cấu hình Apache Tomcat trên server Debian
2014-01-07
Cách cài đặt và quản lý Apache Qpid
2013-12-30
Cách chuyển từ web server Apache sang Nginx trên VPS Ubuntu
2013-12-17
Cách cài đặt Apache mod_spdy trên VPS Debian 7
2013-12-12
Cách thiết lập ứng dụng Rails 4 với Apache và Passenger trên CentOS 6
2013-12-06