NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
17/05/2023
Lượt xem

Cách chuyển hướng www sang non-www với Nginx trên Centos 7

17/05/2023
10 phút đọc
Lượt xem

Đánh giá

5/5 - (135 bình chọn)

Người dùng có thể truy cập vào website thông qua cả tên miền con www và tên miền gốc (không có www). Đồng nghĩa với người dùng sẽ có chung một trải nghiệm khi truy cập vào www.my-website.commy-website.com. Gợi ý tốt nhất cho SEO là chọn tên miền mà bạn muốn và cho web server chuyển hướng người dùng truy cập từ tên miền khác đến tên miền đó. Trong hướng dẫn này, bạn sẽ cấu hình chuyển hướng 301 bằng Nginx trên CentOS 7.

Giới thiệu về chuyển hướng www sang non-www với Nginx trên Centos 7

Có nhiều loại chuyển hướng HTTP nhưng lựa chọn tốt nhất là sử dụng chuyển hướng 301. Chuyển hướng này cho biết “Trang web mà bạn yêu cầu đã chuyển đến một URL khác vĩnh viễn.

Giới thiệu về chuyển hướng www sang non-www với Nginx trên Centos 7
Giới thiệu về chuyển hướng www sang non-www với Nginx trên Centos 7

Hãy truy cập vào đó thay vì truy cập vào URL cũ”. Khi nhận được mã phản hồi HTTP 301 từ máy chủ, trình duyệt sẽ gửi một yêu cầu thứ hai đến URL mới được cung cấp bởi máy chủ. Trang web sẽ hiển thị nhưng đây là trang web với URL mới, người dùng sẽ không biết rằng họ đã bị chuyển hướng.

Chuẩn bị

Để thực hiện được các bước trong bài viết này, trước tiên bạn cần:

  • Quyền superuser (user trong nhóm wheel) trên máy chủ đang chạy Nginx
  • Nginx được cài đặt và cấu hình để phục vụ trang web của bạn. (Tìm hiểu về cách cài đặt Nginx trên CentOS 7 tại đây)
  • Một tên miền đã đăng ký. Bạn có thể sử dụng bất kỳ nhà cung cấp DNS nào (bao gồm nhà đăng ký của bạn) để lưu trữ bản ghi tên miền. Nếu sử dụng nhà đăng ký của bạn thì hãy nhớ chỉ định đến đến các nameserver của nhà cung cấp. 

Đầu tiên, bạn sẽ phải cấu hình các bản ghi DNS.

Nếu bạn cần tên miền và máy chủ Centos để cài đặt Nginx, hãy tham khảo đăng ký tên miền và VPS tại Vietnix. Vietnix hiện đang cung cấp dịch vụ đăng ký tên miền và cho thuê các gói VPS hỗ trợ hệ điều hành Centos với nhiều cấu hình và chi phí hợp lý giúp bạn dễ dàng lựa chọn gói dịch vụ phù hợp với nhu cầu sử dụng gồm: VPS Giá Rẻ, VPS Phổ Thông, VPS Cao Cấp, VPS GPU và VPS NVMe.

Thuê VPS của Vietnix giúp bạn yên tâm cài đặt, triển khai các ứng dụng nhờ tốc độ cao, ổn định và bảo mật an toàn. Liên hệ ngay với Vietnix để được tư vấn chi tiết.

Bước 1 – Cấu hình bản ghi DNS

Trước tiên, bạn cần chỉ định cả hai trang www.my-website.commy-website.com đến máy chủ chạy Nginx. Trong bài viết giả sử tên miền của bạn là my-website.com. Hãy thay thế bằng tên miền của bạn vào phần nào xuất hiện my-website.com. Tiếp theo, tạo một bản ghi DNS A cho mỗi tên trỏ đến địa chỉ IP của máy chủ Nginx.

Mở trang web console của nhà cung cấp DNS.

Trong form Add a domain, hãy nhập tên miền bạn đã đăng ký vào trường văn bản và click vào Add Domain. Trang cho tên miền mới sẽ hiển thị. Bạn có thể xem, thêm và xóa các bản ghi cho tên miền.

