Thiết lập rules trong Nginx

Khi sử dụng Nginx, để rewrite url hoặc redirect bạn cần thiết đặt thông qua các rules. Các rules này sẽ được thiết lập trong tệp tin cấu hình tương ứng với website mà bạn muốn thiết lập.

Bài viết này mình sẽ hướng dẫn các bạn thiết lập một số các rules cơ bản do mình tự sưu tầm và vẫn đang sử dụng hàng ngày.

1. Thiết lập chỉ thị “proxy_pass” phụ thuộc vào dấu gạch chéo (“/”)

Trường hợp 1: có dấu “/”

location /some_dir/ {
    proxy_pass http://some_server/;
}

Trường hợp 1: không có dấu “/”

location /some_dir/ {
    proxy_pass http://some_server;
}

Với trường hợp 1, một yêu cầu đến http://your_server/some_dir/some_subdir/some_file sẽ được pass tới http://some_server/some_subdir/some_file. Nghĩa là lúc này , /some_dir/ sẽ được thay thế bởi / và đường dẫn yêu cầu sẽ được thay đổi từ /some_dir/some_subdir/some_file sang /some_subdir/some_file.

Với trường hợp 2, một yêu cầu cũng như trên nhưng sẽ được pass tới http://some_server/some_dir/some_subdir/some_file. Nghĩa là đường dẫn gốc ban đầu được giữ nguyên.

=> Hai trường hợp này có thể được áp dụng trong trường hợp bạn muốn khi người dùng truy xuất qua một thư mục thì sẽ proxy_pass sang một đường link khác có thể đặt cùng hoặc khác máy chủ với đường link gốc truy cập.

2. Thiết lập redirect domain hiện tại sang domain khác 

Redirect http://domain1.com và toàn bộ đường dẫn thuộc về domain này sang domain mới http://domain2.com


rewrite ^(.*) http://domain2.com$1 permanent;

3. Thiết lập redirect từ www.domain.com sang domain.com và ngược lại

– Chuyển từ www.domain.com sang domain.com kèm theo cả đường dẫn và tham số của url

server {
      server_name www.domain.com;
      rewrite ^(.*) $scheme://domain.com$1 permanent;
}

– Chuyển từ domain.com sang www.domain.com kèm theo cả đường dẫn và tham số của url

server {
      server_name domain.com;
      rewrite ^(.*) $scheme://www.domain.com$1 permanent;
}

4. Thiết lập rewrite đường dẫn cho website chạy wordpress trên nginx

Bạn muốn thiết lập đường dẫn kiểu như http://domain.com/bai-viet/xin-chao-moi-nguoi trên cho website wordpress khi chạy qua Nginx thì bạn cần thêm vào cấu hình dưới đây


if (!-e $request_filename) {       
      rewrite ^.*$ /index.php last; 
}

5. Thiết lập rules dựa theo url 

location ~* /(admin|author)$ {       
        try_files $uri $uri/ @something; 
} 

Cấu hình trên đây sẽ kiểm tra khi người dùng truy cập url có đường dẫn http://domain.com/admin
hoặc http://domain.com/author thì sẽ thực hiện các lệnh được khai báo.

(to be continued…)

Nguồn: tổng hợp từ internet

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *