Setting Server NGINX Reverse Proxy dengan APACHE2



Untuk server linux bisa langsung apt install fish terlebih dulu untuk keperluan smart terminal. Informasi terkait fish bisa dilihat di fishshell.com .

Install NGINX dengan perintah: apt install nginx

Install APACHE2 dengan perintah: apt install apache2

Karena kita mau menggunakan wordpress, maka perlu install database mysql dengan perintah : apt install mariadb-server. Untuk membuat user gunakan perintah CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'password';. Sedangkan untuk memberikan akses dengan perintah GRANT ALL PRIVILEGES ON * . * TO 'new_user'@'localhost';

Untuk manajemen database bisa menggunakan phpmyadmin dan dapat diinstall dengan perintah: apt install phpmyadmin. Tambahkan kode "Include /etc/phpmyadmin/apache.conf" di akhir file /etc/apache2/apache2.conf . Referensi https://askubuntu.com/questions/55280/phpmyadmin-is-not-working-after-i-installed-it .

Tambahkan settingan user password tambahan pada .htaccess sesuai petunjuk di https://stackoverflow.com/questions/38502439/how-to-secure-phpmyadmin-access-through-htaccess

Informasi terkait cara setting reverse proxy bisa dicek di website resmi https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/ .

Pada file /etc/nginx/sites-available/default.com rubah settingan pada bagian location / seperti dibawah ini:

location / {

                proxy_pass              http://localhost:8000;

                proxy_http_version      1.1;

                proxy_set_header        Connection "";

                proxy_set_header        Upgrade $http_upgrade;

                proxy_set_header        Connection 'upgrade';

                proxy_set_header        Host $host;

                proxy_cache_bypass      $http_upgrade;

}

Keterangan:

  • proxy_pass diarahkan ke domain localhost dengan port 8000 yang kita setting di apache2 web server
  • Kode # try_files $uri $uri/ =404; kita jadikan komentar karena tidak dipakai


Jika menggunakan SSL maka perlu menambahkan settingan berikut ini di bawah kode listen 80:

        listen 80;

        listen 443 default_server ssl;

        ssl_certificate /etc/nginx/ssl/file.crt;

        ssl_certificate_key /etc/nginx/ssl/file.key;

Keterangan:

  • listen 443 default_server ssl; menandakan kalau port 443 kita setting dengan SSL
  • Jika file .crt terdapat dua atau lebih sertifikat dengan intermediate chain. Maka kita perlu menggabungkan dulu file .crt nya menjadi satu file.
Settingan modul mod_rewrite perlu diaktifkan di apache2 web server agar file .htaccess berfugnsi. Gunakan perintah: sudo a2enmod rewrite . Jangan lupa restart service dengan perintah: service apache2 restart .

Dan juga kita perlu merubah kode di file /etc/apache2/sites-enabled/000-default dari AllowOverride None ke AllowOverride All.

Tambahkan settingan "$_SERVER['HTTPS'] = 'on';" pada file wp-config.php agar terhindar dari error to many redirect akibat settingan ssl di server nginx.

Jika terdapat error 413 Request Entity Too Large pada server nginx, maka perlu disesusikan variabel client_max_body_size 50M; yang ada di file /etc/nginx/nginx.conf sesuai kebutuhan. Referensi: https://www.cyberciti.biz/faq/linux-unix-bsd-nginx-413-request-entity-too-large/ .

Catatan:

  •  Referensi gambar dari https://www.freepik.com/free-vector/server-concept-illustration_5357389.htm

Komentar

Postingan populer dari blog ini

SIPD Chrome Extension untuk Migrasi Data dari SIPD ke SIMDA PINK Th. Anggaran 2022

Materi Pemrogramman Web Dasar

Belajar Programming di Freecodecamp