r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[!Cheyenne] Discussions about the Cheyenne Web Server

Graham
12-Oct-2006
[147]
However after a few hundred thousand greylisting entries .. it started 
to collapse a little.  I should have gone db ...
Louis
12-Oct-2006
[148]
Doc, I am also one of your fans. I've been going to your web site 
regularly to see if Cheyenne was released. I was excited to be able 
to download it. But I have a problem. Cheyenne loads fine, but when 
I try to test the links on the index.html page they fail. What am 
I doing wrong?
Dockimbel
12-Oct-2006
[149]
Are you using the exe version or source version ? What OS ? Any crash.log 
file found ?
Louis
12-Oct-2006
[150]
Both versions act the same. Win XP Home. No crash.log file found. 
 This is what loads:

[uniserve] Async Protocol FastCGI loaded
[uniserve] Starting task-master...
[uniserve] Starting HTTPd...
Dockimbel
12-Oct-2006
[151]
Can you give me details on what is failing precisely ?
Louis
12-Oct-2006
[152]
Test CGI script

Test RSP script

Test RSP WebApp
Dockimbel
12-Oct-2006
[153]
What error message do you have ?
Louis
12-Oct-2006
[154x3]
For the RSP WebApp test I get:

 The page cannot be displayed 

The page you are looking for is currently unavailable. The Web site 
might be experiencing technical difficulties, or you may need to 
adjust your browser settings.
For Text CGI script I get:


#!/usr/bin/rebol --cgi REBOL [ Title: "show" File: %show.r ] print 
"Content-type: text/html^/" print {Back

} print ["Script path :" system/script/path "

] print 
CGI Object :" print "

 foreach name next first system/options/cgi [ either :name = 'other-headers 
 [ print [
 name 
: 
] foreach [n v] list: system/options/cgi/:name [ print [
 n 
: " mold select list n ""] ] print "
 ][ print [
 name 
: " mold system/options/cgi/:name ""] ] ] print "
 if system/options/cgi/request-method = 

POST" [ vars: make object! decode-cgi make string! input if not empty? 
next first vars [ print " Variables passed :

 foreach name next first vars [ print [
 name 
: " mold vars/:name ""] ] print "
 ] ] print 

For Text RSP script I get:

Back

Timestamp: 


Request parameters :
HTTP Method: 
HTTP Port: 
Client IP address: 
Request headers :
Request variables :
Session :
SID: 
No session
Dockimbel
12-Oct-2006
[157]
Looks like the configuration parameters are not loaded...Did you 
modified your httpd.cfg ?
Louis
12-Oct-2006
[158x3]
No.
However, since it wasn't working, I did set the includes to the SDK 
sources on my harddrive, and then reencapped.
For the tests, I get the same results whither Cheyenne is running 
or not.
Dockimbel
12-Oct-2006
[161x4]
Did you tried without encapping, just using the sourced version ?
The encapping procedure is special for Cheyenne, it needs to be run 
in normal mode first before encapping to preprocess the source and 
generate the .cache.efs file.
Btw you shouldn't get any result if Cheyenne is not running !
Are you testing using the http://localhosturl ?
Louis
12-Oct-2006
[165]
OK, http://localhostworks. I have a lot to learn, as you can see. 
Thanks for helping me through this. I was just clicking on the index.html 
file in the www folder.
BrianH
12-Oct-2006
[166x2]
Can you make the session storage server a RebService, called from 
the various processes that need to read/write the data? That overhead 
might be less than the SQL overhead.
I haven't had a chance to review the Cheyenne source yet. Are the 
subprocesses called by a central broker? Perhaps that broker can 
manage the session data. That way any in-process accesses could be 
almost as fast as straight block access, with only API overhead.
Will
12-Oct-2006
[168]
Brian, that is exaclty how sessions are handled right now. Sessions 
are managed by central broker uniserve with service httpd.r and data 
exchanged with task-handlers subprocesses executing rsp
BrianH
12-Oct-2006
[169]
Well, if you package the session data in a manager API, you can export 
that API as a REBOL Service that subprocess can use as well.
Will
12-Oct-2006
[170]
are rebol services stable and fast?
BrianH
12-Oct-2006
[171x2]
Not sure. I remember that there was a version built on UniServe, 
same as Cheyenne, so we could use that.
Or was it built on BEER?
Dockimbel
12-Oct-2006
[173]
It's BEER I guess, not UniServe/
Louis
12-Oct-2006
[174x3]
Does the REBOL/Plugin work with Cheyenne?
Doc, please see my posts in the Plugin-2 group.
Also, would be nice to have a link on your Cheyenne page to your 
Cheyenne blog.
Dockimbel
13-Oct-2006
[177x2]
REBOL/Plugin: yes, as any other HTTP client.
Blog: I'll add it this WE, I'm still doing adding some features to 
the blog, I'd like to test it a few days more with a low traffic.
BrianH
13-Oct-2006
[179]
I'd love if there were an LNS implementation built on UniServe. This 
would let you turn Cheyenne into a general purpose app server.
Pekr
13-Oct-2006
[180]
general? Rebol general,no? maybe XML-RPC would be interesting for 
non-rebol world, but it could be added too ....
BrianH
13-Oct-2006
[181x2]
I've been thinking of LNS syntax shims that would allow REBOL services 
to be called by non-REBOL clients.
Does Cheyenne have an option to limit which network adapters it will 
serve to? For example, I have 5 adapters on this computer (ethernet, 
wireless, 2 VMware, Hamachi), maybe 6 counting localhost, and I would 
like the web server to only be visible to the virtual adapters, not 
even opening a port on the physical ones.


I remember this being difficult in REBOL, that REBOL would always 
open server ports on all available adapters, so you would have to 
inspect the incoming connections and filter. Have you come up with 
a better workaround for this, or a way to do it properly?
Pekr
13-Oct-2006
[183]
IIRC via set-modes/get-modes, you can know what adapter is involved. 
I am afraid there is no other way how to prevent this. Opening a 
socket is OS thing imo, and I wonder if C socket functions allow 
you to choose your device?
BrianH
13-Oct-2006
[184]
They do, AFAIK. I do have the standard Windows firewall installed, 
but it would be better (lower overhead) to just not open the port 
on the wrong adapters in the first place.
Dockimbel
13-Oct-2006
[185]
It can be done at the C socket level, unfortunately, I don't know 
any way of doing that from REBOL.  I guess that's not supported in 
the current REBOL port!.
Graham
13-Oct-2006
[186x2]
Can Cheynne support Ajax ?
Does each http request spawn a new instance ?
Dockimbel
13-Oct-2006
[188x2]
Ajax is sending standard HTTP requests, so yes.
you mean a new REBOL process ?
Graham
13-Oct-2006
[190x3]
yes.
or uniserve task
Can RSP pages retreive content using async http and return them to 
the client?
Dockimbel
13-Oct-2006
[193x2]
HTTP requests for static ressource are handled in multiplexing mode 
by the main Cheyenne process. Only CGI or RSP can currently spawn 
a new process if there's no free process available to handle the 
job.
Async in RSP: there's nothing preventing that from being used.
Graham
13-Oct-2006
[195x2]
Good to confirm this
I haven't downloaded your latest versions yet .. is a console visible 
?