eduardo silva - monkey http-server everywhere
Post on 20-Oct-2014
8.210 views
DESCRIPTION
TRANSCRIPT
![Page 1: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/1.jpg)
Monkey
Eduardo Silva ( edsiper )[email protected]
Jonathan Gonzalez ( Zeus )[email protected]
HTTP Server everywhere
![Page 2: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/2.jpg)
< Project Goals >
● Community !● Embedded in mind● Small core / Lightweight● Fast● Flexible API ● Linux Kernel
![Page 3: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/3.jpg)
< General Features >
● HTTP/1.1● Events oriented (async sockets)● Indented configuration● Ready for Embedded
![Page 4: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/4.jpg)
< Hardware Support >
● x86● x64● ARM
![Page 5: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/5.jpg)
< HTTP Client/Server Flow >
![Page 6: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/6.jpg)
< Monkey Architecture >
![Page 7: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/7.jpg)
Indented Configuration
![Page 8: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/8.jpg)
![Page 9: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/9.jpg)
< WORKERS >
● Scheduler
● Clock
![Page 10: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/10.jpg)
< Worker: Scheduler >
“Assign new client connection to a worker thread...”
![Page 11: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/11.jpg)
< Worker: Scheduler >
![Page 12: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/12.jpg)
< Worker: Clock >
“Keep in a global variable the current unix time and also a human readable time format as required per HTTP protocol...”
![Page 13: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/13.jpg)
< Worker: Clock >
![Page 14: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/14.jpg)
< Layer Models >
● OSI : O. System Inter 7 layers ● TCP/IP : Internet 4 layers● MOL : Monkey Layers 3 layers
![Page 15: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/15.jpg)
< Monkey Layers >
![Page 16: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/16.jpg)
< Layer / Networking >
“Expose connectivity capabilities, in a few words: sockets support...”
![Page 17: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/17.jpg)
< Layer / Networking >
![Page 18: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/18.jpg)
< Layer / Events >
“Expose hooks for socket events...”
![Page 19: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/19.jpg)
< Layer / Events >
![Page 20: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/20.jpg)
< Layer / Stages >
“Specify the cycles of an HTTP connection and expose hooks for them...”
![Page 21: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/21.jpg)
< Layer / Stages >
![Page 22: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/22.jpg)
Plugins
![Page 23: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/23.jpg)
< Logger Plugin >
![Page 24: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/24.jpg)
< Logger Plugin >
![Page 25: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/25.jpg)
< Mandril Plugin >
Security
![Page 26: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/26.jpg)
< Mandril Security Plugin >
![Page 27: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/27.jpg)
< Liana Plugin >
Connectivity
![Page 28: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/28.jpg)
< Liana Plugin >
![Page 29: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/29.jpg)
SSL ?
![Page 30: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/30.jpg)
...Yes!
using MatrixSSL
![Page 31: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/31.jpg)
< Liana SSL Plugin >
![Page 32: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/32.jpg)
Liana 6IPv6 Support
![Page 33: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/33.jpg)
< IPv6 Plugin >
![Page 34: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/34.jpg)
HTML5Web Sockets
![Page 35: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/35.jpg)
< WebSockets Plugin >
![Page 36: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/36.jpg)
![Page 37: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/37.jpg)
Palm Plugin & App Server
![Page 38: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/38.jpg)
< Palm Plugin & App Server >
![Page 39: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/39.jpg)
< Benchmark >
![Page 40: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/40.jpg)
< Benchmark >
Apache Benchmark
Archivo : 100 bytes
NginX : v1.0 port = 2002Cherokee : v1.2.2 port = 2003Apache2 : v2.2.17 port = 80Monkey : v0.14.0 port = 2001
ab -n 15000 -c 20 -k http://localhost/100b.txt
![Page 41: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/41.jpg)
< Requests/Second >
Monkey NginX Cherokee Apache0
5000
10000
15000
20000
25000
30000
Requests/Second
![Page 42: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/42.jpg)
< Memory Usage >
Monkey NginX Cherokee0
200
400
600
800
1000
1200
1400
1600
Uso de Memoria
![Page 43: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/43.jpg)
< List of features>
● HTTP/1.1● Virtual Hosts● IPv4 & IPv6● SSL● Security● Log writer
● Basic Auth● Directory Listing● CGI / Palm● Websockets● Shell
![Page 44: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/44.jpg)
< To Do List >
● FastCGI
● NoSQL !
● URL Rewrite
● Improve Docs!
![Page 45: Eduardo Silva - monkey http-server everywhere](https://reader034.vdocument.in/reader034/viewer/2022051411/5444e573afaf9fdb2b8b45be/html5/thumbnails/45.jpg)
< Get Involved ! >
● Community
● Beta Testers
● Art Work
● Documentation
● Coding