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
9-Jun-2007
[1440x3]
Script: "Cheyenne Web Server" (9-Jun-2007)
Script: "Untitled" (none)
[uniserve] Async Protocol FastCGI loaded
[uniserve] Starting task-master...
[uniserve] Starting HTTPd...
make object! [
    code: 300
    type: 'script
    id: 'no-value
    arg1: 'do-events
    arg2: none
    arg3: none
    near: [do-events]
    where: none
]
>>
Needs rebol/view ???
>> do-events: func [
[        "Process all View events."
[    ][
[        wait []
[    ]
>> do %cheyenne.r
Script: "Cheyenne Web Server" (9-Jun-2007)
Script: "Untitled" (none)
[uniserve] Async Protocol FastCGI loaded
[uniserve] Starting task-master...
[uniserve] Starting HTTPd...
Will
9-Jun-2007
[1443]
in cheyenne.r:
- if unset? 'do-events [do-events: does [wait []]]
+ if not value? 'do-events [do-events: does [wait []]]
Graham
9-Jun-2007
[1444x2]
must be a mistake
instead of using do-events, just use wait []
Dockimbel
10-Jun-2007
[1446]
do-events == wait [ ], the docstring inside do-events func spec is 
not accurate, it should be "Process all events".
Maarten
10-Jun-2007
[1447x2]
Woha!
(that's a compliment ;-)
Dockimbel
10-Jun-2007
[1449]
Archive re-released with a fixed test for 'do-events.
Maarten
10-Jun-2007
[1450x2]
2 questions: will you combine this with nysql:// ? I would like the 
session management to be databse driven so that load-balancing becomes 
easier?
*mysql://
Dockimbel
10-Jun-2007
[1452x2]
hum, it should be possible to store session data in DB, but you'll 
loose performances compared to keeping it in memory (it's stored 
in Cheyenne's main process).
what kind of load-balancing architecture do you have in mind ?
Maarten
10-Jun-2007
[1454x5]
multiple web servers with sessions and database driven content. So 
based on the session ID i generate personalized content
If the session ID is persistent in a DB any Cheyenne can handle the 
request
Ideally, you can configure the session mgt backend in httpd.cfg
Other question: how do I create a friendly URL mapping in Cheyenne? 
using the publish-site dialect?
(hope I'm not too demanding, just trying to match Cheyenne against 
a lot fatures I use in my projects)
Dockimbel
10-Jun-2007
[1459]
If you're using Cheyenne in embed-mode, 'publish-site let you define 
whatever URL mapping you want. In standalone Cheyenne, there's no 
general way to define URL mapping, it's currently up to each module 
(CGI, RSP,...) to handle their specific mappings. I'm hoping that 
the future mod-rewrite will allow efficient and general URL mapping 
(there's a mod-rewrite published by Will, who could already do that).
Maarten
10-Jun-2007
[1460x2]
I think that embedded mode might be the killer. Especially if you 
can combine it with encapsulation on a virtual file system
Is there a module writing 101?
Dockimbel
10-Jun-2007
[1462]
About the DB stored sessions shared across multiple Cheyenne instances, 
it would require a significant change in the current way session 
data and especially, session synchronization is handled (currently, 
it relies on semaphores and queuing to achieve that).
Maarten
10-Jun-2007
[1463]
OK. The other option is using a load balancer that support sticky 
sessions
Dockimbel
10-Jun-2007
[1464]
Encapsulation with virtual file system : that's planned for next 
week ;-)
Oldes
10-Jun-2007
[1465]
And how it's with php and fastcgi?
Maarten
10-Jun-2007
[1466x2]
But... also for fail-over it is nice to have it databas driven
OK. Although I must say that on second thought for serverside softwware 
encapsulation isn't that interesting
Dockimbel
10-Jun-2007
[1468]
I agree, sessions need to be stored somewhere on disk for fail-over.
Oldes
10-Jun-2007
[1469]
Not just session... user passwords as well
Maarten
10-Jun-2007
[1470]
And credit card numbers!
Oldes
10-Jun-2007
[1471]
:)
Terry
10-Jun-2007
[1472]
Yeah, and sessions are fine if you don't mind logging in everytime 
you open your browser
Maarten
10-Jun-2007
[1473]
Terry: do you mind?
Terry
10-Jun-2007
[1474x2]
?
What, Im Trolling again?
Maarten
10-Jun-2007
[1476x2]
No! I meant : do you mind logging in every time....
And if so, what do you prefer and how do you solve it.
Terry
10-Jun-2007
[1478]
ah ;)  yeah.. its a hassle
Dockimbel
10-Jun-2007
[1479]
Terry: I may add an option to make sessions persistent on client-side, 
but that require cookies with expire time, means failing again in 
REBOL timezone issues...
Maarten
10-Jun-2007
[1480]
Funny, I consider it basic security
Dockimbel
10-Jun-2007
[1481]
me too
Terry
10-Jun-2007
[1482]
What i did with Framewerks is when a client logs in, I generate a 
random hash, and store it as a cookie, as well as on the DB associated 
with that user.
Graham
10-Jun-2007
[1483]
Logging in is good
Terry
10-Jun-2007
[1484]
Set the cookie to expire in 10 hours (log in once a day)
Graham
10-Jun-2007
[1485]
the application can automate if necessary
Oldes
10-Jun-2007
[1486]
I have expiration in 30minutes if there is no action
Maarten
10-Jun-2007
[1487]
On wirting modules, is this how it works: (?)
- create a mod-<name>.r
- start with install HTTPd-extension
- name 'mod-name

- order -> this I don't get but it controls the flow through mezzanines
 the rest is custom code


Q: what other data is available in a mod and what is the order thingy?
Terry
10-Jun-2007
[1488]
I associate the the IP with the user a well.. if the IP is a mismatch, 
the cookie is void
Dockimbel
10-Jun-2007
[1489]
Re: php / fastcgi, didn't had time to work on it this week, but it's 
high priority for my company, we need to put a few php apps onlin 
with Cheyenne, so I'll work on that in the next days.