Nginx Chuyển hướng HTTP sang HTTPS

Nginx Redirect Http Https



Nginx, được phát âm là Engine x, là một web hiệu suất cao dựa trên Linux miễn phí, mã nguồn mở và là một máy chủ proxy ngược chịu trách nhiệm quản lý và xử lý tải của các trang web lớn nhất trên internet. Nginx là một công cụ chuyển hướng mạnh mẽ có thể được định cấu hình dễ dàng trên hệ thống của bạn để chuyển hướng lưu lượng truy cập web HTTP kém an toàn hoặc không được mã hóa đến máy chủ web HTTPS được mã hóa và bảo mật. Nếu bạn là quản trị viên hệ thống hoặc nhà phát triển, thì bạn đang sử dụng máy chủ Nginx thường xuyên.

Trong bài viết này, chúng tôi sẽ hướng dẫn cách chuyển hướng lưu lượng truy cập web từ HTTP sang HTTPS an toàn trong Nginx.







Các phản hồi và yêu cầu được trả về dưới dạng bản rõ trong HTTP, trong khi HTTPS sử dụng SSL / TLS để mã hóa giao tiếp giữa hệ thống máy khách và máy chủ. Do đó, do nhiều lý do, HTTPS được sử dụng qua HTTP, được liệt kê dưới đây:



  • Tất cả dữ liệu giữa máy khách-máy chủ theo cả hai hướng đều được mã hóa. Tuy nhiên, bất kỳ ai cũng không thể truy cập thông tin nhạy cảm nếu bị chặn.
  • Khi bạn đang sử dụng HTTPS, Google Chrome và các trình duyệt khác sẽ coi miền trang web của bạn là an toàn.
  • Phiên bản HTTPS cải thiện hiệu suất trang web được chỉ định của bạn bằng giao thức HTTP / 2.
  • Nếu bạn phân phối miền trang web của mình qua HTTPS, thì trang web sẽ xếp hạng tốt hơn trên Google, vì nó ưu tiên cho tất cả các trang web được bảo mật HTTPS.

Ưu tiên chuyển hướng lưu lượng truy cập HTTP sang HTTPS trong Nginx trong một khối máy chủ riêng biệt cho từng phiên bản trang web. Bạn cũng nên tránh chuyển hướng lưu lượng truy cập bằng cách sử dụng nếu hướng có thể gây ra hành vi bất thường của máy chủ.



Chuyển hướng tất cả lưu lượng truy cập từ HTTP sang HTTPS

Thêm các thay đổi sau vào tệp cấu hình Nginx để chuyển hướng tất cả lưu lượng từ HTTP sang phiên bản HTTPS:





người phục vụ {
nghe 80default_server;
tên máy chủ _;
trở lại 301https: //$ host$ request_uri;
}

Dưới đây, chúng tôi đã trình bày chi tiết từng thuật ngữ được đề cập ở trên:

Nghe 80 default_server - điều này sẽ báo hiệu hệ thống của bạn bắt tất cả lưu lượng HTTP trên Cổng 80.
Server_name _ - nó là miền sẽ khớp với bất kỳ tên máy chủ nào.



Trả về 301 https: // $ host $ request_uri - điều này cho các công cụ tìm kiếm của bạn biết rằng nó sẽ chuyển hướng nó vĩnh viễn. Nó chỉ định rằng biến $ host giữ các tên miền.

Sau khi thay đổi cài đặt cấu hình, bạn cần tải lại các dịch vụ Nginx trên hệ thống của mình. Vì vậy, hãy tải lại các dịch vụ Nginx của bạn bằng cách sử dụng lệnh sau:

$sudosystemctl tải lại nginx

Chuyển hướng HTTP sang phiên bản HTTPS cho miền được chỉ định trong Nginx

Sau khi cài đặt chứng chỉ SSL trên miền của bạn, bạn sẽ có hai tùy chọn khối máy chủ cho miền này. Một khối dành cho phiên bản HTTP đang lắng nghe trên cổng 80 và phiên bản thứ hai là HTTPS trên cổng 443. Tuy nhiên, để chuyển hướng một miền trang web duy nhất từ ​​HTTP sang HTTPS, bạn cần mở cấu hình Nginx. Bạn có thể tìm tệp cấu hình này trong thư mục / etc / nginx / sites-available. Trong mọi trường hợp, nếu bạn không tìm thấy tệp này, bạn có thể tìm kiếm nó bằng /etc/nginx/nginx.conf, / usr / local / nginx / conf hoặc / usr / local / etc / nginx, sau đó thực hiện sau những thay đổi trong tệp này:

người phục vụ {
nghe 80;
tên máy chủ domain-name.com www.domain-name.com;
trở lại 301https://domain-name.com$ request_uri;
}

Hãy hiểu từng dòng mã ở trên.
Listen 80 - sử dụng cổng 80, máy chủ sẽ lắng nghe tất cả các kết nối đến miền được chỉ định.

Server_name domain-name.com www.domain-name.com - nó chỉ định các tên miền. Vì vậy, hãy thay thế nó bằng tên miền trang web của bạn mà bạn muốn chuyển hướng.

Trả lại 301 https: //domain-name.com$request_uri - nó chuyển lưu lượng truy cập sang phiên bản HTTPS của trang web. Biến $ request_uri được sử dụng cho URI yêu cầu ban đầu đầy đủ, trong đó các đối số cũng được bao gồm.

Sử dụng phương pháp sau, bạn có thể chuyển hướng lưu lượng truy cập đến phiên bản HTTPS www sang phiên bản không có www của trang web. Bạn nên tạo chuyển hướng trong một khối máy chủ riêng biệt cho cả phiên bản không có www và www.

Hãy giải thích bằng một ví dụ. Nếu bạn muốn chuyển hướng các yêu cầu www HTTPS sang phiên bản không phải www, thì bạn thực hiện theo cấu hình sau:

người phục vụ {
nghe 80;
tên máy chủ domain-name.com www.domain-name.com;
trở lại 301https://domain-name.com$ request_uri;
}
người phục vụ {
nghe 443 ssl http2;
tên máy chủ www.domain-name.com;
#. . . mã khác
trở lại 301https://domain-name.com$ request_uri;
}
người phục vụ {
nghe 443 ssl http2;
tên máy chủ domain-name.com;

#. . . mã khác
}

Thay thế tên miền bằng miền của bạn, chẳng hạn như www.linuxhint.com.

Phần kết luận

Chúng tôi đã thảo luận về cách chuyển hướng lưu lượng truy cập từ phiên bản HTTP sang HTTPS trên máy chủ Nginx. Bằng cách thay đổi cài đặt tệp cấu hình Nginx, bạn có thể dễ dàng chuyển hướng lưu lượng truy cập sang HTTPS cho một miền cụ thể hoặc chuyển hướng tất cả. Phương pháp này, mà chúng tôi đã đề cập trong bài viết này, có thể giúp bạn làm cho trang web của mình an toàn hơn bằng cách thực hiện bất kỳ thay đổi nào trong trải nghiệm người dùng.