Thứ Sáu, Tháng Chín 17, 2021

Cách sử dụng Nginx Redirect để chuyển hướng truy cập

0
Chia sẻ
2
Lượt xem

Cách sử dụng Nginx Redirect để chuyển hướng truy cập

Nginx (phát âm là engine-x) là một web server HTTP có mã nguồn mở hiệu suất cao. Nó hoạt động như một proxy ngược hoặc proxy POP3/IMAP. Đây là web server phổ biến thứ ba và nổi tiếng với hiệu suất nâng cao, dễ sử dụng; cấu hình ổn định và tiêu tốn tối thiểu tài nguyên. Đó là lý do tại sao trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách sử dụng Nginx redirect để chuyển hướng traffic theo các mục tiêu khác nhau.

Theo Datanyze, Nginx chiếm 32% thị phần trên thị trường web server. Nó hỗ trợ rất nhiều trang web nổi tiếng như Github, Netflix, CloudFlare, Hulu, Airbnb, Hulu, WordPress và nhiều trang web khác.

Nginx Redirect trên Linux

Khả năng chuyển tiếp URL của trang web đến một địa chỉ hoặc một nơi khác dựa trên tiêu chí riêng là tính năng thiết yếu của web server Nginx. Redirect Nginx rất đơn giản và dễ cài đặt. Thông thường người dùng chọn một trang có xếp hạng SEO tốt. Chẳng hạn như chuyển từ CMS sang nền tảng khác. Điều này sẽ thay đổi hoàn toàn phần URL. Vì vậy, để giữ cho trang hiện tại ở vị trí SERP tốt, bạn có thể định tuyến URL cũ đến trang mới.

Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn tạo hai loại Nginx redirect: vĩnh viễn và tạm thời. Hãy nhớ cài đặt Nginx trên VPS của bạn trước.

Giải thích về Nginx tạm thời và vĩnh viễn

Redirects tạm thời mang lại lợi ích nếu vị trí trang cần thay đổi từ vị trí này sang vị trí tạm thời khác. Redirects sẽ phản hồi lại mã 302 để chỉ định dịch chuyển tạm thời của trang.

Nếu trang web đang được bảo trì, redirects tạm thời được dùng để thông báo cho người dùng rằng trang web này hiện không khả dụng. Ví dụ khác, khi bạn thực hiện redirect tạm thời của một trang không hoàn chỉnh; bạn cần liên kết trang đó đến nơi khác hoặc đến trang chính:

Visitor–> Website Page–> Website is under maintenance

Mặt khác, redirect Nginx vĩnh viễn sẽ báo cho trình duyệt web về liên kết vĩnh viễn trang hoặc tên miền cũ với một vị trí hoặc tên miền mới. Để đánh dấu sự thay đổi này, redirect sẽ phản hồi mã 301 để chỉ định chuyển động vĩnh viễn của trang. Các loại redirects này rất hữu ích khi người dùng muốn thay đổi tên miền và không còn muốn truy cập trình duyệt.

Ví dụ: khi bạn muốn thay đổi tên miền trang web hoặc tạo trang mới thay thế trang cũ:

Visitor–> Click www.devisers.in/home -> Redirected to www. devisers. in/home1

Redirect trang trong Nginx

 Nhớ rằng bạn cần truy cập VPS của mình trước thông qua SSH. Nếu gặp rắc rối, hãy xem lại hướng dẫn PuTTY.

Trong Nginx, hầu hết redirects có thể thực hiện với tính năng viết lại. Đây là tính năng mặc định và có sẵn trên bản cài đặt của Nginx, và có thể tạo ra cả hai loại Nginx redirect – vĩnh viễn và tạm thời. Ở dạng đơn giản, có tối thiểu hai trường hợp, là URL cũ và URL mới.

Redirect các trang đến vị trí tạm thời hoặc vĩnh viễn trên web server Nginx thật đơn giản và dễ dàng. Ở chỗ /etc/nginx/sites-enabled/default, dán mã code sau đây, đồng thời thay đổi các biến cho phù hợp với nhu cầu của bạn:

