I still don't see how the number of concurrent sessions is related to
the port number.

The default ports for Tomcat are 8080 and 8443.

For huge websites, usually you have a load balancer as a front-end
anyway. You then get the capability to distribute the workload on more
than one instance of Tomcat and/or servers, so, sticking on a single
port isn't desirable since many instances on a single server cannot
run on the same port. You get the capability to eliminate any
single-point of failure as well as getting the capability to implement
a non-stop environment making a Tomcat cluster.
-----------------
Daniel Savard


2016-03-19 15:40 GMT-04:00 Lyallex <lyal...@gmail.com>:
> <Sigh!>
>
> On 19 March 2016 at 19:19, Daniel Savard <daniel.sav...@gmail.com> wrote:
>> I see what you were trying to achieve, however I don't see much
>> interest in that.
>
> Really, I've been running a successful commercial web site for the
> last 4 years using Tomcat as a standalone web server
> and servlet container using exactly this solution. 1000 concurrent
> sessions pose no problem
> I mentioned this in my first post, sorry if you missed it.
>
>> 1) Obviously, if you were expecting systemd to solve that problem, you
>> were wrong and it is a sane behavir of systemd to not allow that
>> neither
>
> No, you misunderstood. I was trying to start jsvc from a systemd service file
> Please read more carefully.I never suggested that systemd would solve
> the problem
>
>> 2) Your solution to your problem is lying on jsvc alone.
>> 3) I believe is bad security practice to insist to bind on privileged
>> ports for process that don't need that level of privilege.
>>
>> Btw, even if you switch to another user to run the code, you actually
>> are binding to port 80 as root.
>>
>> Maybe you can explain us why you want to do such a thing and using any
>> other unprivileged port isn't a solution to your problem.
>
> What is the default port for non.-encrypted http traffic to a web server?
>
> Anyway, I see no reason to start a slanging match, I have better things to do.
> It's all working quite nicely now anyway, thank you for your input.
>
> To learn about jsvc see
> http://commons.apache.org/proper/commons-daemon/jsvc.html
> You'll need an up to date ANSI C compiler (I use gcc)
>
> Lyallex
>
>
>>
>> Regards,
>> -----------------
>> Daniel Savard
>>
>>
>> 2016-03-19 12:10 GMT-04:00 Lyallex <lyal...@gmail.com>:
>>> It's the simplest way to find out which port you have Tomcat listening on
>>>
>>> *NIX based systems don't allow non root uses bind to ports < 1024
>>>
>>> jsvc
>>> http://commons.apache.org/proper/commons-daemon/jsvc.html
>>>
>>> solves this problem, nobody seems to have grasped that this is what I
>>> was asking about.
>>> I know of no way to start the container, on port 80 using either
>>> startup.sh or catalina.sh using start, run or anything else.
>>> If I'm wrong then I would love to see how it's done.
>>>
>>> CentOS Linux release 7.2.1511 (Core)
>>>
>>>
>>> On 19 March 2016 at 13:46, Daniel Savard <daniel.sav...@gmail.com> wrote:
>>>> Why? What is the point? The server.xml has nothing to do with
>>>> integration with systemd.
>>>> -----------------
>>>> Daniel Savard
>>>>
>>>>
>>>> 2016-03-19 1:40 GMT-04:00 Lyallex <lyal...@gmail.com>:
>>>>> Would you mind posting your server.xml, here is the relevant bit from 
>>>>> mine.
>>>>>
>>>>>  <Service name="Catalina">
>>>>>
>>>>>     <Connector port="80" protocol="HTTP/1.1"
>>>>>                connectionTimeout="20000"
>>>>>                redirectPort="8443" />
>>>>>
>>>>>     <Engine name="Catalina" defaultHost="localhost">
>>>>>
>>>>>       <Realm className="org.apache.catalina.realm.LockOutRealm">
>>>>>
>>>>>         <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
>>>>> resourceName="UserDatabase"/>
>>>>>
>>>>>       </Realm>
>>>>>
>>>>>       <Host name="localhost"  appBase="webapps" unpackWARs="true"
>>>>> autoDeploy="true">
>>>>>
>>>>>         <Valve className="org.apache.catalina.valves.AccessLogValve"
>>>>> directory="logs"
>>>>>                prefix="localhost_access_log" suffix=".txt"
>>>>>                rotatable="false" pattern="combined" />
>>>>>       </Host>
>>>>>
>>>>>     </Engine>
>>>>>   </Service>
>>>>>
>>>>> On 18 March 2016 at 23:35, Daniel Savard <daniel.sav...@gmail.com> wrote:
>>>>>> I believe all distros have over engineered the scripts to start
>>>>>> Tomcat. Forget all the scripts from your distro, learn the
>>>>>> signification of the environment variables from the catalina.sh script
>>>>>> shipped with the default Tomcat version. Define your variables in a
>>>>>> file, this file is not a script, so you cannot reuse a previously
>>>>>> defined variable, feed your systemd service definition file with this
>>>>>> file in the service section as EnvironmentFile=/path/name/to/your/file
>>>>>> ExecStart=/path/to/catalina.sh start
>>>>>> ExecStop=/path/to/catalina.sh stop
>>>>>>
>>>>>> and you are done. You control everything from the environment file,
>>>>>> you can easily manage the environment variables without editing the
>>>>>> systemd's service file.
>>>>>>
>>>>>> It is much simpler than the OpenRC set of scripts at my humble
>>>>>> opinion. I am running Gentoo at home and RHEL at work and both distros
>>>>>> wrapped Tomcat into too many layers of scripts in order to make it
>>>>>> working with OpenRC while none of these are required to run and manage
>>>>>> Tomcat with systemd.
>>>>>>
>>>>>> In particular with Gentoo, I no longer use the Tomcat distro packaged
>>>>>> with Gentoo because they separated the servlet api from Tomcat and you
>>>>>> need to wrap things into layers of scripts to define the classpath
>>>>>> properly taking this into account, the vanilla classpath.sh file
>>>>>> distributed with Tomcat doesn't work and so one. Really, they did a
>>>>>> very bad job at integrating Tomcat.
>>>>>>
>>>>>> Here is my service file:
>>>>>>
>>>>>> [Unit]
>>>>>> Description=Tomcat 8 (Dev)
>>>>>> After=syslog.target
>>>>>> After=network.target
>>>>>>
>>>>>> [Service]
>>>>>> EnvironmentFile=/tomcat/tomcat-8-dev/bin/tomcat-8-dev.env
>>>>>> Type=forking
>>>>>> User=tomcat
>>>>>> Group=tomcat
>>>>>> ExecStart=/opt/apache-tomcat/apache-tomcat-8.0.32_ds/bin/catalina.sh 
>>>>>> start
>>>>>> ExecStop=/opt/apache-tomcat/apache-tomcat-8.0.32_ds/bin/catalina.sh stop
>>>>>>
>>>>>> [Install]
>>>>>> WantedBy=multi-user.target
>>>>>>
>>>>>>
>>>>>> And here is the content of my EnvironmentFile:
>>>>>>
>>>>>> CATALINA_HOME="/opt/apache-tomcat/apache-tomcat-8.0.32_ds"
>>>>>> CATALINA_BASE="/tomcat/tomcat-8-dev"
>>>>>> CATALINA_OUT="/var/log/tomcat-8-dev/catalina.out"
>>>>>> JAVA_HOME="/opt/oracle-jdk-bin-1.8.0.74"
>>>>>> CATALINA_PID="/var/run/tomcat-8-dev.pid"
>>>>>>
>>>>>>
>>>>>> -----------------
>>>>>> Daniel Savard
>>>>>>
>>>>>>
>>>>>> 2016-03-18 13:31 GMT-04:00 Lyallex <lyal...@gmail.com>:
>>>>>>> I thought you might be interested in the resolution to this.
>>>>>>>
>>>>>>> It turns out that we needed to reproduce the environment in 
>>>>>>> tomcat.service
>>>>>>>
>>>>>>> For some reason
>>>>>>>
>>>>>>> ExecStart=/etc/rc.d/init.d/tomcat7 doesn't work
>>>>>>> (file shown at the end of this message)
>>>>>>>
>>>>>>> Instead, in  /etc/systemd/system/tomcat.service
>>>>>>> we have had to reproduce the environment in longhand to get it to work.
>>>>>>> It appears that systemd doesn't expand variables so I really need to
>>>>>>> investigate the systemd Environment thing a bit more.
>>>>>>> Anyway, when I shutdown -r now the server comes back up and tomcat is
>>>>>>> running at the unprivileged tomcat user on port 80 so that's a result
>>>>>>>
>>>>>>> ============== /etc/systemd/system/tomcat.service ============
>>>>>>> [Unit]
>>>>>>> Description=Apache Tomcat Web Application Container
>>>>>>> After=network.target
>>>>>>>
>>>>>>> [Service]
>>>>>>> Type=forking
>>>>>>> User=root
>>>>>>>
>>>>>>> ExecStart=/opt/apache-tomcat-7.0.42/bin/jsvc \
>>>>>>> -user tomcat \
>>>>>>> -home /opt/jdk1.7.0_45 \
>>>>>>> -Dcatalina.home=/opt/apache-tomcat-7.0.42 \
>>>>>>> -Dcatalina.base=/opt/apache-tomcat-7.0.42 \
>>>>>>> -Djava.io.tmpdir=/var/tmp \
>>>>>>> -Djava.awt.headless=true \
>>>>>>> -Xms512m \
>>>>>>> -Xmx1024m \
>>>>>>> -outfile /opt/apache-tomcat-7.0.42/logs/catalina.out \
>>>>>>> -errfile /opt/apache-tomcat-7.0.42/logs/catalina.err \
>>>>>>> -pidfile /var/run/tc7/jsvc.pid \
>>>>>>> -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
>>>>>>> -Djava.util.logging.config.file=/opt/apache-tomcat-7.0.42/conf/logging.properties
>>>>>>> \
>>>>>>> -cp 
>>>>>>> /opt/apache-tomcat-7.0.42/bin/bootstrap.jar:/opt/apache-tomcat-7.0.42/bin/commons-daemon.jar:/opt/jdk1.7.0_45/lib/tools.jar:/opt/apache-tomcat-7.0.42/bin/tomcat-juli.jar
>>>>>>> \
>>>>>>> org.apache.catalina.startup.Bootstrap
>>>>>>>
>>>>>>> ExecStop=/bin/kill -9 /var/run/tc7/jsvc.pid
>>>>>>> ExecStopPost=/bin/rm -f /var/tc7lock/subsys/tomcat /var/run/tc7/jsvc.pid
>>>>>>>
>>>>>>> [Install]
>>>>>>> WantedBy=multi-user.target
>>>>>>>
>>>>>>>
>>>>>>> Oh happy day
>>>>>>> Thanks again to all responders
>>>>>>>
>>>>>>> Lyallex
>>>>>>>
>>>>>>> ========= /etc/rc.d/init.d/tomcat7  =========
>>>>>>>
>>>>>>> JAVA_HOME=/opt/jdk1.7.0_45
>>>>>>> CATALINA_HOME=/opt/apache-tomcat-7.0.42
>>>>>>> export JAVA_HOME CATALINA_HOME
>>>>>>> CLASSPATH=$CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/commons-daemon.jar:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/bin/tomcat-juli.jar
>>>>>>> TOMCAT_USER=tomcat
>>>>>>> TMPDIR=/var/tmp
>>>>>>> PIDFILE=/var/run/tc7/jsvc.pid
>>>>>>>
>>>>>>>
>>>>>>> RC=0
>>>>>>>
>>>>>>> case "$1" in
>>>>>>>
>>>>>>>   start)
>>>>>>>
>>>>>>>    $CATALINA_HOME/bin/jsvc -user $TOMCAT_USER -home $JAVA_HOME
>>>>>>> -Dcatalina.home=/opt/apache-tomcat-7.0.42
>>>>>>> -Dcatalina.base=$CATALINA_HOME -Djava.io.tmpdir=$TMPDIR
>>>>>>> -Djava.awt.headless=true \
>>>>>>>      -Xms512m \
>>>>>>>      -Xmx1024m \
>>>>>>>      -outfile $CATALINA_HOME/logs/catalina.out \
>>>>>>>      -errfile $CATALINA_HOME/logs/catalina.err \
>>>>>>>      -pidfile '/var/run/tc7/jsvc.pid' \
>>>>>>>      -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
>>>>>>>      
>>>>>>> -Djava.util.logging.config.file=$CATALINA_HOME/conf/logging.properties \
>>>>>>>      -cp $CLASSPATH  \
>>>>>>>      org.apache.catalina.startup.Bootstrap
>>>>>>>
>>>>>>>     RC=$?
>>>>>>>
>>>>>>>     [ $RC = 0 ] && touch /var/tc7lock/subsys/tomcat
>>>>>>>     echo "starting tomcat7 on darkstar with:"
>>>>>>>     echo "JAVA_HOME=$JAVA_HOME"
>>>>>>>     echo "CATALINA_HOME=$CATALINA_HOME"
>>>>>>>     echo "CLASSPATH=$CLASSPATH"
>>>>>>>     echo "tomcat started"
>>>>>>>     ;;
>>>>>>>
>>>>>>>   stop)
>>>>>>>
>>>>>>>     PID=`cat /var/run/tc7/jsvc.pid`
>>>>>>>     kill $PID
>>>>>>>
>>>>>>>    RC=$?
>>>>>>>
>>>>>>>     [ $RC = 0 ] && rm -f /var/tc7lock/subsys/tomcat 
>>>>>>> /var/run/tc7/jsvc.pid
>>>>>>>     echo "stopping tomcat7 on darkstar with:"
>>>>>>>     echo "JAVA_HOME=$JAVA_HOME"
>>>>>>>     echo "CATALINA_HOME=$CATALINA_HOME"
>>>>>>>     echo "CLASSPATH=$CLASSPATH"
>>>>>>>
>>>>>>>     echo "tomcat stopped"
>>>>>>>     ;;
>>>>>>>
>>>>>>>   *)
>>>>>>>         echo "Usage: $0 {start|stop}"
>>>>>>>         exit 1
>>>>>>> esac
>>>>>>> exit $RC
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>>>>>>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>>>>>>
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>>>>>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>>>>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>>>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to