OpenResty adalah platform open-source berbasis Nginx yang dirancang untuk membangun webserver yang lebih efisien daripada Nginx, terutama dalam menangani lalu lintas tinggi. Dalam artikel ini, kami akan membahas secara mendalam tentang apa itu OpenResty hingga cara install di VPS Ubuntu.
Apa Itu OpenResty?
OpenResty adalah platform yang menggabungkan Nginx dengan berbagai modul tambahan, salah satunya LuaJIT. Dengan LuaJIT, Anda bisa menjalankan kode Lua langsung di dalam server web, yang membuat aplikasi berjalan lebih cepat dan responsif.
Keunggulan lain dari OpenResty adalah kemampuannya mengintegrasikan berbagai modul dari pihak ketiga, sehingga server menjadi lebih efisien dan fleksibel. OpenResty memungkinkan aplikasi web dijalankan langsung di dalam server Nginx tanpa perlu middleware tambahan seperti PHP, Python, atau Node.js.
Singkatnya, OpenResty adalah server aplikasi berbasis Nginx yang sudah dioptimalkan untuk mendukung bahasa Lua. Kombinasi ini menjadikan OpenResty pilihan ideal untuk membangun API, sistem caching, load balancer, dan layanan web lainnya yang membutuhkan performa tinggi dan latensi rendah.
Fitur dan Kelebihan OpenResty
Berikut adalah beberapa fitur dan kelebihan dari OpenResty.
1. Terintegrasi dengan Nginx
OpenResty dibangun diatas webserver Nginx, sehingga Openresty memiliki fitur dari Nginx. Kemampuan menangani atau menerima banyak koneksi sekaligus, serta sistem load balancing yang handal.
2. Menggunakan LuaJIT
OpenResty menggunakan LuaJIT, yaitu sebuah Just-In-Time Compiler untuk bahasa pemrogramman Lua. Dengan LuaJIT, eksekusi kode Lua berjalan lebih cepat dan mendekati performa bahasa pemrograman seperti C.
3. Modul tambahan untuk Nginx
OpenResty menyediakan berbagai modul yang tidak tersedia dalam Nginx asli, yaitu modul berikut ini:
- ngx_lua: Berfungsi agar eksekusi kode Lua langsung dalam request handler yang sama.
- ngx_resty_core: Menyediakan berbagai API tambahan untuk meningkatkan kemampuan Nginx.
- ngx_http_lua_module: Modul utama bahasa Lua dijalankan pada tahap pemrosesan HTTP Request.
4. Kemampuan Caching yang Efektif
Dengan memanfaatkan fitur shared dictionaries berbasis Lua, OpenResty dapat berfungsi sebagai sistem caching yang advance, dapat membantu mengurangi beban server dan mempercepat pemrosesan data.
5. Dukungan Non-Blocking I/O
OpenResty mendukung operasi asynchronous I/O, yang memungkinkan sistem menangani ribuan koneksi secara bersamaan tanpa mengalami bottleneck, sehingga meningkatkan efisiensi dan kinerja server.
6. Kompatibilitas dengan Berbagai Database
OpenResty mendukung integrasi langsung dengan berbagai jenis database, termasuk:
- MySQL
- PostgreSQL
- Redis
- MongoDB
- Cassandra
Dengan fitur-fitur ini, OpenResty menjadi solusi yang fleksibel dan efisien untuk membangun aplikasi web dengan performa tinggi.
7. Fitur Keamanan
Karena berbasis Nginx, OpenResty mewarisi berbagai fitur keamanan dari Nginx, seperti:
- Dukungan SSL/TLS untuk enkripsi komunikasi
- Rate limiting untuk mencegah serangan DDoS
- Request filtering dan blocking berdasarkan rule yang sudah dibuat
- Kompatibel untuk sistem WAF
Selain itu, dengan menggunakan bahasa Lua, pengguna OpenResty dapat menerapkan logika keamanan tambahan, seperti validasi input yang lebih ketat, pembuatan firewall untuk aplikasi (WAF), atau autentikasi khusus untuk sistem web tertentu.
8. Resource yang ringan
Dibandingkan dengan server aplikasi berbasis Java, Node.js, atau PHP-FPM, OpenResty jauh lebih ringan dalam penggunaan resource pada server. Karena OpenResty dapat menangani pemrosesan logika bisnis langsung di dalam server Nginx tanpa middleware tambahan, penggunaan CPU dan RAM dapat ditekan seminimal mungkin.
Hal ini menjadikannya pilihan yang sangat baik untuk digunakan pada server dengan spesifikasi rendah atau dalam lingkungan yang membutuhkan efisiensi tinggi.
Lebih Baik Nginx atau OpenResty?
Nginx dan OpenResty sering digunakan untuk menjadi webserver utama, tetapi keduanya memiliki perbedaan yang cukup signifikan, sehingga tiap webserver lebih cocok untuk kebutuhan masing-masing. Berikut adalah perbandingan antara Nginx dan OpenResty dari berbagai aspek:
1. Arsitektur sistem dan Pengembangan
- Nginx adalah server web dan reverse proxy yang sangat cepat dan efisien dalam menangani banyak koneksi simultan. Nginx menggunakan arsitektur event-driven yang membuatnya lebih ringan dibandingkan server berbasis threading seperti Apache.
- OpenResty adalah pengembangan dari Nginx yang ditingkatkan dengan dukungan LuaJIT dan berbagai modul tambahan. OpenResty memungkinkan penggunaan bahasa pemrograman Lua untuk mengatur request dan response dengan lebih fleksibel.
2. Performa dan Efisiensi
- Nginx terkenal dengan efisiensinya dalam menangani lalu lintas web yang tinggi dengan konsumsi sumber daya yang rendah.
- OpenResty memiliki performa yang sebanding dengan Nginx tetapi lebih fleksibel berkat dukungan scripting Lua. LuaJIT yang digunakan oleh OpenResty memiliki kecepatan hampir setara dengan C, sehingga tambahan fitur tidak terlalu membebani server.
3. Fleksibilitas dan Kustomisasi
- Nginx mengandalkan konfigurasi berbasis file dan modul bawaan. Untuk menambahkan fitur khusus, biasanya harus menggunakan ekstensi pihak ketiga atau menulis modul dalam C.
- OpenResty memungkinkan pengguna menulis skrip dalam Lua untuk menangani request dengan cara yang lebih fleksibel, seperti autentikasi kustom, load balancing berbasis aturan, dan modifikasi request-response secara real-time.
4. Dukungan Modul dan Integrasi
- Nginx memiliki berbagai modul bawaan, seperti proxying, caching, dan load balancing, tetapi fitur tambahan sering kali memerlukan kompilasi ulang atau konfigurasi manual.
- OpenResty sudah menyertakan banyak modul tambahan di dalamnya, seperti:
- ngx_lua untuk menjalankan Lua
- lua-resty-redis untuk koneksi langsung ke Redis
- lua-resty-mysql untuk integrasi MySQL tanpa middleware tambahan
5. Keamanan
- Nginx memiliki berbagai fitur keamanan seperti rate limiting, DDoS protection, dan request filtering.
- OpenResty juga mewarisi semua fitur keamanan Nginx, tetapi dengan tambahan kemampuan scripting untuk menerapkan aturan keamanan yang lebih kompleks. Misalnya, OpenResty dapat digunakan untuk membuat firewall berbasis aplikasi, autentikasi API kustom, atau sistem anti-bot.
Cara Install OpenResty di VPS Ubuntu
OpenResty dapat mudah di install pada VPS Ubuntu 20.04, pada kali ini kita akan mencoba installasi OpenResty menggunakan apt
, Sebelum installasi pastikan tidak ada webserver yang aktif didalam server, semisal apache atau nginx.
Step 1. Installasi Package
Sebelum memulai installasi OpenResty, Kita perlu melakukan update dan upgrade pada kernel OS Ubuntu.
# sudo apt update
# sudo apt upgrade
Ketika package telah di update, selanjutnya menginstall package yang dibutuhkan untuk openresty agar dapat berjalan.
# sudo apt install -y curl wget gnupg ca-certificates lsb-release software-properties-common
Step 2. Import Key OpenResty
Langkah selanjutnya adalah mengimport GPG Key. Silahkan gunakan perintah berikut:
# wget -O - https://openresty.org/package/pubkey.gpg | sudo apt-key add -
Lalu, tambahkan Repository dari openresty dengan perintah:
# echo "deb http://openresty.org/package/ubuntu $(lsb_release -sc) main" > openresty.list
# sudo cp openresty.list /etc/apt/sources.list.d/
Tambahkan repository Openresty, jika sudah ditambahkan, jalankan update untuk verifikasi repository sebelum menginstall.
# echo "deb http://openresty.org/package/arm64/ubuntu $(lsb_release -sc) main"
# sudo apt-get update
Step 3. Install dan Menjalankan OpenResty
Setelah menambahkan repository dan menjalankan update, langkah selanjutnya adalah installasi openresty.
# sudo apt-get -y install --no-install-recommends openresty
Jika telah menginstall, verifikasi installasi openresty dengan menjalankan.
# which openresty atau openresty -V
Step 4. Verifikasi Installasi dan Pengujian
Sampai saat ini kita telah berhasil menginstall OpenResty, langkah selanjutnya adalah menjalankan OpenResty dan mencoba melakukan pengujian dengan curl.
# sudo systemctl start openresty
Periksa apakah openresty telah berhasil dijalankan dengan systemctl
.
# systemctl status openresty
Kita dapat mencoba mengakses IP address server kita untuk memastikan apakah OpenResty telah berjalan.
Kita juga dapat melakukan pemeriksaan menggunakan curl pada ssh.
Demikian artikel kami tentang apa itu OpenResty, fiturnya, hingga cara install OpenResty di Ubuntu pada layanan VPS KVM. Semoga bermanfaat.