Cara menjalankan Node.js di server Apache | Jika Anda memiliki situs web yang berjalan di apache namun juga ingin node.js melayani beberapa url pada website Anda, maka pada tutorial kali ini kita akan bahas sedikit cara menggunakan teknik reverse proxy untuk membuat apache dapat menjalankan aplikasi node.js di server yang sama.

Konsep

Karena kita tidak bisa menjalankan node.js dan apache untuk menggunakan port yang sama, maka kita perlu mengonfigurasi apache untuk bertindak seperti proxy terbalik dan meneruskan permintaan ke aplikasi node.js untuk url tertentu.

Sebagai contoh, jika Anda sudah memiliki server Apache yang berjalan di localhost dan ingin menjalankan aplikasi Node.js di localhost / node, maka alurnya akan terlihat seperti ini.

node-apache-serve

Implementasi

Pertama mari kita mulai aplikasi node untuk memantau port 3000.

const express = require('express')
const app = express()

app.get('/', (req, res) => res.send('Hello World! from Node.js'))
app.listen(3000, () => console.log('Example app listening on port 3000!'))

Ini adalah contoh aplikasi sederhana untuk melayani permintaan http menggunakan Express dan mengembalikan teks sederhana yang tentunya bisa lihat di browser jika mengakses localhost:3000.

node-apache-server-run-localhost-compressed

Selanjutnya kita akan membuat Apache melakukan re-route permintaan dengan menggunakan arahan dari proxypass. Cukup buka file httpd.conf dan tambahkan baris dibawah ini:

ProxyPass /node http://localhost:3000/

Anda bisa mengganti /node menjadi url apapun yang Anda ingin untuk melayani aplikasi node Anda.

Kemudian, pastikan Anda sudah mengaktifkan modul mod_proxy dan mod_proxy_http dengan menghapus tanda komentarnya.

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

Save file tersebut, lalu restart server Apache Anda tersebut.

Masa sekarang ketika Anda mengakses localhost, maka halaman ini berjalan di atas server Apache.

 

Sekarang coba akses localhost/node dan lihat hasilnya.

node apache run localhost

Perlu dicatat bahwa pendekatan ini cocok untuk peran tertentu dengan jumlah pengguna yang terbatas. Namun jika Anda ingin memiliki skalabilitas kinerja, Anda harus menjalankan Apache dan node.js secara terpisah dan menggunakan yang lain seperti nginx untuk melakukan hal sebaliknya.

Semoga ini memberikan Anda inspirasi untuk diterapkan pada pekerjaan Anda, dan jangan ragu untuk memberikan komentar pada kolom yang sudah kami sediakan dibawah.