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

FMIS Chrome Extension untuk Integrasi Data SIPD ke FMIS

Materi Pemrogramman Web Dasar