Tôi đã tự hỏi nếu nginx có thể xử lý các yêu cầu http và https trên cùng một cổng . [*]
Đây là những gì tôi đang cố gắng làm. Tôi đang chạy một máy chủ web (lighttpd) xử lý các yêu cầu http và chương trình C phục vụ một phần cụ thể của cây tài liệu thông qua https. Hai quá trình này chạy trên cùng một máy chủ.
Ở cấp độ tường lửa, tôi chỉ có thể có một cổng chuyển tiếp lưu lượng truy cập vào máy chủ này . Vì vậy, những gì tôi muốn làm là thiết lập nginx trên máy chủ này để nó lắng nghe các yêu cầu trên một cổng duy nhất và sau đó:
A) chuyển hướng tất cả các yêu cầu http://myhost.com/ * để chúng truy cập localhost: 8080 (nơi lighttpd đang lắng nghe)
B) nếu người dùng yêu cầu URL bắt đầu bằng, ví dụ: https: // myhost.com/app, nó sẽ gửi yêu cầu đó đến localhost: 8008 (chương trình C). Lưu ý rằng trong trường hợp này, lưu lượng giữa trình duyệt từ xa và nginx phải được mã hóa.
Bạn có nghĩ rằng điều này có thể có thể? Nếu có, làm thế nào nó có thể được thực hiện?
Tôi biết làm thế nào để làm điều này bằng cách sử dụng hai cổng khác nhau. Thách thức mà tôi gặp phải là thực hiện điều này chỉ với một cổng duy nhất (thật không may, tôi không có quyền kiểm soát cấu hình tường lửa trên môi trường cụ thể này, vì vậy đó là hạn chế mà tôi không thể tránh được). Sử dụng các kỹ thuật như đảo ngược cổng thông qua ssh để vượt qua tường lửa sẽ không hoạt động, bởi vì điều này sẽ hoạt động cho người dùng từ xa không có gì nhiều hơn trình duyệt web và liên kết internet.
Nếu điều này vượt quá khả năng của nginx, bạn có biết sản phẩm nào khác có thể đáp ứng yêu cầu này không? (cho đến nay tôi đã không thành công trong việc thiết lập điều này với lighttpd và pound). Tôi cũng muốn tránh Apache (mặc dù tôi sẵn sàng sử dụng nó nếu đó là lựa chọn duy nhất có thể).
Cảm ơn trước, Alex
[*] Để rõ ràng, tôi đang nói về việc xử lý các kết nối HTTP được mã hóa và không được mã hóa thông qua cùng một cổng. Việc mã hóa được thực hiện thông qua SSL hoặc TLS không thành vấn đề.