Apakah ini praktik buruk untuk menjalankan server aplikasi web secara langsung pada port 80/443

8

Saya hosting aplikasi web di amazon aws , menggunakan contoh EC2.

Pada contoh itu saya hanya akan menjalankan satu aplikasi. menggunakan glassfish v3.0.1

Saya tidak ingin menjalankan aplikasi menggunakan:

www.mydomain.com:8080 or www.mydomain.com:8181 

Saya hanya ingin menggunakan:

www.mydomain.com or https://www.mydomain.com

jadi saya mengubah http-listener-1 dan http-listener-2 pada glassfish untuk dijalankan pada port (masing-masing) 80 dan 443 .

Apakah ini dianggap praktik buruk? Saya seorang insinyur perangkat lunak dan saya biasanya tidak berurusan dengan hal-hal admin server sehingga tidak terlalu berpengalaman dalam hal-hal itu.

terima kasih atas bimbingannya.

shadesco
sumber
Jangan ikat layanan aplikasi web langsung ke port 80 atau 443. Melakukannya menyiratkan bahwa Anda menjalankan layanan yang menghadap publik sebagai root, yang tidak pernah merupakan ide yang baik.
Skyhawk

Jawaban:

13

Anda bisa melakukannya, tetapi Anda akan mengalami masalah kinerja terlebih dahulu, dan masalah keamanan kedua.

Memiliki server web berkinerja tinggi "normal" yang menjawab pada port 80/443 dan mem-proxy permintaan ke server aplikasi Anda adalah cara yang biasanya dilakukan. Server "normal" dapat menangani hal-hal seperti gambar statis, JavaScript dan CSS jauh lebih mudah daripada GlassFish, meningkatkan kinerja. Ini juga akan memiliki banyak opsi untuk kontrol akses, caching, dll.

Internet penuh dengan contoh konfigurasi untuk menyiapkan server web (misalnya nginx atau Apache) di depan GlassFish, Jetty, Tomcat, atau server aplikasi apa pun yang ingin Anda gunakan. Bergantung pada EC2 AMI yang Anda gunakan, salah satu server web ini mungkin sudah dipra-konfigurasi dan siap digunakan.

Michael Hampton
sumber
3
+1 untuk menerangi manfaat pintu depan khusus. Mari kita tambahkan: peningkatan rolling, penyeimbangan muatan, dan khususnya dengan AWS rangkaian mainan lengkap: Elastic Load Balancer, Elastic Beanstalk, CloudFront, dll.
khoxsey