Thêm website trên VPS nginx CentOS với Virtual Hosts

Sau một thời gian học hỏi mày mò là làm xong trang web wordpress thì mình có nhu cầu đưa lên mạng để khoe với bạn bè.

Để đơn giản nhất bạn chỉ cần mua hosting và domain, sau đó upload code lên hosting là xong. Mọi thứ quá tiện lợi. Tuy vậy do mình đã từng có một cái VPS chạy CentOS, đã cài nginx, php các thứ nên sẽ chạy web ngon lành.

Nhưng, VPS đã có một tên miền tuanitpro.com đang trỏ tới rồi. Làm sao cho 2, nhiều domain cùng chạy trên 1 VPS với các nội dung trang web khác nhau.

Virtual Hosts được sử dụng để giúp cho một VPS có thể chạy được nhiều website khác nhau.

Trên nginx có một khái niệm là Server Blocks, giúp chạy nhiều website trên cùng VPS, tuỳ nhiên thuật ngữ Virtual Hosts quen thuộc hơn, nên dùng nó.

Tạo thư mục chứa website

Đầu tiên, đi tạo folder chứa code của website mới.

Ví dụ mình sẽ tạo thư mục ở folder /home/ nhé. Thay noithatrongviet.com bằng domain của bạn.

mkdir -p /home/www/noithatrongviet.com/public_html

Gán quyền

Đảm bảo cho website hoạt động bình thường

chown -R nginx:nginx /home/www/noithatrongviet.com/public_html

Cài đặt Virtual Hosts

Thêm file cấu hình .conf cho domain mới

nano /etc/nginx/conf.d/noithatrongviet.com.conf

Sử dụng đoạn code sau:

#
# noithatrongviet.com configuration
#
server {
    listen       80;
    server_name example.com;

    location / {
        root   /home/www/noithatrongviet.com/public_html;
        index index.php  index.html index.htm;
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }

    error_page  404              /404.html;
    location = /404.html {
        root   /home/www/noithatrongviet.com/public_html;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /home/www/noithatrongviet.com/public_html;
    }

    # pass the PHP scripts to FastCGI server
    #
    location ~ \.php$ {
        root           /home/www/noithatrongviet.com/public_html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

Lưu lại và thoát.

Test thử domain

Giờ mình sẽ tạo thử file index.php để test thử domain noithatrongviet.com có hoạt động đúng không nhé.

nano /home/www/noithatrongviet.com/public_html/index.php

Thêm đoạn code html vào file

<?php
phpinfo();
?>

Lưu và thoát.

Bây giờ bạn hãy test thử với link http://noithatrongviet.com, nếu kết quả hiện ra như bên dưới là thành công.

Cài đặt thêm Virtual Hosts

Để add thêm nhiều website nữa, bạn có thể lặp đi lặp lại bước trên

Khởi động lại Nginx là tất cả các website sẽ hoạt động.

Published by

tuanitpro

Tôi là Lê Thanh Tuấn, và tôi chia sẻ những điều mình cho rằng nó là thú vị, hay giúp ích cho bạn!

One thought on “Thêm website trên VPS nginx CentOS với Virtual Hosts”

Leave a Reply