Is it bad practice to run a web application server directly on port 80/443

shadesco asked:

I am hosting a web app on amazon aws, using an ec2 instance.

On that instance i will be running only one application. using glassfish v3.0.1

I do not want to run the app using :

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

I just want to use :

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

so i changed the http-listener-1 and http-listener-2 on glassfish to run on ports (respectively) 80 and 443.

Is this considered bad practice? i’m a software engineer and I usually do not deal with server admin stuff thus not too experienced in those things.

thanks for any guidance.

My answer:


You could do it, but you are going to run into performance problems first, and security problems second.

Having a “normal” high performance web server answering on port 80/443 and proxying requests to your app server is the way things are usually done. The “normal” server can handle things like static images, JavaScript and CSS much more easily than GlassFish, improving performance. It also will have numerous options for access control, caching, etc.

The Internet is full of sample configurations for setting up a web server (e.g. nginx or Apache) in front of GlassFish, Jetty, Tomcat, or whatever app server you want to use. Depending on whose EC2 AMI you use, one of these web servers may already be pre-configured and ready to go.


View the full question and answer on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.