Instalasi dan Konfigurasi NGINX di OpenBSD - Port HTTP dan HTTPS
Berbicara mengenai web server, yang terlintas di pikiran kebanyakan dari kita adalah Apache. Oke, betul sekali, karena Apache merupakan salah satu web server yang paling populer di dunia dan banyak digunakan oleh banyak website di dunia maya.
Namun, kali ini saya tidak akan membahas web server Apache, kali ini saya akan membahas salah satu web server yang saat ini sedang naik daun dan mulai populer, yaitu Nginx.
Nginx merupakan web server yang bersifat open source seperti Apache, namun sangat ringan dan cepat dalam pemrosesannya. Sejak dirilis, Nginx hanya memiliki fungsi sebagai HTTP atau sebagai web serving saja. Berbeda dengan Apache yang memiliki fitur yang lengkap dengan berbagai modul yang tertanam di dalamnya, hal tersebut justru membuatnya menjadi lebih berat.
Saat ini, Nginx sedang populer dan dilengkapi dengan berbagai fitur canggih, sehingga akan membuat tampilan website Anda menjadi lebih menarik dan tentunya powerful.
Nginx juga memiliki banyak fitur dan dapat digunakan sebagai berbagai server, seperti:
- Server proxy terbalik untuk protokol HTTP, HTTPS, SMTP, POP3, dan IMAP.
- Load balancer dan cache HTTP.
- Proxy front-end untuk Apache dan server web lainnya, menggabungkan fleksibilitas Apache dengan kinerja konten statis Nginx yang hebat.
- Caching: Menyimpan data yang sering diakses untuk pengiriman cepat.
- Keamanan: Dapat memfilter permintaan, memblokir serangan, dan menyembunyikan detail backend.
- Fleksibilitas: Berfungsi di hampir semua OS dan dapat digunakan untuk layanan web, email, dan streaming.
- Kecepatan: Menangani file statis (gambar, CSS, JS) dengan sangat cepat.
- Efisiensi: Menggunakan memori dan CPU minimal, bahkan dengan ribuan koneksi.
1. Cara Instal Nginx
Tentu saja ini bukan satu-satunya tutorial yang menjelaskan cara install Nginx. Akan tetapi, kami telah membuat konten artikel ini menjadi sederhana agar memudahkan pembaca memahami isi artikel. Untuk menginstal Nginx di OpenBSD, Anda dapat melakukannya dengan dua cara, yaitu pkg_add dan ports. Agar semua library dapat terinstal secara lengkap, kami akan menggunakan sistem ports untuk menginstal Nginx. Jalankan perintah di bawah ini untuk memulai proses instalasi Nginx.
Pertama-tama, kami akan mengecek versi Nginx yang tersedia di repositori OpenBSD.
foo# pkg_info -Q nginx nginx-1.24.0p0
Setelah mengetahui versi Nginx di repositori OpenBSD, kami mulai menginstal Nginx.
foo# cd /usr/ports/www/nginx foo# make build foo# make install foo# make clean
Atau, jika Anda ingin menginstal Nginx dengan pkg_add, jalankan perintah di bawah ini.
foo# pkg_add nginx-1.24.0p0
Setelah itu, Anda memulai dan mengaktifkan Nginx untuk memulai pada waktu boot di OpenBSD.
foo# rcctl enable nginx foo# rcctl restart nginx
2. Konfigurasi Nginx Port 80 HTTP
Pada OpenBSD, file konfigurasi Nginx utama terletak di direktori /etc/nginx. Di direktori tersebut terdapat file bernama nginx.conf. File ini merupakan file yang mengatur semua perilaku Nginx di server OpenBSD.
Sebelum melanjutkan pembahasan ini, pastikan Nginx berjalan normal di OpenBSD. Untuk mengkonfigurasi Nginx port 80 atau http, kita akan membuat virtual host untuk port 80. Untuk melakukannya, buka file nginx.conf lalu hapus semua isi skrip dan ganti dengan skrip di bawah ini.
foo# cd /etc/nginx foo# nano nginx.conf user www; worker_processes 1; error_log logs/error.log; pid logs/nginx.pid; worker_rlimit_nofile 1024; events { worker_connections 800; } http { include mime.types; default_type application/octet-stream; index index.html index.htm; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; keepalive_timeout 65; server_tokens off; include /etc/nginx/vhosts.conf; }
Setelah itu, Anda buat file /etc/nginx/vhosts.conf.
foo# touch /etc/nginx/vhosts.conf
Dalam file vhosts.conf, ketik skrip di bawah ini untuk menjalankan Nginx port 80.
foo# nano /etc/nginx/vhosts.conf server { listen 80; listen [::]:80; server_name datainchi.com; root /var/www/htdocs/serverblock; error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/htdocs/serverblock; } }
Buat direktori untuk host virtual, jalankan perintah di bawah ini untuk membuat direktori /var/www/htdocs/serverblock.
foo# mkdir -p /var/www/htdocs/serverblock
Lanjutkan dengan membuat file index.html dan jalankan perintah untuk membuat kepemilikan dan izin.
foo# touch /var/www/htdocs/serverblock/index.html foo# chown -R www:www /var/www/htdocs/serverblock/ foo# chmod -R 775 /var/www/htdocs/serverblock
Pada file /var/www/htdocs/serverblock/index.html, ketik skrip seperti pada contoh di bawah ini.
foo# touch /var/www/htdocs/serverblock/index.html foo# chown -R www:www /var/www/htdocs/serverblock/ foo# chmod -R 775 /var/www/htdocs/serverblock
Pada file index.html, ketik skrip seperti pada contoh di bawah ini.
foo# nano /var/www/htdocs/serverblock/index.html <html> <head> <title>Nginx port 80</title> </head> <body> <p align="center">Welcome to Nginx Virtual Host port HTTP</p> </body> </html>
Jalankan Nginx dengan perintah rcctl.
foo# rcctl restart nginx nginx(ok) nginx(ok)
Untuk memeriksa apakah server NGinx berjalan normal atau masih ada kesalahan skrip, jalankan perintah curl, seperti pada contoh di bawah ini.
foo# curl 192.168.5.3:80 <html> <head> <title>Nginx port 80</title> </head> <body> <p align="center">Welcome to Nginx Virtual Host port HTTP</p> </body> </html>
3. Konfigurasi Nginx Port 443 HTTPS
Setelah Anda memahami cara menjalankan Nginx pada port 80 atau HTTP. Kita lanjutkan dengan menjalankan Nginx pada port 443 atau HTTPS. Pada port 443, NGinx memerlukan enkripsi sertifikat SSL. Pembuatan sertifikat SSL, sebagai langkah pertama dalam memulai konfigurasi Nginx HTTPS.
a. Buat certificate SSL
Kami menggunakan OpenSSL untuk membuat sertifikat SSL untuk Nginx yang gratis. Dengan OpenSSL Anda dapat membuat sertifikat SSL dengan mudah. ??Berikut ini adalah contoh pembuatan sertifikat SSL dengan OpenSSL.
foo# cd /etc/nginx foo# mkdir -p SSL foo# cd SSL
Setelah Anda membuat direktori SSL, lanjutkan dengan menjalankan OpenSSL untuk mulai membuat sertifikat SSL.
foo# foo# openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/nginx/SSL/nginxssl.key -out /etc/nginx/SSL/nginxssl.crt
b. Buat Server root HTTPS
Setelah Anda memiliki sertifikat SSL, langkah selanjutnya adalah membuat direktori host virtual untuk Nginx HTTPS dan memberikan perintah kepemilikan dan izin. Perhatikan contoh di bawah ini.
foo# mkdir -p /var/www/htdocs/nginxssl foo# chown -R www:www /var/www/htdocs/nginxssl/ foo# chmod -R 775 /var/www/htdocs/nginxssl/
Buat file index.html yang akan kita gunakan untuk menguji Nginx HTTPS. Pada file index.html, ketik skrip di bawah ini.
foo# touch /var/www/htdocs/nginxssl/index.html foo# nano /var/www/htdocs/nginxssl/index.html <html> <head> <title>Nginx port 443</title> </head> <body> <p align="center">Welcome to Nginx Virtual Host port 443 HTTPS</p> </body> </html>
c. Konfigurasi Nginx HTTPS
Untuk menjalankan Nginx port 443, Anda harus membuat file conf untuk host virtual HTTPS. Buka file nginx.conf, lalu tambahkan skrip di bawah ini.
foo# nano /etc/nginx/nginx.conf include /etc/nginx/vhostsSSL.conf;
Setelah itu buat file vhostsSSL.conf dan ketik skrip di bawah ini di dalam file vhostsSSL.conf.
foo# touch /etc/nginx/vhostsSSL.conf
foo# nano /etc/nginx/vhostsSSL.conf
server {
listen 443 ssl;
server_name datainchi.com;
root /var/www/htdocs/nginxssl;
ssl_certificate /etc/nginx/SSL/nginxssl.crt;
ssl_certificate_key /etc/nginx/SSL/nginxssl.key;
ssl_session_timeout 5m;
ssl_session_cache shared:SSL:1m;
ssl_ciphers HIGH:!aNULL:!MD5:!RC4;
ssl_prefer_server_ciphers on;
}
Langkah selanjutnya adalah menjalankan Nginx sehingga dapat menjalankan port 443 atau HTTPS.
foo# rcctl restart nginx
nginx(ok) nginx(ok)
Langkah terakhir, periksa server Nginx. Dalam pengujian ini, kami menggunakan perintah curl. Jalankan perintah curl seperti pada contoh di bawah ini.
foo# curl -k https://192.168.5.3:443 <html> <head> <title>Nginx port 443</title> </head> <body> <p align="center">Welcome to Nginx Virtual Host port 443 HTTPS</p> </body> </html>
Jika skrip di atas terlihat seperti ini, berarti semua konfigurasi yang Anda lakukan tidak salah. Saat ini Anda memiliki server Nginx yang berjalan pada port 80 dan port 443. Kami sarankan untuk menggunakan port 443 untuk setiap aktivitas server Nginx, demi melindungi data penting Anda.
