top button
Flag Notify
    Connect to us
      Site Registration

Site Registration

Using NIO connector with Apache Httpd 2.4

0 votes
355 views

We are currently using HTTP connector in tomcat 7.42 and planning to switch to AJP NIO connector. When I was reading through the docs I found "WARNING: The NIO connector for AJP is experimental."

This made me think that NIO connector might not be mature at this point. Can somebody who had experience with NIO connector let me know if it is stable and any pitfalls I should be aware of?

Stable enough to be used on enterprise apps which is expected to get thousands of requests in a hour?

Any information would be helpful.

posted Aug 5, 2013 by Deepak Dasgupta

Share this question
Facebook Share Button Twitter Share Button LinkedIn Share Button

1 Answer

0 votes

That warning dates form the NIO support to AJP. It should have been removed.

answer Aug 5, 2013 by Sheetal Chauhan
Similar Questions
+3 votes

I have a requirement where the tomcat load has to be managed by tuning the following parameters.

--> Limit the number of user requests at Apache level that are routed to Tomcat server.
--> Track the number of processed requests and the requests that are queued at Apache level.

Any suggestions?

+2 votes

I have a domain domain.com that points to a server. Now I have a subdomain sub.domain.com that points to another server that has Apache running and Tomcat. I want this subdomain to point to a application deployed on the Tomcat instance through ajp.

I have configured the following in httpd.conf:

   ServerName sub.domain.com 
   ProxyRequests Off
   ProxyPreserveHost On  
   Order deny,allow Allow from all  
   ProxyPass / ajp://localhost:8009/ 
   ProxyPassReverse / ajp://localhost:8009/   

and in Tomcats server.xml:

But when I go to sub.domain.com the url changes to otherdomain.com and shows me a php website running in Apache and declared as following in httpd.conf:

 DocumentRoot /var/www/html/otherdomain.com 
 ServerName otherdomain.com 
 ServerAlias www.otherdomain.com 

I only get it to work when I change the port in the sub.domain.com virtual host declaration to for example 8001. Then when I go to sub.domain.com:8001 it shows my tomcat application (ROOT.war) as expected.

So my question is: what could be going wrong that it doesn't work with the default port 80? I can't find any configuration that is causing this, but I'm probably missing something or is my virtual host configuration wrong?

+1 vote

We have a set up like Apahce (80,443) redirects the request to Tomcat (8080) using mod_jk.

The new requirement is to route the request from the same apache to another tomcat (8090). Hence I made the different config file for apache with different ports (86,4444) and different worker for mod_jk which routes the request to tomcat.

Now the issue is when I hit the url http://:86 and after providing the credentials, it is redirecting to https://:86 and throwing the below error.

Error in browser:

Secure Connection Failed

An error occurred during a connection to x.x.x.x:86. SSL received a record that exceeded the maximum permissible length. (Error code: ssl_error_rx_record_too_long)

Error in logs:

"x16x03x01" 501

[Thu Jan 08 08:22:46 2015] [debug] ssl_engine_io.c(1523): OpenSSL: I/O error, 11 bytes expected to read on BIO#1bf568 [mem: 1f3930]
[Thu Jan 08 08:22:46 2015] [debug] ssl_engine_kernel.c(1806): OpenSSL: Exit: error in SSLv2/v3 read client hello A
[Thu Jan 08 08:22:46 2015] [info] (70014)End of file found: SSL handshake interrupted by system [Hint: Stop button pressed in browser?!]
[Thu Jan 08 08:22:46 2015] [info] Connection to child 3 closed with abortive shutdown(server pritoolvca1.sw.ericsson.se:443 [2], client 153.88.164.216)
[Thu Jan 08 08:23:53 2015] [error] [client 172.17.136.153] Invalid method in request x16x03x01

Could you please suggest where it might went wrong and the way forward..

0 votes

I need to share data between sessions running in different Tomcat server.
I 'd been thinking about using a JMS broker (as ActiveMQ ):

  • when a new session is created in Tomcat A, it's created a new unique topic for this session
  • the session registers itself as listener of that topic ( the only one listener )
  • publish the name of this topic by some way , so it can be found by another session in Tomcat B

I don't know if somebody has used something like this sometime, and how he/she did it
Any suggestion/opinion ?

I'm not sure either use only one topic for all session created or one topic per session ?
I think that one topic per session is more safe because if I use one topic for all sessions, if one message is not read quickly by one consumer (a session ), could block the topic, Obviously , i'll define a TTL for messages/topic

+1 vote

I am facing the issue while building apache on Window machine with the help of apache source code and got below error

[ 92%] Building C object CMakeFiles/mod_ssl.dir/modules/ssl/ssl_engine_init.c.obj 
ssl_engine_init.c 
C:apacheBuildapache2.4buildhttpd-2.4.33modulessslssl_engine_init.c(33) : fatal error C1083: Cannot open include file: 'mod_md.h': No such file or directory 
NMAKE : fatal error U1077: 'c:PROGRA~2MICROS~2.0VCbinamd64cl.exe' : return code '0x2' 
Stop. 

I did some investigation and found that with new version of apache we added a new module called MOD_MD which is experimental basis, I don't know why experimental module added as a dependency and it will cause a build failure,

Can you please help me out to fix above issue?

...