1
0
Fork 0
mirror of https://github.com/warmcat/libwebsockets.git synced 2025-03-16 00:00:07 +01:00
libwebsockets/minimal-examples/http-server/minimal-http-server-multivhost
Andy Green e4a3e8c4d4 LWS_WITH_MINIMAL_EXAMPLES: default-off build all minimal samples after lws for QA
This adds an lws cmake option that builds all the minimal examples as part of lws,
it's useful for QA.

It adds a macro to examples that depend on a particular lws configuration to understand
they should just null out their project definition in builds where the lws configuration
requirement is not met, and we are building as part of lws.

It also adapts all the example library additions to select the just-built-but-not-yet-installed
library in the case it is built as part of lws.  If built standalone, it now uses the cmake
platform-abstracted way to add the library requirement too.
2018-04-06 10:38:03 +08:00
..
mount-origin-localhost1 minimal: ws-client-tx and change dir names to match project name 2018-04-06 10:38:03 +08:00
mount-origin-localhost2 minimal: ws-client-tx and change dir names to match project name 2018-04-06 10:38:03 +08:00
mount-origin-localhost3 minimal: ws-client-tx and change dir names to match project name 2018-04-06 10:38:03 +08:00
CMakeLists.txt LWS_WITH_MINIMAL_EXAMPLES: default-off build all minimal samples after lws for QA 2018-04-06 10:38:03 +08:00
minimal-http-server.c minimal: ws-client-tx and change dir names to match project name 2018-04-06 10:38:03 +08:00
README.md minimal: ws-client-tx and change dir names to match project name 2018-04-06 10:38:03 +08:00

lws minimal http server multivhost

This creates a single server that creates three vhosts listening on both :7681 and :7682. Two separate vhosts share listening on :7682.

vhost listens on port serves
localhost1 7681 ./mount-origin-localhost1
localhost2 7682 ./mount-origin-localhost2
localhost3 7682 ./mount-origin-localhost3

Notice the last two both listen on 7682. If you visit http://localhost:7682, by default you will get mapped to the first one, localhost2.

However if you edit /etc/hosts on your machine and add

127.0.0.1 localhost3

so that you can visit http://localhost3:7682 in your browser, lws will use the Host: localhost3 header sent by your browser to select the localhost3 vhost for the connection, and you will be served content from ./mount-origin-localhost3

build

 $ cmake . && make

usage

 $ ./lws-minimal-http-server-multivhost
[2018/03/16 09:37:20:0866] USER: LWS minimal http server-multivhost | visit http://localhost:7681 / 7682
[2018/03/16 09:37:20:0867] NOTICE: Creating Vhost 'localhost1' port 7681, 1 protocols, IPv6 off
[2018/03/16 09:37:20:0868] NOTICE: Creating Vhost 'localhost2' port 7682, 1 protocols, IPv6 off
[2018/03/16 09:37:20:0869] NOTICE: Creating Vhost 'localhost3' port 7682, 1 protocols, IPv6 off
[2018/03/16 09:37:20:0869] NOTICE:  using listen skt from vhost localhost2

Visit http://localhost:7681 and http://localhost:7682