saya bertanya-tanya apakah nginx dapat menangani permintaan http dan https di port yang sama . [*]
Inilah yang saya coba lakukan. Saya menjalankan server web (lighttpd) yang menangani permintaan http, dan program C yang melayani bagian tertentu dari pohon dokumen melalui https. Kedua proses ini berjalan di server yang sama.
Pada level firewall, saya hanya dapat memiliki satu port forwarding traffic ke server ini . Jadi yang ingin saya lakukan adalah mengatur nginx di server ini sehingga ia mendengarkan permintaan pada satu port dan kemudian:
A) mengarahkan ulang semua permintaan http://myhost.com/ * sehingga mereka pergi ke localhost: 8080 (di mana lighttpd mendengarkan)
B) jika pengguna meminta URL yang dimulai dengan, misalnya, https: // myhost.com/app, itu mengirimkan permintaan itu ke localhost: 8008 (program C). Perhatikan bahwa dalam hal ini, lalu lintas antara browser jarak jauh dan nginx harus dienkripsi.
Apakah Anda pikir ini mungkin? Jika ya, bagaimana itu bisa dilakukan?
Saya tahu cara melakukan ini menggunakan dua port yang berbeda. Tantangan yang saya hadapi adalah melakukan ini hanya dengan satu port (sayangnya, saya tidak memiliki kendali atas konfigurasi firewall pada lingkungan khusus ini, jadi itu adalah batasan yang tidak bisa saya hindari). Menggunakan teknik seperti membalikkan port fowarding melalui ssh untuk mem-bypass firewall tidak akan berhasil, karena ini harus bekerja untuk pengguna jarak jauh yang memiliki tidak lebih dari browser web dan tautan internet.
Jika ini di luar kemampuan nginx, apakah Anda tahu ada produk lain yang dapat memenuhi persyaratan ini? (Sejauh ini saya tidak berhasil dalam pengaturan ini dengan lighttpd dan pound). Saya juga lebih suka menghindari Apache (walaupun saya bersedia menggunakannya jika itu satu-satunya pilihan).
Terima kasih sebelumnya, Alex
[*] Untuk lebih jelasnya, saya berbicara tentang menangani koneksi HTTP terenkripsi dan tidak terenkripsi melalui port yang sama. Tidak masalah jika enkripsi dilakukan melalui SSL atau TLS.