Re: Monitoring web apps

2001-11-13 Thread Eddie

Thanks Daniel , I will give it a try.

Eddie
- Original Message -
From: Daniel López [EMAIL PROTECTED]
To: Orion-Interest [EMAIL PROTECTED]
Sent: Tuesday, November 13, 2001 8:38 AM
Subject: Re: Monitoring web apps


 Hi Eddie,

 Here it goes:

 .- Environment - An apache web server configured with mod_proxy and
 SSI, running in port 80. Several orion instances with applications
 running in other ports.
 .- in httpd.conf -
 ...
 VirtualHost _default_:80
 ProxyVia On
 # Proxy configuration for the different applications

 # Application X
 ProxyPass /nameX http://hostx.com:portX/nameX
 ProxyPassReverse /nameX http://hostx.com:portX/nameX

 # Application Y
 ProxyPass /nameY http://hostx.com:portY/nameY
 ProxyPassReverse /nameY http://hostx.com:portY/nameY

 # Error configuration for the Cannot establish connection case
 ErrorDocument 502 /SSIErrorHandler.shtml
 /VirtualHost
 ...
 .- Then the SSIErrorHandler.shtml looks like -
 !-- Define application paths --
 !-- Define the path for application X --
 !--#set var=appX value=/^\/nameX/ --
 !-- Define the path for application Y --
 !--#set var=appY value=/^\/nameY/ --
 ...
 !--
  Check which was the redirected path and include the appropriate
  error page
 --
 !-- If the original url was from application X --
 !--#if expr=$REDIRECT_URL=$appX --
 !-- Include the app X is not running, sorry error page --
 !--#include file=localApacheDirX/index.html --
 !-- If the original url was from application Y --
 !--#elif expr=$REDIRECT_URL=$appY --
 !-- Include the app Y is not running, sorry error page --
 !--#include file=localApacheDirY/index.html --
 !-- Error in an application with no specific message defined --
 !--#else --
 !-- Include the this app is not running, sorry error page --
 !--#include file=localApacheDirCommon/index.html --
 !--#endif --

 And that's pretty much all. Just some catches:
 .- In the Error pages, ALL the links have to be absolute and start with
 a different name than the proxied path. Otherwise you get an infinite
 loop between the proxied page and the error page. So make sure that
 nameX and localApacheDirX are ALWAYS different and that all links in
 localApacheDirX/index.html start with /localApacheDirX or http://.
 .- If inside the applications you want to get the real remote IP instead
 of the proxy one, then you can use, for example, the mod_proxy patch
 written by Bjoern Hansen which includes the original IP in an http
 header (X-Forwarded-For). We used it because we needed to implement IP
 based security restrictions, which are not defined in the JSDK spec. We
 also used this IP based security restrictions to prevent acces to the
 applications by-passing the proxy, which is very important with SSL
 protected applications.
 .- It also works with ssl.
 .- To improve performance, you can also use the apache proxy as
 proxy-cache, to get the static content faster, but then be careful not
 to allow it to cache the dynamic pages you don't want to be cached. And
 make sure you have enough disk space ;).
 .- We haven't specified and ErrorDocument directive for the code 500
 (internal server error) because we wanted to be able to see this kind of
 messages, but you can put it later on to show more graceful messages.
 .- We use SSI to define the error hanlding page, but you could use a JSP
 if you wished. We just did it to have a light weight proxy with no
 special add ons.

 I hope it helps,
 D.




 Eddie wrote:
 
  Daniel,
 
  The way you do this with Apache sounds very nice.
  I like to know how you configure Apache to redirect to another page when
  something goes wrong.
  Could you submit a little example please ?
 
  Eddie
 
  - Original Message -
  From: Daniel López [EMAIL PROTECTED]
  To: Orion-Interest [EMAIL PROTECTED]
  Sent: Monday, November 12, 2001 2:23 PM
  Subject: Re: Monitoring web apps
 
   Hi David,
  
   We don't have a sophisticated system, but it works well for us. What
we
   do is put an Apache web server, acting as a proxy, in front of the
orion
   server. Then, in the proxy configuration you can specify a redirect
page
   in case something goes wrong, and we use it to redirect to a SSI
script
   that determines which application is down and which page should be
shown
   as an error message. This way you show automatically an error message,
   just by shutting down orion or by returning a 500 code from your
   application.
   I hope it helps,
   D.
  
  
   David Pérez Villanueva wrote:
   
Hi!
   
We have several applications running  in  an Orion web server. Our
server is allocated in a hosting corporation. They have a program
that
queries our PCs with an url , calling us if there is the word
'error'
(or similar) in response.
   
What is the problem? We need something that will check our
applications
and will build a html page (or plain text, or anything) with the
check

Re: Monitoring web apps

2001-11-12 Thread Daniel López

Hi David,

We don't have a sophisticated system, but it works well for us. What we
do is put an Apache web server, acting as a proxy, in front of the orion
server. Then, in the proxy configuration you can specify a redirect page
in case something goes wrong, and we use it to redirect to a SSI script
that determines which application is down and which page should be shown
as an error message. This way you show automatically an error message,
just by shutting down orion or by returning a 500 code from your
application.
I hope it helps,
D.


David Pérez Villanueva wrote:
 
 Hi!
 
 We have several applications running  in  an Orion web server. Our
 server is allocated in a hosting corporation. They have a program that
 queries our PCs with an url , calling us if there is the word 'error'
 (or similar) in response.
 
 What is the problem? We need something that will check our applications
 and will build a html page (or plain text, or anything) with the check
 result. Does anybody know any good software to do this? (We have two
 PCs: one with Windows 2000 server and  another with Linux).
 
 Thankyou for your support.




Re: Monitoring web apps

2001-11-12 Thread Eddie

