Nginx cho phép xử lý cả HTTP và HTTPS trong cùng một serverkhối. Do đó, bạn không phải lặp lại các chỉ thị cho cả hai và có thể chuyển hướng đường dẫn bạn muốn bảo mật
server {
  listen 80 default_server;
  listen 443 ssl;
  ... ssl certificate and other configs ...
  location /user {
    if ($scheme = 'http') {
      rewrite ^ https://$http_host$request_uri? permanent;
    }
  }
  ... your basic configuration ...
}
Hãy chắc chắn không đặt ssl ondòng ở đó vì nó sẽ phá vỡ HTTP đơn giản.
Theo tùy chọn, bạn có thể chuyển hướng tất cả các yêu cầu khác từ HTTPS trở lại HTTP theo cùng một cách:
if ($scheme = 'https') {
  rewrite ^ http://$http_host$request_uri? permanent;
}
CẬP NHẬT : như Alexey Ten vui lòng chỉ ra trong phần bình luận, kiểm tra schemetừng yêu cầu không phải là một ý tưởng rất sáng sủa. Bạn nên làm theo cách khai báo cấu hình nginx của bạn. Trong trường hợp này, khai báo hai khối máy chủ với các chuyển hướng bằng cách locationdi chuyển logic chung sang một tệp riêng và includenó ở cả hai. Vì vậy, câu trả lời của GruffTech là tốt hơn.