Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
This is the hunchentoot-multi-acceptor Reference Manual, version 0.0.1, generated automatically by Declt version 3.0 "Montgomery Scott" on Sun May 15 05:01:22 2022 GMT+0.
• Introduction | What hunchentoot-multi-acceptor is all about | |
• Systems | The systems documentation | |
• Files | The files documentation | |
• Packages | The packages documentation | |
• Definitions | The symbols documentation | |
• Indexes | Concepts, functions, variables and data types |
Typically each hunchentoot acceptor listens on a single port, and typically serves a single domain. A typical configuration is to have a frontend webserver like Nginx to route requests to the appropriate port.
This is hard to manage when the number of domains keep increasing (which is typical for small companies trying to iterate on different products). hunchentoot-multi-acceptor simplifies the configurations of such systems.
As an example, I personally run tdrhq.com (my personal website) and jipr.io (a project I'm working on.) These have two different hunchentoot acceptors:
(defvar *tdrhq-acceptor* (make-instance 'hunchentoot:easy-acceptor
:port nil
:name 'tdrhq))
(defvar *jipr-acceptor*
(make-instance 'hunchentoot:easy-acceptor
:port nil
:name 'jipr))
These definitions could be in different packages and systems, it
doesn't matter. Also the :port
argument is useful when developing
locally and want to test only one of the websites, but it won't be
used by multi-acceptor.
Now, we have a multi-acceptor setup as follows:
(defparameter *multi-acceptor* (make-instance 'hunchentoot-multi-acceptor:multi-acceptor :port 4001 :name 'multi-acceptor))
(hunchentoot-multi-acceptor:add-acceptor *multi-acceptor* "tdrhq.com" *tdrhq-acceptor*)
(hunchentoot-multi-acceptor:add-acceptor *multi-acceptor* "www.jipr.io" *jipr-acceptor*)
(hunchentoot:start *multi-acceptor*)
At this point, you can configure your Nginx frontend for both websites
to point to localhost:4001
. Make sure the "Host" header is
appropriately set. (proxy_set_header Host $host:$server_port
). After
that hunchentoot-multi-acceptor will take care of routing to the
appropriate acceptor. Only one port will be opened.
Apache License, Version 2.0
Next: Files, Previous: Introduction, Up: Top [Contents][Index]
The main system appears first, followed by any subsystem dependency.
• The hunchentoot-multi-acceptor system |
Arnold Noronha <arnold@jipr.io>
Apache License, Version 2.0
Multiple domain support under single hunchentoot acceptor
0.0.1
Files are sorted by type and then listed depth-first from the systems components trees.
• Lisp files |
• The hunchentoot-multi-acceptor.asd file | ||
• The hunchentoot-multi-acceptor/package.lisp file | ||
• The hunchentoot-multi-acceptor/hunchentoot-multi-acceptor.lisp file |
Next: The hunchentoot-multi-acceptor/package․lisp file, Previous: Lisp files, Up: Lisp files [Contents][Index]
hunchentoot-multi-acceptor.asd
hunchentoot-multi-acceptor (system)
Next: The hunchentoot-multi-acceptor/hunchentoot-multi-acceptor․lisp file, Previous: The hunchentoot-multi-acceptor․asd file, Up: Lisp files [Contents][Index]
hunchentoot-multi-acceptor (system)
package.lisp
Previous: The hunchentoot-multi-acceptor/package․lisp file, Up: Lisp files [Contents][Index]
package.lisp (file)
hunchentoot-multi-acceptor (system)
hunchentoot-multi-acceptor.lisp
Next: Definitions, Previous: Files, Up: Top [Contents][Index]
Packages are listed by definition order.
• The hunchentoot-multi-acceptor package |
package.lisp (file)
Definitions are sorted by export status, category, package, and then by lexicographic order.
• Exported definitions | ||
• Internal definitions |
Next: Internal definitions, Previous: Definitions, Up: Definitions [Contents][Index]
• Exported special variables | ||
• Exported functions | ||
• Exported generic functions | ||
• Exported classes |
Next: Exported functions, Previous: Exported definitions, Up: Exported definitions [Contents][Index]
Next: Exported generic functions, Previous: Exported special variables, Up: Exported definitions [Contents][Index]
Next: Exported classes, Previous: Exported functions, Up: Exported definitions [Contents][Index]
automatically generated reader method
automatically generated writer method
Previous: Exported generic functions, Up: Exported definitions [Contents][Index]
acceptor (class)
sub-acceptors (generic function)
(setf sub-acceptors) (generic function)
:listen-fd
listen-fd (generic function)
(setf listen-fd) (generic function)
Previous: Exported definitions, Up: Definitions [Contents][Index]
• Internal functions | ||
• Internal generic functions | ||
• Internal classes |
Next: Internal generic functions, Previous: Internal definitions, Up: Internal definitions [Contents][Index]
Next: Internal classes, Previous: Internal functions, Up: Internal definitions [Contents][Index]
automatically generated reader method
automatically generated writer method
Previous: Internal generic functions, Up: Internal definitions [Contents][Index]
request (class)
process-request (method)
Previous: Definitions, Up: Top [Contents][Index]
• Concept index | ||
• Function index | ||
• Variable index | ||
• Data type index |
Next: Function index, Previous: Indexes, Up: Indexes [Contents][Index]
Jump to: | F H L |
---|
Jump to: | F H L |
---|
Next: Variable index, Previous: Concept index, Up: Indexes [Contents][Index]
Jump to: | (
A C D F G L M S |
---|
Jump to: | (
A C D F G L M S |
---|
Next: Data type index, Previous: Function index, Up: Indexes [Contents][Index]
Jump to: | *
L S |
---|
Jump to: | *
L S |
---|
Previous: Variable index, Up: Indexes [Contents][Index]
Jump to: | C H M P S |
---|
Jump to: | C H M P S |
---|