Trong Create new record, nhập “@” vào trường văn bản HOSTNAME. Đây là một ký tự đặc biệt cho biết bạn đang thêm một bản ghi cho tên miền gốc. Trong trường WILL DIRECT TO, nhập địa chỉ IPv4 công cộng máy chủ của bạn và click vào Create Record. (Không cần thay đổi TTL.)

Đối với bản ghi DNS thứ hai, bạn có thể sử dụng một bản ghi CNAME thay cho bản ghi A. Một bản ghi CNAME là một alias trỏ đến một tên khác thay vì trỏ đến địa chỉ IP. Bạn có thể tạo một bản ghi CNAME để chuyển hướng www.my-website.com đến my-website.com.

Bất kỳ yêu cầu HTTP cho tiền tố www sẽ chuyển hướng đến máy chủ của bạn vì bạn vừa tạo bản ghi A cho tên miền gốc. Nhưng để đơn giản, bạn chỉ cần tạo một bản ghi A khác giống như bản ghi đầu tiên. Sau đó nhập “www” vào trường HOSTNAME, nhập địa chỉ IP công cộng của máy chủ vào trường WILL DIRECT TO.

Khi đã tạo cả hai bản ghi, bạn sẽ thấy kết quả như bên dưới:

Kết quả sau khi tạo 2 bản ghi DNS
Kết quả sau khi tạo 2 bản ghi DNS

Sau khi đã có hai bản ghi, các yêu cầu web cho my-website.comwww.my-website.com sẽ đến được máy chủ Nginx. Tiếp theo là bước cấu hình máy chủ.

Bước 2 – Cấu hình chuyển hướng trong Nginx

Ở phần chuẩn bị, bạn đã cấu hình trang web của mình trong Nginx. Không cần quan tâm block server trang web của bạn ở file /etc/nginx/nginx.conf chính hay trong file riêng. Quan trọng là bạn có một block server được cấu hình với chỉ thị server_name được đặt thành my-website.com và / hoặc www.my-website.com. Cho dù server_name của bạn chứa một hay cả hai tên, bây giờ là lúc lựa chọn tên chứa cả trang web.

Mở file chứa cấu hình trang web của bạn (ví dụ: /etc/nginx/conf.d/my-website.com.conf) bằng vi hoặc bất cứ trình chỉnh sửa nào và tìm chỉ thị server_name:

sudo vi /etc/nginx/conf.d/my-website.com.conf
server {
    . . .
    server_name my-website.com www.my-website.com
    . . .
}

Nếu bạn muốn chuyển hướng từ www.my-website.com sang my-website.com, hãy xóa www.my-website.com khỏi dòng server_name. Sau đó lưu và thoát khỏi tệp.

Sau đó, hãy tạo một file cấu hình Nginx mới có tên /etc/nginx/conf.d/www.my-website.com.conf (hoặc /etc/nginx/conf.d/my-website.com.conf nếu đó là tên bạn đang muốn chuyển hướng). Bạn có thể đặt tên file tùy ý nhưng tên file phải kết thúc bằng .conf:

sudo vi /etc/nginx/conf.d/www.my-website.com.conf

Thêm block server sau vào file, thay my-website.com bằng tên miền của bạn:

server {
    server_name www.my-website.com;
    return 301 $scheme://my-website.com$request_uri;
}

Nếu bạn đang chuyển hướng my-website.com sang tên miền con www thì chỉ cần đặt my-website.com trên dòng server_namewww.my-website.com ở URL ở dòng kế tiếp.

Lưu và thoát khi hoàn thành.

Cấu hình Nginx này gửi lại một chuyển hướng 301 đối với bất kỳ client nào yêu cầu www.my-website.com. Client được định hướng truy cập my-website.com. Chuyển hướng bảo toàn yêu cầu URI, vì vậy yêu cầu đến http://www.my-website.com/login.php sẽ được chuyển hướng đến http://my-website.com/login.php.

Chú ý: Block server trên không chứa chỉ thị listen. Như được đề cập trong bài viết, bất kỳ block server nào không có chỉ thị listen sẽ lắng nghe trên 0.0.0.0:80 (cổng 80 trên tất cả các giao diện). Tuy nhiên, nếu máy chủ Nginx của bạn có nhiều địa chỉ IP hoặc trang web lắng nghe trên cổng khác cổng 80. Bạn có thể cần thêm một chỉ thị listen để chỉ ra địa chỉ IP và cổng cụ thể. Sử dụng cùng giá trị cho listen mà block server chính của trang web bạn sử dụng.

