Cấu hình VirtualHost trong ProFTPD

Máy chủ ảo (Virtual host hoặc Virtual server) là kỹ thuật giúp chạy nhiều máy chủ ảo trên 1 máy chủ vật lý nhằm mục đích phục vụ nhiều hơn 1 website, domain trên máy chủ vật lý đó.

FTP không hỗ trợ Virtual host dựa trên tên (phân biệt với nhau dựa trên tên miền). Tất cả các Virtual Host của FTP phân biệt dựa trên sự kết hợp IP/Port trên hệ thống. Nếu 1 máy chủ ProFTP vật lý chạy nhiều máy chủ ảo, thì mỗi máy chủ này phải chạy trên 1 port khác nhau.

Vd:

<VirtualHost   fpt.example.local>
    Port 21
</VirtualHost>
<VirtualHost   fpt.example.net>
    Port 22
</VirtualHost>

Nếu cả 2 máy chủ ảo trên đều chạy trên port 21, thì tất cả các truy cập FTP đến 2 tên miền ftp.example.localftp.example.net đều được chuyển cho máy chủ ảo được khai báo trước, trong trường hợp này là ftp.example.local.

Có 3 khu vực cấu hình trong file cấu hình của ProFTP là: <VirtualHost>, <Global>server config

<VirtualHost> được dùng để định nghĩa cấu hình cho 1 máy chủ FTP ảo cụ thể, liên kết với địa chỉ IP. Vd:

<VirtualHost 1.2.3.4>
     ...
</VirtualHost>

Chúng ta có thể sử dụng địa chỉ theo DNS như sau:

<VirtualHost ftp.example.local>
    ............................
</VirtualHost>

Trong trường này, khi ProFTPD chạy, nó sẽ phân giải tên miền trên ra địa chỉ IP tương ứng cho Virtual Host đó.

<Global> là nơi chứa các cấu hình chung cho toàn bộ hệ thống. Các khai báo trong <Global> sẽ được áp dụng xuống cho tất cả các <VirtualHost> được khai báo trong hệ thống, cũng như áp dụng cho khu vực “server config”

<Global>
    Umask        022
    RequireValidShell    off
</Global>

“server config” chứa các cấu hình riêng cho máy chủ ProFTP, những cấu hình trong phần này sẽ không được áp dụng trong <Global> và <VirtualHost>.

ServerName "ProFTPD server" 
ServerType standalone ...

Chúng ta kết thúc việc cấu hình VirtualHost trong ProFTPD tại đây. Chúc các bạn thành công!