Hướng dẫn cài đặt và cấu hình Subdomain trên Nginx CentOS 7

Bài viết này sẽ hướng dẫn cách chi tiết cách cài đặt và cấu hình subdomain trên Nginx CentOS 7. Hãy tham khảo và cùng thực hiện ngay với Blog Kdata nhé.

Cài đặt Nginx CentOS 7

Bước 1: Cài đặt Epel Repo

$ sudo yum install epel-release

Bước 2: Cài đặt Nginx

$ sudo yum install nginx

Bước 3: Khởi động Nginx

$ sudo systemctl start nginx

Nếu bạn đang bật Firewall thì hãy chạy lệnh sau để cho phép khởi chạy giao thức HTTP và HTTPS

sudo firewall-cmd --permanent --zone=public --add-service=http

sudo firewall-cmd --permanent --zone=public --add-service=https

sudo firewall-cmd --reload

Khởi động dịch vụ Nginx

$ sudo systemctl enable nginx

Từ giờ khi truy cập vào domain name hoặc địa chỉ IP, bạn sẽ nhìn thấy trang index mặc định của Nginx.

Hướng dẫn cài đặt và cấu hình Subdomain trên Nginx CentOS 7

Các lệnh cơ bản khi thao tác với Nginx

Khởi động Nginx

$ sudo systemctl start nginx

Tắt Nginx

$ sudo systemctl stop nginx

Restart Nginx

$ sudo systemctl restart nginx

Kiểm tra trạng thái của Nginx

$ sudo systemctl status nginx

Kiểm tra file config Nginx

$ sudo nginx -t

Cấu hình cơ bản cho Nginx

Trước tiên bạn hãy di chuyển đến thư mục cấu hình của Nginx trên CentOS.

$ cd /etc/nginx

Ta cùng xem file default config của Nginx:

$ cat nginx.conf.default

........................................

include /etc/nginx/conf.d/*.conf;




server {

listen       80 default_server;

listen       [::]:80 default_server;

server_name  _;

root         /usr/share/nginx/html;




# Load configuration files for the default server block.

#include /etc/nginx/default.d/*.conf;




location / {

}




error_page 404 /404.html;

location = /40x.html {

}




error_page 500 502 503 504 /50x.html;

location = /50x.html {

}

........................................

include /etc/nginx/conf.d/*.conf;  Gọi tới những file .conf chứa những câu lệnh cấu hình riêng của chúng ta.

listen :Cổng mạng mà ta cần sử dụng.

server_name : Domain name của chúng ta.

Nếu bạn đang cấu hình trên local, hãy thêm domain local tại file hosts trong thư mục etc.

Di chuyển tới thư mục etc

$ cd /etc/

Chỉnh sửa file hosts:

$ sudo nano hosts

Thêm domain local của chúng ta:

127.0.0.1 kdata.com

::1       kdata.com

127.0.0.1 cloud.kdata.com

::1       cloud.kdata.com

root: địa chỉ thư mục project mà ta muốn gọi tới. Mặc định nó sẽ gọi tới file index.html. Trong thư mục đó nếu ta muốn hiển thị xuất hiện ra file mà ta chỉ định, ta chỉ cần khai báo tên file đó dưới câu lệnh root.

root /var/www/html/duongtiendat/;

index index.php;

Cấu hình subdomain trên Nginx

Ví dụ lấy domain và Subdomain lần lượt là:

Kdata.com

Cloud.kdata.com

Bước 1: Chuẩn bị project

Chuẩn bị 2 thư mục project để dùng cho domain, subdomain tại /var/www/html/kdata và /var/www/html/my_service

Nếu bạn chưa có sẵn project nào thì có thể tạo 2 file index.html cơ bản để test.

Bước 2: Cấu hình domain

Ta di chuyển vào thư mục /etc/nginx/conf.d, thư mục này sẽ chứa các file config của chúng ta.

Chúng ta sẽ tạo một file config domain có tên là kdata.com.conf

Lưu ý rằng các file config phải luôn được định dạng .conf

File config của bạn sẽ có nội dung như sau:

server {

## Your website name goes here.

server_name kdata.com www.kdata.com;

## Your only path reference.

root /var/www/html/kdata/;

## This should be in your http block and if it is, it's not needed here.

index index.php;




location = /favicon.ico {

log_not_found off;

access_log off;

}




location = /robots.txt {

allow all;

log_not_found off;

access_log off;

}




location / {

# This is cool because no php is touched for static content.

# include the "?$args" part so non-default permalinks doesn't break when using query string

try_files $uri $uri/ /index.php?$args;

}




location ~ \.php$ {

#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

include fastcgi.conf;

fastcgi_intercept_errors on;

fastcgi_pass 127.0.0.1:9000;

}




location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {

expires max;

log_not_found off;

}

Bước 3: Cấu hình Subbdomain

Tạo file config subdomain có tên là cloud.kdata.com.conf

server {

listen       80;

server_name  cloud.kdata.com;




location / {

root /var/www/html/my_resume;

index  index.php index.html index.htm;

}




error_page   500 502 503 504  /50x.html;

location = /50x.html {

root   html;

}

}

Bước 4: Hoàn tất config

Dùng lệnh dưới đây để kiểm tra lại xem các file config vừa rồi có dính lỗi nào không.

$ sudo nginx -t

Nếu lệnh trả về như dưới đây thì bạn đã thành công:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

Và giờ restart Nginx để cập nhật những tùy chỉnh mới nhất

$ sudo systemctl restart nginx

Vậy là đã config xong, bạn hãy truy cập domain và subdomain để xem nhé. Chúc bạn làm theo bài hướng dẫn cài đặt và cấu hình Subdomain trên Nginx CentOS 7 này thành công!