Syslab.id – Tutorial kali ini kami akan membahas tentang bagaimana cara menjalankan web server apache dan nginx secara bersamaan di Ubuntu 22.04 LTS
Pada tutorial sebelumnya, kita telah membahas bahwa Nginx dan Apache adalah web server. Keduanya secara default berjalan di port 80, yang merupakan port layanan standar untuk web server.
Namun, apakah memungkinkan untuk menjalankan Nginx dan Apache secara bersamaan di sistem operasi Ubuntu 22.04 LTS?
Jawabannya, bisa! Tetapi, salah satu web server harus dikustomisasi port-nya, misalnya dari port 80 ke port 8080. Hal ini bertujuan untuk menghindari konflik port sehingga kedua layanan dapat berjalan bersamaan.
Tutorial ini bertujuan membantu Anda mengatasi situasi ketika Sebuah website hanya bisa dijalankan di web server Apache atau Nginx, tetapi Anda hanya memiliki 1 server sebagai resource.
Solusinya adalah dengan mengubah port salah satu web server, seperti yang dijelaskan sebelumnya. Dengan konfigurasi ini, Anda dapat menjalankan Nginx dan Apache secara bersamaan pada 1 server Ubuntu 22.04 LTS.
Langkah pertama: Hentikan salah satu web server. Dalam contoh ini:
Untuk memeriksa status layanan, jalankan perintah berikut:
root@syslab:~# systemctl status nginx |grep "Active"
Active: active (running) since Wed 2024-11-27 16:27:37 UTC; 4h 24min ago
root@syslab:~#
root@syslab:~# systemctl status apache2 |grep "Active"
Active: inactive (dead) since Wed 2024-11-27 15:08:23 UTC; 5h 43min ago
root@syslab:~#
Langkah kedua: Ubah port Apache menjadi 8080 dengan cara sebagai berikut
root@syslab:~# vim /etc/apache2/ports.conf
Ubah listen menjadi 8080 seperti gambar dibawah ini
Simpan dan start kembali service apache dan pastikan sudah berjalan di port 8080
root@syslab:~# systemctl start apache2
root@syslab:~# systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2024-11-27 21:15:17 UTC; 2min 38s ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 65115 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 65119 (apache2)
Tasks: 55 (limit: 1023)
Memory: 6.4M
CPU: 53ms
CGroup: /system.slice/apache2.service
├─65119 /usr/sbin/apache2 -k start
├─65120 /usr/sbin/apache2 -k start
└─65121 /usr/sbin/apache2 -k start
Nov 27 21:15:17 syslab.syslab.id systemd[1]: Starting The Apache HTTP Server...
Nov 27 21:15:17 syslab.syslab.id systemd[1]: Started The Apache HTTP Server.
root@syslab:~#
Langkah ketiga: buat proyek website disini kami simpan di /var/www/html/apriori.my.id/apache untuk apache dan /var/www/html/apriori.my.id/nginx untuk nginx dan didalam nya terdapat file index.html sebagai sample web nya.
root@syslab:~# mkdir -p /var/www/html/apriori.my.id/nginx.apriori.my.id
root@syslab:~# mkdir -p /var/www/html/apriori.my.id/apache.apriori.my.id
root@syslab:~# echo "<h1> Test Page Nginx Port 80" >> /var/www/html/apriori.my.id/nginx.apriori.my.id/index.html
root@syslab:~# echo "<h1> Test Page Apache Port 8080" >> /var/www/html/apriori.my.id/apache.apriori.my.id/index.html
root@syslab:~#
Langkah keempat: Selanjutnya membuat konfigurasi nginx dan apache sebagai berikut.
Berikut konfigurasi server block nginx untuk subdomain nginx.apriori.my.id
root@syslab:~# vim /etc/nginx/conf.d/nginx.apriori.my.id.conf
Isi dari konfigurasi nginx server block sebagai berikut:
server {
server_name nginx.apriori.my.id;
root /var/www/html/apriori.my.id/nginx.apriori.my.id/;
index index.html;
access_log /var/log/nginx/nginx.apriori.my.id.access.log;
error_log /var/log/nginx/nginx.apriori.my.id.error.log;
location / {
try_files $uri $uri/ /index.html?$args;
}
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
}
}
Cek status nginx konfigurasi dan pastikan OK dan restart service nginx.
root@syslab:~# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
root@syslab:~# systemctl restart nginx
root@syslab:~#
Konfigurasi Virtual Host Apache untuk subdomain apache.apriori.my.id
root@syslab:~# vim /etc/apache2/sites-available/apache.apriori.my.id.conf
Isi dari konfigurasi apache virtual host sebagai berikut:
<VirtualHost *:8080>
ServerAdmin me@apriori.my.id
ServerName apache.apriori.my.id
DocumentRoot /var/www/html/apriori.my.id/apache.apriori.my.id/
ErrorLog /var/www/html/apriori.my.id/apache.apriori.my.id/logs/error.log
CustomLog /var/www/html/apriori.my.id/apache.apriori.my.id/logs/access.log combined
</VirtualHost>
Diatas terlihat untuk port kami set menjadi 8080 karena apache berjalan di port 8080. Kemudian aktifkan konfigurasi apache pada subdomain apache.apriori.my.id
root@syslab:~# apache2ctl configtest
Syntax OK
root@syslab:~#
root@syslab:~# a2ensite apache.apriori.my.id.conf
Site apache.apriori.my.id already enabled
root@syslab:~#
root@syslab:~# systemctl reload apache2
root@syslab:~#
Langkah kelima: Verifikasi akses kedua subdomain tersebut melalui browser atau juga menggunakan command curl seperti berikut ini
Test akses subdomain apache.apriori.my.id
Test akses subdomain nginx.apriori.my.id
Mencoba test menggunakan curl
Sampai disini Anda sudah berhasil menjalankan apache dan nginx secara bersamaan di server Ubuntu 22.04 LTS
Selamat mencoba 🔥