Cara membuat Server Nginx Mendengarkan pada Beberapa Port
Nginx adalah server web serbaguna dan proksi balik yang dapat dikonfigurasikan untuk mendengarkan pada beberapa port, sehingga cocok untuk melayani situs web, aplikasi, atau layanan yang berbeda dari server yang sama. Mengonfigurasi Nginx untuk mendengarkan pada beberapa port dapat berguna untuk menyajikan konten yang berbeda pada port yang berbeda, atau untuk mendukung layanan seperti HTTP (port 80) dan HTTPS (port 443). Panduan ini akan menunjukkan kepada Anda cara mengonfigurasi Nginx untuk mendengarkan pada beberapa port.
Prasyarat
- Server yang telah terinstalasi dan menjalankan Nginx.
- Akses root atau sudo untuk memodifikasi berkas konfigurasi Nginx.
- Pemahaman dasar tentang berkas konfigurasi Nginx (nginx.conf dan berkas konfigurasi khusus situs).
Gambaran Umum Konfigurasi Nginx Dasar
Berkas konfigurasi Nginx biasanya terletak di /etc/nginx/nginx.conf atau di /etc/nginx/sites-available/ untuk konfigurasi situs tertentu, tergantung pada distribusi Linux. Perintah utama untuk mendengarkan port adalah listen, yang menentukan alamat IP dan port yang harus didengarkan oleh Nginx.
Langkah 1: Buka berkas konfigurasi Nginx
Untuk mengonfigurasi Nginx agar mendengarkan pada beberapa port, Anda perlu mengedit berkas konfigurasi Nginx. Buka berkas tersebut menggunakan editor teks pilihan Anda:
sudo nano /etc/nginx/nginx.conf
Atau, jika Anda mengedit konfigurasi situs tertentu:
sudo nano /etc/nginx/sites-available/example.conf
Langkah 2: Menambahkan Beberapa Arahan mendengarkan
Untuk membuat Nginx mendengarkan pada beberapa port, Anda dapat menambahkan beberapa arahan mendengarkan dalam blok server. Berikut ini adalah contoh blok server yang mendengarkan pada port 80 dan 8080:
server {
listen 80;
listen 8080;
server_name example.com;
root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Dalam konfigurasi ini:
- listen 80; menginstruksikan Nginx untuk mendengarkan permintaan HTTP pada port 80.
- listen 8080; menginstruksikan Nginx untuk mendengarkan permintaan HTTP pada port 8080.
Ini berarti bahwa permintaan yang dibuat ke http://example.com:80 dan http://example.com:8080 akan ditangani oleh blok server ini.
Langkah 3: Mengonfigurasi HTTPS dengan Beberapa Port
Jika Anda ingin mengaktifkan HTTPS pada port yang berbeda (misalnya, 8443), Anda bisa mengonfigurasinya seperti ini:
server {
listen 443 ssl;
listen 8443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Dalam konfigurasi ini:
- listen 443 ssl; membuat Nginx mendengarkan permintaan HTTPS pada porta default 443.
- listen 8443 ssl; membuat Nginx mendengarkan permintaan HTTPS pada port 8443.
- Sertifikat SSL dan jalur kunci (ssl_certificate dan ssl_certificate_key) digunakan untuk mengaktifkan HTTPS.
Langkah 4: Memverifikasi Konfigurasi
Setelah melakukan perubahan, sangat penting untuk memverifikasi konfigurasi Nginx untuk mengetahui adanya kesalahan sintaksis sebelum menerapkan perubahan. Jalankan:
sudo nginx -t
Jika keluarannya mengatakan sintaks sudah benar, konfigurasinya sudah benar.
Langkah 5: Mulai ulang Nginx
Untuk menerapkan perubahan, mulai ulang Nginx:
sudo systemctl restart nginx
Atau, jika sistem Anda menggunakan layanan:
sudo service nginx restart
Langkah 6: Menguji Konfigurasi
Untuk memverifikasi bahwa Nginx mendengarkan dengan benar pada beberapa port:
- Periksa Porta Mendengarkan: Gunakan netstat atau ss untuk memverifikasi bahwa Nginx mendengarkan pada port yang ditentukan:
sudo netstat -tuln | grep nginx
atau:sudo ss -tuln | grep nginx
Ini akan menampilkan daftar porta yang didengarkan oleh Nginx. Anda akan melihat entri untuk port 80, 8080, 443, dan 8443. - Mengakses Server: Buka peramban web Anda dan coba mengakses server menggunakan port yang berbeda:
- http://example.com
- http://example.com:8080
- https://example.com
- https://example.com:8443
Anda akan melihat konten yang sama disajikan jika konfigurasi dilakukan dengan benar.
Tingkat lanjut: Mengatur Konten yang Berbeda untuk Port yang Berbeda
Anda dapat mengonfigurasi konten yang berbeda untuk disajikan berdasarkan port. Misalnya, menyajikan direktori root yang berbeda untuk setiap port:
server {
listen 80;
server_name example.com;
root /var/www/html80;
index index.html;location / {
try_files $uri $uri/ =404;
}
}
server {
listen 8080;
server_name example.com;
root /var/www/html8080;
index index.html;location / {
try_files $uri $uri/ =404;
}
}
Dalam contoh ini:
- Permintaan ke http://example.com (port 80) akan menyajikan konten dari /var/www/html80.
- Permintaan ke http://example.com:8080 akan menyajikan konten dari /var/www/html8080.
Kesimpulan
Mengonfigurasi Nginx untuk mendengarkan pada beberapa port memungkinkan Anda untuk menyajikan layanan yang berbeda, mendukung pengaturan khusus, atau menyediakan fleksibilitas dalam arsitektur jaringan Anda. Apakah Anda memerlukan Nginx untuk menangani beberapa port HTTP dan HTTPS atau mengarahkan port yang berbeda ke konten yang berbeda, arahan mendengarkan Nginx membuatnya mudah untuk disiapkan. Pastikan untuk memverifikasi konfigurasi Anda, mulai ulang Nginx, dan uji setiap port untuk memastikan semuanya berfungsi seperti yang diharapkan.