Location path_pattern {
       rewrite ^/oldURL$ https://www.domainone.com/newURL redirect;
}

Nếu bạn muốn redirect trang này sang liên kết khác một cách vĩnh viễn, hãy dùng “permanent” thay cho “redirect” trên các lệnh ở trên. Bên cạnh đó, path_parent thường là /index.html.

Nginx Redirect một tên miền

Để redirect tên miền sang tên miền khác, dùng lệnh dưới đây trong terminal:

server {
      listen 80;
      hostname devisers.in www.devisers.in;
      rewrite ^ http://www.devisers.com$request_uri? permanent;
}

Ở đây chúng tôi sử dụng hai tên miền. Tên miền mà bạn muốn redirect – www.devisers.in và tên miền mới – www.devisers.com

Redirect Nginx từ HTTP sang HTTPS (SSL)

HTTP và HTTPS sử dụng các cổng khác nhau – HTTP cổng 80 và HTTPS cổng 443. DÙng HTTPS sẽ lợi thế hơn vì nó bảo vệ bạn khỏi các cuộc tấn công của MITM nhằm chiếm quyền điều khiển phiên làm việc. Hãy nhớ rằng, để phương thức này hoạt động, bạn cần phải thiết lập SSL. Vì vậy, để bảo vệ tất cả thông tin được gửi giữa bạn và khách truy cập, redirect tất cả các yêu cầu từ HTTP sang HTTPS sẽ có ích. Do đó, chúng ta có thể thêm sửa đổi này vào cùng một tệp:

server {
listen 80 default_server;
server_name _;
return 301 https://$host$request_uri;
}

Giờ thì tất cả lưu lượng truy cập cho server mặc định HTTP sẽ redirects đến HTTPS.

Nginx Redirect sang các trang web cụ thể

Sẽ cần thiết nếu bạn dùng nhiều trang web hoặc apps khác nhau và chỉ muốn redirect một trang web duy nhất. Làm theo các bước sau đây:

server { 
listen 80; 
server_name devisers.in;
     return 301 https://devisers.in$request_uri; 
}

Ở đây, chúng tôi đang redirect trang web http://www.devisers.in sang https://www.devisers.in

Redirect từ www sang không-có-www

Nhiều lúc bạn muốn khách truy cập vào tên miền đơn giản của trang web như devisers.in thay vì www.devisers.in. Mặc dù có nhiều tùy chọn để redirect từ www sang không-có-www trong Nginx, đây là một trong những cách dễ làm:

server {
    server_name www.devisers.in;
    return 301 $scheme://devisers.in$request_uri;
}

Quan trọng: Đây là Redirect vĩnh viễn hoặc “Redirect 301”.

Khởi động lại web server Nginx để thực hiện bằng lệnh:

sudo systemctl restart Nginx

Nếu muốn chuyển hướng từ không www sang www, chỉ cần thay thế URL trang web được đề cập trong lệnh trên. Thay thế www.devisers.in bằng devisers.in và ngược lại.

Tóm lại

Nginx là một trong những web server mạnh và dễ sử dụng nhất, cho phép thực hiện redirect tạm thời và vĩnh viễn như mô tả ở trên.

Bây giờ bạn đã biết cách redirect Nginx từ HTTP sang HTTPS, từ www sang không www hoặc ngược lại. Bạn cần đảm bảo redirect một cách chính xác, vì nếu không sẽ ảnh hưởng đến thứ hạng tìm kiếm của bạn. Với sự trợ giúp của redirects chính xác, bạn có thể tận dụng các trang web hiện tại trong quá trình thay đổi cấu trúc trang được yêu cầu.

Chúng tôi hy vọng hướng dẫn Nginx Redirect này có thể giúp ích cho bạn! Hẹn gặp lại trong bài viết tiếp theo.

Nguồn: Hostinger

Bài viết liên quan