Daniel,

The way you do this with Apache sounds very nice.
I like to know how you configure Apache to redirect to another page when
something goes wrong.
Could you submit a little example please ?

Eddie

- Original Message -
From: Daniel López [EMAIL PROTECTED]
To: Orion-Interest [EMAIL PROTECTED]
Sent: Monday, November 12, 2001 2:23 PM
Subject: Re: Monitoring web apps


 Hi David,

 We don't have a sophisticated system, but it works well for us. What we
 do is put an Apache web server, acting as a proxy, in front of the orion
 server. Then, in the proxy configuration you can specify a redirect page
 in case something goes wrong, and we use it to redirect to a SSI script
 that determines which application is down and which page should be shown
 as an error message. This way you show automatically an error message,
 just by shutting down orion or by returning a 500 code from your
 application.
 I hope it helps,
 D.


 David Pérez Villanueva wrote:
 
  Hi!
 
  We have several applications running  in  an Orion web server. Our
  server is allocated in a hosting corporation. They have a program that
  queries our PCs with an url , calling us if there is the word 'error'
  (or similar) in response.
 
  What is the problem? We need something that will check our applications
  and will build a html page (or plain text, or anything) with the check
  result. Does anybody know any good software to do this? (We have two
  PCs: one with Windows 2000 server and  another with Linux).
 
  Thankyou for your support.






Re: Monitoring web apps

2001-11-12 Thread Daniel López

Hi Eddie,

Here it goes:

.- Environment - An apache web server configured with mod_proxy and
SSI, running in port 80. Several orion instances with applications
running in other ports.
.- in httpd.conf -
...
VirtualHost _default_:80
ProxyVia On
# Proxy configuration for the different applications

# Application X
ProxyPass /nameX http://hostx.com:portX/nameX
ProxyPassReverse /nameX http://hostx.com:portX/nameX

# Application Y
ProxyPass /nameY http://hostx.com:portY/nameY
ProxyPassReverse /nameY http://hostx.com:portY/nameY

# Error configuration for the Cannot establish connection case
ErrorDocument 502 /SSIErrorHandler.shtml
/VirtualHost
...
.- Then the SSIErrorHandler.shtml looks like -
!-- Define application paths --
!-- Define the path for application X --
!--#set var=appX value=/^\/nameX/ --
!-- Define the path for application Y --
!--#set var=appY value=/^\/nameY/ --
...
!-- 
 Check which was the redirected path and include the appropriate
 error page
--
!-- If the original url was from application X --
!--#if expr=$REDIRECT_URL=$appX --
!-- Include the app X is not running, sorry error page --
!--#include file=localApacheDirX/index.html --
!-- If the original url was from application Y --
!--#elif expr=$REDIRECT_URL=$appY --
!-- Include the app Y is not running, sorry error page --
!--#include file=localApacheDirY/index.html --
!-- Error in an application with no specific message defined --
!--#else --
!-- Include the this app is not running, sorry error page --
!--#include file=localApacheDirCommon/index.html --
!--#endif --

And that's pretty much all. Just some catches:
.- In the Error pages, ALL the links have to be absolute and start with
a different name than the proxied path. Otherwise you get an infinite
loop between the proxied page and the error page. So make sure that
nameX and localApacheDirX are ALWAYS different and that all links in
localApacheDirX/index.html start with /localApacheDirX or http://.
.- If inside the applications you want to get the real remote IP instead
of the proxy one, then you can use, for example, the mod_proxy patch
written by Bjoern Hansen which includes the original IP in an http
header (X-Forwarded-For). We used it because we needed to implement IP
based security restrictions, which are not defined in the JSDK spec. We
also used this IP based security restrictions to prevent acces to the
applications by-passing the proxy, which is very important with SSL
protected applications.
.- It also works with ssl.
.- To improve performance, you can also use the apache proxy as
proxy-cache, to get the static content faster, but then be careful not
to allow it to cache the dynamic pages you don't want to be cached. And
make sure you have enough disk space ;).
.- We haven't specified and ErrorDocument directive for the code 500
(internal server error) because we wanted to be able to see this kind of
messages, but you can put it later on to show more graceful messages.
.- We use SSI to define the error hanlding page, but you could use a JSP
if you wished. We just did it to have a light weight proxy with no
special add ons.

I hope it helps,
D.




Eddie wrote:
 
 Daniel,
 
 The way you do this with Apache sounds very nice.
 I like to know how you configure Apache to redirect to another page when
 something goes wrong.
 Could you submit a little example please ?
 
 Eddie
 
 - Original Message -
 From: Daniel López [EMAIL PROTECTED]
 To: Orion-Interest [EMAIL PROTECTED]
 Sent: Monday, November 12, 2001 2:23 PM
 Subject: Re: Monitoring web apps
 
  Hi David,
 
  We don't have a sophisticated system, but it works well for us. What we
  do is put an Apache web server, acting as a proxy, in front of the orion
  server. Then, in the proxy configuration you can specify a redirect page
  in case something goes wrong, and we use it to redirect to a SSI script
  that determines which application is down and which page should be shown
  as an error message. This way you show automatically an error message,
  just by shutting down orion or by returning a 500 code from your
  application.
  I hope it helps,
  D.
 
 
  David Pérez Villanueva wrote:
  
   Hi!
  
   We have several applications running  in  an Orion web server. Our
   server is allocated in a hosting corporation. They have a program that
   queries our PCs with an url , calling us if there is the word 'error'
   (or similar) in response.
  
   What is the problem? We need something that will check our applications
   and will build a html page (or plain text, or anything) with the check
   result. Does anybody know any good software to do this? (We have two
   PCs: one with Windows 2000 server and  another with Linux).
  
   Thankyou for your support.