Android

Chuyển hướng http sang https trong nginx

Hướng dẫn cấu hình SSL trên Web Server NGINX

Hướng dẫn cấu hình SSL trên Web Server NGINX

Mục lục:

Anonim

Trong hướng dẫn này, chúng tôi sẽ giải thích cách chuyển hướng lưu lượng HTTP sang HTTPS trong Nginx.

Nginx phát âm là engine xv là một máy chủ proxy ngược và mã nguồn hiệu suất cao, mã nguồn mở miễn phí, chịu trách nhiệm xử lý tải của một số trang web lớn nhất trên Internet.

Không giống như HTTP, nơi các yêu cầu và phản hồi được gửi và trả lại trong bản rõ, HTTPS sử dụng TLS / SSL để mã hóa giao tiếp giữa máy khách và máy chủ.

Có nhiều lợi ích khi sử dụng HTTPS qua HTTP, chẳng hạn như:

  • Tất cả các dữ liệu được mã hóa theo cả hai hướng. Do đó, thông tin nhạy cảm không thể được đọc nếu bị chặn. Google Chrome và tất cả các trình duyệt phổ biến khác sẽ đánh dấu trang web của bạn là an toàn.HTTPS cho phép bạn sử dụng giao thức HTTP / 2, giúp cải thiện đáng kể hiệu suất trang web. Google ưu tiên các trang web HTTPS. Trang web của bạn sẽ xếp hạng tốt hơn nếu được phục vụ qua

Phương pháp ưa thích để chuyển hướng HTTP sang HTTPS trong Nginx là định cấu hình một khối máy chủ riêng cho từng phiên bản của trang web. Bạn nên tránh chuyển hướng lưu lượng sử dụng lệnh if, vì nó có thể gây ra hành vi không thể đoán trước của máy chủ.

Chuyển hướng HTTP sang HTTPS trên mỗi trang web

Để chuyển hướng một trang web đến HTTPS, hãy mở tệp cấu hình miền và thực hiện các thay đổi sau:

server { listen 80; listen:80; server_name linuxize.com www.linuxize.com; return 301 https://linuxize.com$request_uri; }

Hãy chia nhỏ dòng mã theo từng dòng:

  • listen 80 - Khối máy chủ sẽ lắng nghe các kết nối đến trên cổng 80 cho miền được chỉ định. server_name linuxize.com www.linuxize.com - Chỉ định tên miền của khối máy chủ. Hãy chắc chắn rằng bạn thay thế nó bằng tên miền của bạn. return 301 - Chuyển hướng lưu lượng truy cập đến phiên bản HTTPS của trang web. Biến $request_uri là URI yêu cầu ban đầu đầy đủ bao gồm cả các đối số.

Thông thường, bạn cũng sẽ muốn chuyển hướng phiên bản HTTPS www của trang web sang không phải www hoặc ngược lại. Cách được đề xuất để thực hiện chuyển hướng là tạo một khối máy chủ riêng cho cả phiên bản www và không www.

Ví dụ: để chuyển hướng các yêu cầu www của HTTPS sang không phải www, bạn sẽ sử dụng cấu hình sau:

server { listen 80; listen:80; server_name linuxize.com www.linuxize.com; return 301 https://linuxize.com$request_uri; } server { listen 443 ssl http2; server_name www.linuxize.com; #… other code return 301 https://linuxize.com$request_uri; } server { listen 443 ssl http2; server_name linuxize.com; #… other code }

Chuyển hướng tất cả các trang web sang HTTPS

Nếu tất cả các trang web được lưu trữ trên máy chủ được định cấu hình để sử dụng HTTPS và bạn không muốn tạo một khối máy chủ HTTP riêng cho mỗi trang web, bạn có thể tạo một khối máy chủ HTTP bắt tất cả. Khối này sẽ chuyển hướng tất cả các yêu cầu HTTP đến các khối HTTPS thích hợp.

Để tạo một khối HTTP bắt tất cả sẽ chuyển hướng khách truy cập đến phiên bản HTTPS của trang web, hãy mở tệp cấu hình Nginx và thực hiện các thay đổi sau:

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

Hãy phân tích từng dòng mã:

  • listen 80 default_server - Đặt khối máy chủ này làm khối mặc định (bắt tất cả) cho tất cả các miền chưa từng có. server_name _ - _ là một tên miền không hợp lệ không bao giờ khớp với bất kỳ tên miền thực nào. return 301 - Chuyển hướng lưu lượng truy cập đến khối máy chủ HTTPS tương ứng với mã trạng thái 301 (Đã di chuyển vĩnh viễn). Biến $host giữ tên miền của yêu cầu.

Ví dụ: nếu khách truy cập mở http://example.com/page2 trong trình duyệt, Nginx sẽ chuyển hướng yêu cầu đến https://example.com/page2 .

Nếu có thể, hãy ưu tiên tạo chuyển hướng trên cơ sở mỗi tên miền thay vì chuyển hướng HTTP sang HTTPS toàn cầu.

Phần kết luận

Khi bạn đã cài đặt chứng chỉ SSL trên trang web của mình, bạn nên chuyển hướng lưu lượng HTTP sang

Trong Nginx, cách ưa thích để chuyển hướng HTTP sang HTTPS là tạo một khối máy chủ riêng và thực hiện chuyển hướng 301.

nginx