Bagaimana saya bisa memaksa setiap pengguna untuk menggunakan hanya satu nomor port unik di Node.js?

0

Jadi saya telah menyiapkan NGINX untuk melayani situs web statis per pengguna di GNU / Linux Debian 8, menggunakan konvensi penamaan berikut: http://domain/~username. Folder web publik setiap pengguna terletak di direktori home masing-masing, dan di situlah mereka juga diharapkan untuk menyimpan proyek Node.js mereka.

Masalah

Ini semua baik dan bagus, namun, bagaimana saya bisa mencegah pengguna yang berbeda memulai proyek yang digunakan bertabrakan nomor port di domain yang sama? Atau lebih tepatnya, bagaimana saya bisa memaksa setiap pengguna untuk menggunakan hanya satu nomor port unik di Node.js? Atau apakah saya perlu? Bisakah instance pengguna Node.js ditangkap, entah bagaimana, dan kemudian diterjemahkan menjadi sesuatu yang mengikuti konvensi penamaan di atas? Jika ya, bagaimana caranya?

Contoh: Jika pengguna JSmith membuat situs web menggunakan Node.js dan menjalankannya, situs web tersebut harus dipublikasikan www.example.com/~jsmith tidak peduli apa pengaturan domain atau port lain yang digunakan JSmith dalam aplikasi Node.js-nya.

Kebman
sumber

Jawaban:

0

Node.js umumnya bertindak sebagai server HTTP sendiri, bukan? Jadi jika mereka semua menjalankan proyek node.js mereka pada server Ubuntu yang sama, dan dengan asumsi mereka tidak semua memiliki root privs, maka mereka akan membuka port listener TCP dalam rentang port sementara (49152-65536) pada IP server itu alamat). Tumpukan TCP / IP kernel Linux Ubuntu akan memastikan tidak ada dua proses aktif yang dapat membuka port yang sama secara bersamaan. Untuk terhubung ke instance aplikasi node.js mereka, mereka harus terhubung http://www.example.com:port/ (dimana Pelabuhan adalah port apa pun yang mereka bisa buka).

Spiff
sumber
Terima kasih atas masukannya. Sayangnya, itu tidak akan berhasil, karena itu akan mengenai atau tidak untuk pengguna saya, dan yang paling penting, untuk server saya. Saya bertanya-tanya, apakah firewall terbalik mungkin melakukannya, dengan port preset unik terbuka untuk setiap pengguna, untuk penggunaan spesifik itu. Saya mungkin juga bisa membalikkan proxy NGINX dengan regex pengguna, meskipun saya tidak yakin bagaimana saya bisa mengkonfigurasinya untuk memiliki port spesifik pengguna.
Kebman