Changing from Port 8080 to Port 80

September 1, 2015 45k views
Deployment DNS Linux Commands Ubuntu

OS : Ubuntu

My domain name requires port 8080 in the URL . I tried changing server.xml file in the Tomcat folder to port 80 . Then I did tomcat restart , but it did not work.

<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

Can you please let me know where I need to make the change.

Thanks.

7 comments
  • First thing you should do when debugging, is check your logs? What does it say? You get any error?
    You say: It did not work. What does not work,there are different ways something can't work..

  • I am unable to find Catalina.out file . I see only files like catalina.2015-08-28.log etc. Tried commands like find , this file does not exist.

    When i hit the URL , the webpage error is that , it is " Unable to Connect " .

    What is the process though ? Do i only need to change server.xml file which i have mentioned above ?

    Thanks for the support.

  • I performed the following operations , still I am port 80 is not listened to . Any help , much appreciated.

    Steps I : Changed the server.xml
    <Connector port="80" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" />

    Step 2 :
    Make port 80 available to authbind :
    touch /etc/authbind/byport/80
    chmod 500 /etc/authbind/byport/80

    Step 3 :
    create the file
    TOMCATHOME/bin/setenv.sh
    with the following content:
    CATALINA
    OPTS=”-Djava.net.preferIPv4Stack=true”

    Step 4:
    Change startup.sh:
    exec authbind –deep “$PRGDIR”/”$EXECUTABLE” start “$@”

    OLD: exec “$PRGDIR”/”$EXECUTABLE” start “$@”

    Thanks.

  • It's workable solution.
    Let the port 8080 by default in server.xml

    Run : sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

    This redirect traffic from port 80 to 8080 (default in tomcat) in Ubuntu 14.04 it is not possible to set the default port to 80 in server.xml.

    To make this persistent: sudo apt-get install iptables-persistent

    This package allows you to save iptables rules previously entered. Be sure to answered yes (save the current settings)

  • Thanks for the valuable post

  • Show 2 more comments
2 Answers

This question was answered by @mpatidar:

It's workable solution.
Let the port 8080 by default in server.xml

Run : sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

This redirect traffic from port 80 to 8080 (default in tomcat) in Ubuntu 14.04 it is not possible to set the default port to 80 in server.xml.

To make this persistent: sudo apt-get install iptables-persistent

This package allows you to save iptables rules previously entered. Be sure to answered yes (save the current settings)

View the original comment

  • hi,
    Without interfering iptables iam able to perform this task in ubuntu.But in centos/Redhat iam not able to find a solution without using iptables.Any help plz........

Guys, after a while trying to find a solution without interfering in iptables as suggested @arunm8489 , I found a solution. The solution proposed by @manandharbishes is ok but we need one more step by changing /etc/default/tomcat8
From: #AUTHBIND=no to AUTHBIND=yes

In the comments of this file, they say:

If you run Tomcat on port numbers that are all higher than 1023, then you do not need authbind. It is used for binding Tomcat to lower port numbers. (yes/no, default: no)

For you guys, this is the script I followed:

    $ nano /etc/tomcat8/server.xml
 change the port from 8080 to 80    
$ touch /etc/authbind/byport/80
$ chmod 500 /etc/authbind/byport/80
$ nano /usr/share/tomcat8/bin/setenv.sh
 CATALINAOPTS=”-Djava.net.preferIPv4Stack=true”
$ nano /usr/share/tomcat8/bin/startup.sh
 exec authbind –deep “$PRGDIR”/”$EXECUTABLE” start “$@”
$ nano /etc/default/tomcat8
 AUTHBIND=yes  

Thats it!

Have another answer? Share your knowledge.