Ouistiti (ˈwistiti) adalah nama Prancis dari Marmoset monyet kecil dari dunia baru.
Ouistiti adalah server web kecil untuk mengelola dan mengkonfigurasi perangkat kecil. Ini memungkinkan untuk membuat antarmuka web terpadu untuk keamanan pada dokumen , WebSocket , REST API dan banyak lagi.
Ouistiti didedikasikan untuk tertanam pada perangkat untuk dikontrol dari server web.
Dengan Ouistiti , semua halaman, websockets, skrip dilindungi dengan cara yang sama. Tidak ada gunanya mengelola otentikasi dengan diri Anda sendiri.
Koneksi TLS/SSL tersedia sebagai modul dengan MBEDTLS atau OpenSSL Library.
Otentikasi tersedia di semua koneksi klien . Kata sandi pengguna mungkin dienkripsi untuk penyimpanan. Tantangan berikut didukung:
Modul membangun jembatan websocket antara klien soket http dan soket unix. Ini dapat mengelola jabat tangan dan transfer data ke aplikasi Anda. Anda mengembangkan server Cammands di soket UNIX, Ouistiti melindunginya dengan koneksi HTTPS dan gerbang otentikasi. Anda dapat menemukan contoh server:
Seperti Websocket , Ouistiti dapat melindungi server stream Anda. Aplikasi Anda hanya boleh mengirim data pada soket UNIX, Ouistiti melakukan sisanya.
Seperti server web lainnya, Ouistiti dapat mengirim segala jenis file ke klien Anda. Dan pada saat yang sama dapat mengelolanya di server Anda:
Script CGI dapat dihubungi dari klien.
Beberapa URI harus dialihkan pada URI lain. Modul ini melakukannya dengan hanya file konfigurasi.
Server dapat dimulai dengan daftar hitam dan daftar putih alamat IP.
Server menyimpan ke dalam database aturan tentang akses URI. Aturan adalah kombinasi dari "peran" pengguna, jenis permintaan dan ekspresi pada URI. Setiap permintaan diperiksa setelah otentikasi dan sebelum mengakses ke resource.
Modul berisi RESTAPI sendiri untuk mengatur database, dan menggunakan modul otentikasi untuk pemeriksaan hak.
Modul ini dapat meningkatkan koneksi dan mentransfer data antara soket yang dibuka dan server soket UNIX.
Server UNIX dapat mengirim dan menerima segala jenis data di soket. Ini memungkinkan untuk menggunakan kembali server yang tidak aman dan menggunakan fitur HTTP seperti otentikasi dan koneksi TLS.
Ini ditutup untuk modul Websocket, tetapi mungkin berguna untuk beberapa protokol melalui HTTP.
Modul ini menjalankan interpretor Python untuk memanggil skrip. Saat ini, modul ini dipentaskan dan ingin menjalankan situs Django.
Ouistiti dapat dibangun untuk mengelola koneksi klien dengan hanya satu proses, untuk menjadi server web tercepat . Atau dapat membuat proses independen untuk setiap koneksi klien, untuk membuat kotak pasir di sekitarnya.
Ouistiti ditulis untuk dibangun di atas sistem maksimum. Kode sesuai dengan C99, utas dapat dinonaktifkan dan konfigurasi dapat dimuat dari memori.
Ouistiti dibangun di atas Perpustakaan Libhttpserver. Perpustakaan ini berisi parser http, manajemen soket dan beberapa modul generik.
Proyek ini tersedia di GitHub
libhttpserver dapat diganti namanya menjadi libouistiti ketika sumber perpustakaan tersedia di dalam proyek ouistiti .
Proyek LIBB64 wajib dengan beberapa tambalan. Sumber tersedia dalam proyek Ouistiti atau di dalam proyek Ouistiti .
Dukungan SSL/TLS dapat disediakan oleh beberapa perpustakaan:
Untuk dialog otentikasi dengan klien, kata sandi dapat dienkripsi dengan algoritma MD5 (yang ini tidak aman, tetapi setidaknya wajib untuk otentikasi dasar dan pencernaan). Jika SSL/TLS tidak tersedia, satu perpustakaan MD5 wajib untuk modul otentikasi:
Ouistiti tidak boleh menggunakan pustaka pthread, ini tergantung pada konfigurasi. Tetapi beberapa alat dapat menggunakan pustaka pthread seperti server WebSocket.
Ouistiti menggunakan perpustakaan libconfig, untuk mengatur server, dan modul yang berbeda.
Dokumentasi: mod_auth
Versi pertama berjalan di Linux dan Windows. Saat ini hanya versi Linux yang diuji.
Langkah pertama mengunduh pohon sumber.
$ git clone https://github.com/ouistiti-project/ouistitiDan proyek libhttpserver
$ git clone https://github.com/ouistiti-project/libhttpserverAda 2 cara untuk membangun:
Proyek ini menggunakan Makemore untuk membangun semua binari.
Makemore berisi file gnumake dan skrip konfigurasi . Script digunakan untuk menulis file konfigurasi dari file default.config . Dengan konfigurasi Anda dapat memilih direktori instalasi dan bagian yang akan dibangun.
$ ./configure --prefix=/usr --libdir=/usr/lib/ouistiti --sysconfdir=/etc/ouistitiMakemore dapat berjalan sebagai KBuild Makefile. Dimungkinkan untuk memilih file konfigurasi secara langsung dengan Make.
Konfigurasi lain tersedia di dalam konfigurasi/ direktori: * fastmono_defconfig untuk server cepat tetapi tanpa perlindungan crash. * fullforked_defconfig untuk server yang dapat terus berjalan setelah kehancuran koneksi.
$ make fastmono_defconfigatau
$ make fullforked_defconfigatau untuk konfigurasi default:
$ make defconfigUntuk perangkat tertanam seperti gateway atau kotak, fullforked_defconfig direkomendasikan.
Konfigurasi adalah file teks dengan bidang dan nilai. File defconfig pada direktori root tidak boleh diubah. Dimungkinkan untuk memodifikasi atau menyalin file yang ada di Configs/ Directory.
Ladang
File_config: Gunakan file ouistiti.conf untuk konfigurasi.
VThread: Aktifkan multithreading ke server.
VTHREAD_TYPE: Ambil nilai seperti [fork | pthread | windows] untuk menentukan cara mengelola utas.
Statis: Bangun aplikasi, pustaka (libhttpserver, libouiutils ...) dan modul menjadi biner mandiri.
Dibagi: Bangun/tautkan pustaka dinamis (libhttpserver, ...) dan aplikasi dengan modul terintegrasi.
Modul: Bangun modul sebagai pustaka dinamis, aplikasi akan memuat pada waktu berjalan.
MAX_SERVERS: Izinkan untuk memilih jumlah server dan host virtual untuk dikelola.
Kompilasi dilakukan dengan Gmake dan menerima konfigurasi di baris perintah.
Ouistiti tersedia Debug opsi tertentu untuk menambahkan jejak dalam kode dan simbol debug.
$ make DEBUG=y[Makemore] memungkinkan untuk menonton garis kompilasi dengan opsi V :
$ make V=1Ouistiti dapat dibangun untuk target lain selain pembuatan host. Untuk melakukan itu, Anda perlu menambahkan beberapa konfigurasi:
$ make CROSS_COMPILE=arm-linux-gnueabihfInstalasi default akan menyalin perpustakaan ke /usr/local/lib/ direktori, dan biner ke /usr/lokal/bin dengan konfigurasi default. Jalur dapat diubah selama konfigurasi proyek (lihat di bawah)
> make installUntuk membuat pohon direktori baru sebelum instalasi, variabel destdir dapat diubah.
> make DESTDIR= ~ /packages/ouistiti installOuistiti didistribusikan dengan resep untuk membangun paket distribusi.
Ouistiti menggunakan libconfig untuk konfigurasi. Temukan informasi lebih lanjut ke bab Konfigurasi.
Ouistiti memungkinkan untuk memilih setiap fitur yang Anda butuhkan selama konfigurasi build. Konfigurasi default memungkinkan untuk menggunakan semua fitur ke tempat minimum.
Di sini beberapa ukuran untuk lengan setelah stripping:
Penggunaan memori tergantung pada konfigurasi build dan jumlah koneksi simultan.
Dengan konfigurasi default untuk arsitektur lengan, penggunaannya sekitar 4,5 juta untuk proses utama dan sekitar 13,5 juta untuk koneksi setiap klien. Tetapi konfigurasi kecil hanya membutuhkan 5,5 bulan .
Dengan hanya satu proses di Ouistiti , VMSZE adalah sekitar 26mo .
Halaman Kinerja memberikan lebih banyak informasi tentang penggunaan memori.
Ouistiti bukan server web untuk jaringan besar, tetapi mendapatkan hasil yang baik untuk pengiriman dokumen. Kinerja tergantung pada konfigurasi build dan Anda perlu.
Ouistiti mungkin lebih cepat dari Lighttpd 1.4, tetapi tanpa semua fitur. Anda dapat menemukan beberapa hasil tes ke halaman Kinerja.