Trước khi thay đổi, hãy kiểm tra xem cấu hình Nginx của bạn có lỗi không:

sudo nginx -t

Nếu không có lỗi cú pháp thì cấu hình sẽ bình thường.

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

Khởi động lại Nginx để áp dụng rule chuyển hướng mới:

sudo systemctl restart nginx

Trước khi truy cập www.my-website.com trong trình duyệt, hãy thực hiện một yêu cầu bằng curl trên máy chủ hoặc máy của bạn (nếu curl đã được cài đặt ở máy bạn):

curl -IL http://www.my-website.com

Tùy chọn -I cho biết curl chỉ hiển thị header từ phản hồi của máy chủ. Tùy chọn -L cho biết curl thực hiện mọi chuyển hướng từ máy chủ bằng cách tự động thực hiện yêu cầu thứ hai. Lần này là chuyển hướng đến URL được đưa ra trong header Location. Vì bạn đã cấu hình chuyển hướng 301, curl sẽ thực hiện hai yêu cầu và bạn sẽ chỉ thấy tiêu đề của hai phản hồi:

Output
HTTP/1.1 301 Moved Permanently
Server: nginx/1.20.1
Date: Thu, 08 Dec 2022 19:24:44 GMT
Content-Type: text/html
Content-Length: 169
Connection: keep-alive
Location: http://my-website.com

HTTP/1.1 200 OK
Server: nginx/1.20.1
Date: Thu, 08 Dec 2022 19:24:44 GMT
Content-Type: text/html
Content-Length: 57
Last-Modified: Thu, 01 Dec 2022 22:10:57 GMT
Connection: keep-alive
ETag: "63892671-39"
Accept-Ranges: bytes

Trong phản hồi 301 (Moved Permanently) đối với yêu cầu ban đầu đến http://www.my-website.com. Chú ý đến header cuối cùng: Location: http://my-website.com. Phản hồi thứ hai là từ yêu cầu theo sau curl đến http://my-website.com. Nếu trang web của bạn hoạt động tốt, máy chủ sẽ trả lời với 200 (OK).

Cuối cùng, hãy truy cập vào http://www.my-website.com trên trình duyệt web của bạn. Trang web của bạn sẽ xuất hiện như bình thường, nhưng hãy nhìn lại thanh địa chỉ. Phần “www” đã bị thiếu khỏi URL. Hầu hết người dùng sẽ không bao giờ chú ý đến phần này. Vì vậy họ sẽ có trải nghiệm như khi dùng http://www.my-website.com nếu yêu cầu http://my-website.com.

Vietnix với hơn 10 năm hoạt động đã đồng hành với hơn 50.000 khách hàng cá nhân và doanh nghiệp. Đến năm 2022 Vietnix vinh dự được nhận giải “Thương hiệu Việt Nam xuất sắc nhất”. Đồng thời, với tỷ lệ 97% khách hàng sau khi sử dụng dịch vụ tại Vietnix đã giới thiệu đến bạn bè, đồng nghiệp cũng là một minh chứng cho chất lượng dịch vụ luôn đáp ứng được mọi nhu cầu của khách hàng.

Nhanh tay đăng ký Vietnix VPS ngay và trải nghiệm dịch vụ ổn định, tốc độ cao, hỗ trợ nhanh chóng với nhiều ưu đãi hấp dẫn nhất.

  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
  • Hotline: 1800 1093 – 07 088 44444
  • Email: sales@vietnix.com.vn

Lời kết

Trong bài viết này, bạn đã thêm hai bản ghi DNS cho trang web và cấu hình Nginx chuyển hướng một tên miền phụ đến tên miền bạn muốn. Bây giờ trang web của bạn có thể truy cập từ hai tên miền. Chỉ với bốn dòng cấu hình Nginx bạn đã có thể cải thiện thứ hạng kết quả tìm kiếm trang web của mình. Hy vọng bạn đã học được thêm được kiến thức hữu ích từ bài viết này.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG