HTTP status 503 erorr for SOLR 5.0.0 - apache

I installed solr 5.0.0 in my windows 8 system and apache-tomcat-8.0.0-RC5.exe ,my tomcat is listening to 8080 port.
I have copied all the 5 jars and log4j.properties from C:\Users\xyz\Desktop\solr\solr-5.0.0\solr-5.0.0\solr-5.0.0\server\lib\ext to tomcats lib folder .
jcl-over-slf4j-1.7.7.jar
jul-to-slf4j-1.7.7.jar
log4j-1.2.17.jar
slf4j-api-1.7.7.jar
slf4j-log4j12-1.7.7.jar
Added -Dsolr.solr.home=C:\Users\xyz\Desktop\solr\solr-5.0.0\solr-5.0.0\solr-5.0.0\ to tomcat service java options.
My tomcat server is up but solr http://localhost:8080/solr/ throws below an error
HTTP Status 503 - Server is shutting down or failed to initialize
type Status report
message Server is shutting down or failed to initialize
description The requested service is not currently available.
Apache Tomcat/8.0.0-RC5.
I tried various options like changing the tomcat port from 8080 to 8983. modifying solr.xml file . None of the solutions worked, may be because I am using solr 5.0.0 . could any one help me out ?

According Solr Doc: "Beginning with Solr 5.0, Solr is no longer distributed as a "war" (Web Application Archive) suitable for deployment in any Servlet Container. Solr is now distributed as a stand alone java server application, including start and stop scripts for use on Unix and MS-Windows platforms, as well as an installation script for setting up a "production" installation of Solr on *nix platforms managed via /etc/init.d.... ... Internally, Solr is still implemented via Servlet APIs and is powered by Jetty -- but this is simply an implementation detail. Deployment as a "webapp" to other Servlet Containers (or other instances of Jetty) is not supported, and may not work in future 5.x versions of Solr when additional changes are likely to be made to Solr internally to leverage custom networking stack features." I don't know if it means you can't deploy slr 5.0 to other container, like Tomcat. See full description here

Related

Root Context on EAP not getting registered in MOD_CLUSTER

I have setup two EAP instances in standalone-ha mode running as cluster.
I have also deployed an applicaiton with default / context (ROOT context) on both the nodes
I also setup Apache MOD_CLUSTER listening on 1994 port.
I am able to access the default context application directly by accessing the EAP nodes.
But, when I try to access the same default context application using Apache MOD_CLUSTER, I am not able to access it.
I am able to access applications running in contexts other than default context without any issue.
Following the link here: https://docs.jboss.org/mod_cluster/1.2.0/html_single/
I tried setting up the following option in my standalone.bat but its not working?
set "JAVA_OPTS= -Djboss.mod_cluster.excludedContexts=admin-console,invoker,jbossws,jmx-console,juddi,web-console %JAVA_OPTS%"
The EAP version used is : 6.4.0
Apache MOD_CLUSTER version: is mod_cluster-1.2.6.Final.
Any help is greatly appreciated!
Overwite excluded-contexts attribute in AS7 (EAP) mod_cluster subsystem, see the docs. The ROOT is excluded by default.
Please, do not use mod_cluster 1.2.6, use mod_cluster 1.3.8 on the httpd side. 1.2.6 is many years old, it contains several high profile CVEs and performance issues.

Separate SOLR and banana

Currently I have SOLR and banana installed in my machine and both runs on the default jetty server.
Now, I need to move my SOLR to a separate webserver - probably apache and introduce a Nginx server between banana(jetty) and solr(apache), so that I can introduce a reverse proxy for security related issues.
Question:-
Which folder related to SOLR installation needs to be moved apache server?
You cannot move Solr to Apache because it is a Java web application and therefore requires a servlet engine like Jetty, Tomcat.
You can move solr to a dedicated (tomcat / jetty / weblogic / ?) instance and eventually you may want to proxy with a front Apache

Apache Solr: Tomcat or Jetty?

I am running an instance of Apache Solr in the Jetty servlet container that came included in the example file download from Apache. I am going to use Solr to set up an enterprise search system that will search across a directory of several hundred files on a local hard drive. Is there any reason I should run Solr in Tomcat and not in the Jetty servlet container that was part of the example? I have heard Tomcat is preferred but WHY? For what purpose do I need to switch over?
Officially jetty is recommended. Because sole's test cases run against jetty.

Apache and Apache Solr together

I've got a question: I came across Apache Solr as requirement for a module I'm installing and even after reading the documentation on Apache Solr's official homepage I'm still not sure whether Apache runs alongside regular Apache or does it require it own server? If it does work alongside Apache, is there any known issues/problems that I should be aware of? How would this architecture (Apache and Apache Solr) in terms of file system and serving pages? I'm sorry if the question might sound silly but I'm very new to the whole server-side programming/setup world.
You will need to install Tomcat or some other container to install Solr on a Linux box. Tomcat and Solr can be installed along side regular Apache web server, or you can use a different server.
I have done both, installed Solr on same server as well as use different server. Both work fine. It comes down to your scale, requirements, budget and other factors.
In the attached diagram1 Solr runs under Tomcat on same server as Apache web server
In the attached diagram2 Solr runs under Tomcat on different server than Apache web server. Here we have a separate server for Solr.
Let me know if you have any more questions about architecture.

Is Apache Tomcat built on Apache Web Server platform?

Recently our Software Analytic provider (NETTRACKER) sent us a plugin in order to be able to capture visitors in a better way. This plugin is for Apache 1.x and Apache 2.x. They said and I quote
that since Apache Tomcat is built on Apache HTTP server the configuration of the plugin should be the same.
I have looked for a httpd.conf in our tomcat deployment but we cannot find one, the only configuration that is similar to that one is the server.xml under the /conf directory.
If someone has better information regarding these two incredible products (Apache HTTP server and Apache Tomcat) I will greatly appreciate to draw the differences.
EDIT:
In case you are curious we know that Apache Web Server and Tomcat can work together using the mod_jk option and other proxys. But this will be too complex for our deployment.
Apache Tomcat and Apache HTTP are completely different server technologies. It is impossible to use a plugin for Apache HTTP server with Tomcat.
Apache HTTP server is developed in C and so are the plug-ins. On the contrary Tomcat is now completely developed in Java. Tomcat doesn't only serve static content, but it can also serve JSP pages and servlets.
Tomcat is used for hosting Java Web Applications. It can sure serve static content - you can host a web application using only Tomcat. Secure connections are supported and the performance is also very good (comparable with the performance of HTTP server).
A plain installation of Apache serves static content. Using the appropriate plug-ins, HTTP requests can be redirected to an application server (Tomcat, JBoss, Glassfish) or a script language interpreter (PHP). With this way dynamic content can be generated. The big advantages of Apache are the numerous plug-ins available, which allows administrators to configure and monitor web sites any way they want and that is the most widespread server available. This makes it the most secure solution, since it is thoroughly tested and any discovered flaw is corrected very quickly.
The best solution would be to use Tomcat proxied by an Apache server. It isn't so difficult to set up. If you can't do this, then you can't take advantage of Apache's plug-ins.
You see this confusion all the time. Many people think that Apache is a web server where in reality it is the name of an organization that has a web server project called "The Apache HTTP Server Project". In short the web server is called HTTPD (D as in daemon or Unix process).
Tomcat is another Apache project. This project implements a Java servlet engine to serve JSP pages and servlets. Tomcat and HTTPD have nothing to do with each other. However, you can set up HTTPD and Tomcat so that they work together. This way you can have HTTPD serve all static content, do URL rewriting and much more fancy stuff that the built in Tomcat web server can't do (or can't do very well). Whenever a JSP page is requested, HTTPD will pass the request on to Tomcat. Tomcat will process the request and will hand the output back to HTTPD which in turn will send it to the client.
Apache has many interesting projects. E.g. there is also a project called Geronimo which is a Java Enterprise server (J2EE). You can e.g. choose to embed Tomcat inside Geronimo to handle requests for JSP's and servlets where Geronimo does the more enterprisy stuff (LDAP, Messaging etc.). And you guessed it probably already, you can use HTTPD as a static content server for Geronimo as well.
totally bogus. Apache httpd plugins are written in C, Tomcat is pure Java.
Tomcat is a Java servlet engine. It can be hosted under Apache or IIS or quite a number of other external facing web servers. It sounds like you may be currently running your Tomcat instance standalone...
If you serve the JSP/servlets off of port 8080 and have it do things standalone, on the same host machine that Apache is running on, this can allow you to have them loosely coupled. Having multiple web servers fielding independent requests is not recommended, especially if you want to use server-based authentication along with Apache. Typically, you have one outside facing server that shepherds everything through it... Apache does this quite well, and the plugin you mention probably relies on this type of setup (everything gets wired through Apache) for its features/capabilities, based on your brief description of it.
If you would like to serve up your Tomcat servlets under Apache, you could configure apache to forward a class of URIs to your tomcat server instances. you could achieve this type of forwarding through mod_rewrite. this is a slower option performance-wise, as it adds slight overhead on everything you server up. You could also proxy incoming requests via a CGI mechanism similarly, from Apache to Tomcat.
mod_jk will simplify deployment and increase performance for placing Tomcat into an Apache server config. It is pretty painless to configure if you follow the docs, so I am not sure what you mean by "too complex" for your deployment -- if you want Apache and have Tomcat already, it would seem only a matter of slight config changes to get mod_jk downloaded and installed.