Re: [Zope] Zope, Apache/NT, Reliability issues

2000-06-09 Thread J. Michael Mc Kay

Can I jump in?

What is the process involved for pcgi or Zope to pass authentication?  I am
not running Apache, but good old dependable Website Pro. When I attempt to
run Zope via pcgi it works fine unless I want to manage or allow a client to
log into a products administration screens.  I am returned an error when
trying to access, for example, Squishdot admin or Zope manage. On the other
hand users can log into and use the portal product.

Zope is not accepting the management login info. My understanding is not
clear on what Apache does to accept log ins via pcgi.  For that matter the
same for IIS. I am not sure that IIS is really only accepting NTusers. The
reading I have done so far suggests this may be the case.

Zope  Apache are HTTP1.1 compliant? Website is 1.0 or partially 1.1...
can this be part of the problem?  I run into some problems with requests and
compliancy when using newer utilities against the server.

The conversation below suggests that pcgi passes requests to Zope.  I am
confused about this because I am told this is a Website issue, but when
explained in it's simplest terms (below) it appears to be a pcgi or Zope
issue.

The error I am receiving says that the webserver may not be able to forward
cgi requests (? it's been awhile since I looked at it) This doesn't make
sense if pcgi is  passing the info on. I guess I am asking "Where exactly is
authentication breaking down when using pcgior where is it most likely
to break down?

Website has only 15 percent of the NT market share (it's the price tag I'm
sure) and it is hard to find someone to share these experiences with, so
thanks for allowing this intrusion..

___
PCGI passes on requests to Zope, where Zope can handle multiple requests at
the same time. Basically, requests are handed over to ZServer ass if the
request came in directly. PCGI takes some care of waiting for ZServer to
become available if it is congested.

So, there is one Zope instance running that can listen to normal HTTP
requests, FTP requests and PCGI requests (any combination of that). The PCGI
CGI's are fielded on requests coming though Apache and hand back the results
to the client.

 And what about the method of "masquerading" the ZServer through Apache?
 I have read solutions using the Rewrite module and the Proxy module, but
 it actually means (roughly speaking) that if there are 10 requests
 made to Apache then it will make 10 requests to ZServer so, considering
 only the reliability issue of the server even if Apache can handle
 millions of requests per second, the ZServer would fall down much faster
 than that so I cannot see any advantage of using Apache in front of it.
 Of course I understand the other advantages of Apache as it´s many
 configuration options, robustness as a web server, etc, but can the
 ZServer stay up and running in pair with Apache? Maybe there´s any way
 to configure Apache to cache the pages -- as a Squid would -- so it can
 "filter" the requests and low the requests level that it will do to
 ZServer?

People generally use Apache for combining Zope with other content. Zope is
good at serving dynamic content, Apache at static, so if you serve Zope
behind
Apache, you can mix and match. Also, when you have existing CGI, PHP or
other
Apache dependant content that you want to make available from the same base
URL, you will need to use Apache in front of Zope.

You can, IIRC, use tge ProxyPass trick together with caching as well,but I
have no experience with that. There is one big disadvantage to using
ProxyPass
at the moment, which is that you need to use the SiteAccess product to make
it
work correctly. The SiteAccess product has some known issues and causes
regressions in parts of Zope, like the ZCatalog. These issues _shold_ be
solved with the upcoming 2.2 release of Zope.

 And what about it´s object oriented database? I also have some doubts
 about it. I worked a lot with relational databases as MS SQL and MySQL
 but never tried to study an OO approach to DB. How fast it is? How much
 requests can it handle without hanging, collapsing or corrupting data? I
 mean, anyone tried to do some study of a database that changes everytime
 and have queries everytime, I mean, searches in a database where it´s
 data changes constantly (searching a static database is much different
 than searching on a mutable one). Row level locking, transaction,
 consistency, etc, all these concepts apply here? Can it be substituted
 by a traditional relational database and have it´s contentes interfaced
 to "looks like" object oriented?

The ZODB, Zope's Object Database, is an integral part of Zope. As soon as
you
look at Zope through the management interface, you are looking at objects
stored in the ZODB. Zope is inherently OO, and you generally use object
instances to build your site.

The ZODB is transactional, is optimized for high reads, low writes, and
takes
care of access conflicts not by locking, but invalidating all connections

Re: [Zope] Zope, Apache/NT, Reliability issues

2000-06-09 Thread R. David Murray

On Fri, 9 Jun 2000, J. Michael Mc Kay wrote:
 The conversation below suggests that pcgi passes requests to Zope.  I am
 confused about this because I am told this is a Website issue, but when
 explained in it's simplest terms (below) it appears to be a pcgi or Zope
 issue.
 
 The error I am receiving says that the webserver may not be able to forward
 cgi requests (? it's been awhile since I looked at it) This doesn't make
 sense if pcgi is  passing the info on. I guess I am asking "Where exactly is
 authentication breaking down when using pcgior where is it most likely
 to break down?

From this I'm guessing that website is not passing authentication
headers in the environment when a cgi is called, which is a good
default configuration.  The Apache magic is a method for telling
Apache you really want it to pass the auth info to the cgi.

--RDM


___
Zope maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope-dev )




Re: [Zope] Zope, Apache/NT, Reliability issues

2000-06-09 Thread Martijn Pieters

On Fri, Jun 09, 2000 at 02:50:26AM -0400, J. Michael Mc Kay wrote:
 Can I jump in?
 
 What is the process involved for pcgi or Zope to pass authentication?  I am
 not running Apache, but good old dependable Website Pro. When I attempt to
 run Zope via pcgi it works fine unless I want to manage or allow a client to
 log into a products administration screens.  I am returned an error when
 trying to access, for example, Squishdot admin or Zope manage. On the other
 hand users can log into and use the portal product.
 
 Zope is not accepting the management login info. My understanding is not
 clear on what Apache does to accept log ins via pcgi.  For that matter the
 same for IIS. I am not sure that IIS is really only accepting NTusers. The
 reading I have done so far suggests this may be the case.
 
 Zope  Apache are HTTP1.1 compliant? Website is 1.0 or partially 1.1...
 can this be part of the problem?  I run into some problems with requests and
 compliancy when using newer utilities against the server.
 
 The conversation below suggests that pcgi passes requests to Zope.  I am
 confused about this because I am told this is a Website issue, but when
 explained in it's simplest terms (below) it appears to be a pcgi or Zope
 issue.
 
 The error I am receiving says that the webserver may not be able to forward
 cgi requests (? it's been awhile since I looked at it) This doesn't make
 sense if pcgi is  passing the info on. I guess I am asking "Where exactly is
 authentication breaking down when using pcgior where is it most likely
 to break down?
 
 Website has only 15 percent of the NT market share (it's the price tag I'm
 sure) and it is hard to find someone to share these experiences with, so
 thanks for allowing this intrusion..

CGI scripts traditionally get a predigested version of the headers the client
hands in. On many web servers, this _doesn't_ include the authentication
headers, which are crucial for handling password authenticated parts of your
website. Most servers will try and handle this information themselves, and
only hand the CGI script a new header, 'HTTP_REMOTE_USER', IIRC, that contains
the name of the authenticated user. This is desireable for many CGI scripts
when you don't want to have to code authentication libraries.

However, it is a pain when you have a system like Zope, that _is_ very capable
of handling this kind of authentication by itself. For different servers,
different tricks need to be employed.

On Apache, you can use a rewrite rule to make a copy of the Authorization
header and pass the copy in as 'HTTP_CGI_AUTHORIZATION'. On IIS, if you
specify no password protection for the PCGI stub, it gets handed the proper
headers quite nicely. IIS does interfere with the Zope 401 status message,
you'll need to switch that off. On Roxen, I believe there is a configuration
setting called 'Raw user info' for this. And Netscape requires a NSAPI plugin
to pass on the information.

Now, it sounds like Website doesn't pass in the Authorization header either.
Unfortunately, I don't know enough about Website Pro to be able to say wether
or not you can make it pass the header anyway, and what tricks are needed to
make it so. You will need to consult the Website Pro manuals for that. I hope
that my explanation has given you enough pointers to help you out here.

There is an alternative to passing in the Authorization header however, and
that's having Zope use REMOTE_USER. Your webserver will then do the
authentication, set the REMOTE_USER variable, and Zope will try and find a
User object that matches that user name. See doc/WEBSERVER.txt for more info
on this.

-- 
Martijn Pieters
| Software Engineermailto:[EMAIL PROTECTED]
| Digital Creations  http://www.digicool.com/
| Creators of Zope   http://www.zope.org/
|   The Open Source Web Application Server
-

___
Zope maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope-dev )




Re: [Zope] Zope, Apache/NT, Reliability issues

2000-06-08 Thread Martijn Pieters

On Thu, Jun 08, 2000 at 07:25:15PM -0300, Fabio Akita wrote:
 I´ve used the ZServer in stand alone mode and I also have implemented
 the easy Proxy Reverse trick in Apache. I will try FastCGI and PCGI as
 soon as possible, but I have some doubts now.

 My test platform is a Windows NT 4 running Apache 1.3.12. The first
 doubt comes to the fact that I could not find the pcgi module for NT (I
 do not have any kind of C compiler, so I´ll be very glad if anyone know
 a binare version). So I´d like to know where can I find informations
 about installing Zope using PCGI in an NT Apache installation.

It could be someone else has already compiled it and used it.

 The second doubt: what exactly are the differences of running it in PCGI
 mode or in ZServer? I do understand the concept of forking a process and
 interfacing a web server and a process through a CGI interface as PCGI
 and I also understand the fact of the multithreading feature in ZServer.
 
 Basically it would mean that each connection request will fork a new
 Zope connection and then maintain it in some kind of a connection pool
 (as databases do)? Or will there be only one process running Zope and a
 queue of requests to access it? What are the performance impacts, what
 are the hardware (memory/CPU) impacts? Personally I do not like the
 concept of CGI but know nothing about the Persistent CGI concept.

PCGI passes on requests to Zope, where Zope can handle multiple requests at
the same time. Basically, requests are handed over to ZServer ass if the
request came in directly. PCGI takes some care of waiting for ZServer to
become available if it is congested.

So, there is one Zope instance running that can listen to normal HTTP
requests, FTP requests and PCGI requests (any combination of that). The PCGI
CGI's are fielded on requests coming though Apache and hand back the results
to the client.

 And what about the method of "masquerading" the ZServer through Apache?
 I have read solutions using the Rewrite module and the Proxy module, but
 it actually means (roughly speaking) that if there are 10 requests
 made to Apache then it will make 10 requests to ZServer so, considering
 only the reliability issue of the server even if Apache can handle
 millions of requests per second, the ZServer would fall down much faster
 than that so I cannot see any advantage of using Apache in front of it.
 Of course I understand the other advantages of Apache as it´s many
 configuration options, robustness as a web server, etc, but can the
 ZServer stay up and running in pair with Apache? Maybe there´s any way
 to configure Apache to cache the pages -- as a Squid would -- so it can
 "filter" the requests and low the requests level that it will do to
 ZServer?

People generally use Apache for combining Zope with other content. Zope is
good at serving dynamic content, Apache at static, so if you serve Zope behind
Apache, you can mix and match. Also, when you have existing CGI, PHP or other
Apache dependant content that you want to make available from the same base
URL, you will need to use Apache in front of Zope.

You can, IIRC, use tge ProxyPass trick together with caching as well,but I
have no experience with that. There is one big disadvantage to using ProxyPass
at the moment, which is that you need to use the SiteAccess product to make it
work correctly. The SiteAccess product has some known issues and causes
regressions in parts of Zope, like the ZCatalog. These issues _shold_ be
solved with the upcoming 2.2 release of Zope.

 And what about it´s object oriented database? I also have some doubts
 about it. I worked a lot with relational databases as MS SQL and MySQL
 but never tried to study an OO approach to DB. How fast it is? How much
 requests can it handle without hanging, collapsing or corrupting data? I
 mean, anyone tried to do some study of a database that changes everytime
 and have queries everytime, I mean, searches in a database where it´s
 data changes constantly (searching a static database is much different
 than searching on a mutable one). Row level locking, transaction,
 consistency, etc, all these concepts apply here? Can it be substituted
 by a traditional relational database and have it´s contentes interfaced
 to "looks like" object oriented?

The ZODB, Zope's Object Database, is an integral part of Zope. As soon as you
look at Zope through the management interface, you are looking at objects
stored in the ZODB. Zope is inherently OO, and you generally use object
instances to build your site.

The ZODB is transactional, is optimized for high reads, low writes, and takes
care of access conflicts not by locking, but invalidating all connections that
use an object that has been altered by another connection. Zope reacts to this
by retrying the requests whose connection was invalidated. Because everything
is transactional, this works great. There is detailed documentation on ZODB
available at: