Cara Install BoxBilling di Nginx Server

Panduan cara install BoxBilling versi Free ini saya coba di Nginx dengan OS Linux CentOS dan spesifikasi VPS, RAM 512MB, Disk 20GB.

Persyaratan sistem

  • PHP 5.3.3 atau versi terbaru
  • PDO MySQL
  • curl
  • mbstring
  • zlib
  • ftp
  • gettext
  • mcrypt
  • MySQL versi 4.1 atau diatasnya
  • Direkomendasikan memakai VPS dengan APC enable

Jika sudah memenuhi persyaratan tersebut, oke mulai buka jalur SSH dan ikuti panduan step by step install box billing berikut, pada contoh menggunakan boxbilling versi 4.20 – Free

Step By Step Install BoxBilling

1. Membuat Database

Persiapan install boxBilling pertama-tama buat Database biar tidak keteteran nanti

Login dulu ke MySQL

mysql -u root -p

Kemudian membuat database, (sesuaikan)

CREATE DATABASE nama_database_bb;
CREATE USER 'user_database_bb'@'localhost' IDENTIFIED BY 'password_database_bb';
GRANT ALL ON nama_database_bb.* TO 'user_database_bb'@'localhost';
FLUSH PRIVILEGES;

Selesai membuat database, kemudian exit dari MySQL

exit

 

2. Download BoxBilling

Proses installasi BoxBilling selanjutnya yaitu membuat direktori terlebih dahulu, jika ingin menginstall di dokumen root website (http://domain.com) lewati langkah ini.

Buat direktori

sebagai contoh BoxBilling akan diinstall pada direktori /billing (http://domain.com/billing/)

mkdir /var/www/html/billing
cd /var/www/html/billing

Download BoxBilling menggunakan command wget

wget https://github.com/boxbilling/boxbilling/releases/download/4.20/BoxBilling.zip

Ekstrak

unzip BoxBilling.zip

Rename file konfigurasi BoxBilling

mv bb-config-sample.php bb-config.php

CHMOD direktori dan file

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

 

3. Web Installer

Installasi diselanjutnya lewat browser kunjungi http://domainmu/billing/install

  • Cek I agree, kemudian klik Next
  • Kemudian isi form database disesuaikan,
  • Next, lengkapi isian untuk administrator dan lisence key yang Free dari box billing, cara buatnya mudah cukup register langsung dikasih Keynya: Order disini gratis, Pilih yang Free License > Order now
  • Ikuti sampai selesai.

 

4. Cron Job

Sukses install via browser, selanjutnya setup cron job box billing agar script cron.php terus berjalan setiap 5 menit

crontab -e

include baris berikut

*/5 * * * * php /var/www/html/babulang/billing/bb-cron.php

Remove folder installasi boxbilling, beserta file zip yang didownload tadi untuk keamanan dan hemat space

rm -rf install
rm BoxBilling.zip

 

5. Pengaturan Permalink

Edit nginx virtualhost konfigurasi dan tambahkan seperti baris berikut:

location ~* /billing/bb-admin\.php {
       if (!-e $request_filename) {
             rewrite ^(.+)$ /billing/bb-admin.php?$1 last;
       }
 }

location /billing/ {
       if (!-e $request_filename) {
             rewrite ^(.+)$ /billing/index.php?$1 last;
       }
 }

Reload nginx

nginx -s reload

Edit Konfigurasi BoxBilling dan enable sef_url

vi bb-config.php

set sef_urls menjadi true

‘sef_urls’ => true,

 

Note: Saya tidak menganjurkan anda mengatur permalink untuk SEF (Search Engine Friendly). Karena saya menemukan masalah yaitu selalu redirect ke halaman login. Mungkin ini tidak terjadi jika anda menggunakan Apache. namun jika anda mau mengoreksi dan sedikit bersabar mungkin anda bisa melihat file log nginx dan BoxBilling untuk meyelesaikan masalah tersebut.

 

6. Timezone

Menyesuaikan timezone, pada contoh menggunakan zona waktu Asia/Jakarta, daftar zona bisa dilihat di PHP Timezone

vi bb-config.php

Ubah timezone

'timezone' => 'Asia/Jakarta',

Save dan exit

 

Selesai.

 

Referensi: BoxBilling Docs

Load Balancing Nginx Step by Step

Cara pengaturan load balancing dengan Nginx, Linux CentOS ikuti step by stepnya berikut ini

Setidaknya punya 3 server/IP

  • server I untuk load balancing dengan Nginx
  • server II web1 (bisa nginx, apache dll)
  • server III web2 (bisa apache, nginx dll)

Gunakan System Operasi Linux CentOS 6 minimal

1. Menambahkan Repository Epel

Untuk CentOS 32bit

wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm

Untuk CentOS 64bit

wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm

 

2. Install Nginx
Install aplikasi dan start nginx disusul dengan menambahkan service nginx ke daftar startup agar selalu aktif saat mesin direboot.

yum install nginx -y
service nginx start
chkconfig --levels 235 nginx on

 

3. Chek
buka browser cek http://ip, Jika berhasil ada tulisan Welcome to Nginx, jika gagal stop dan remove httpd kemudian start/restart nginx.

service httpd stop
yum remove httpd
service nginx start

 

4. Load Balancing Nginx
Pada contoh dibawah ini Load balancing ini berfungsi untuk menyeimbangkan beban trafik http(s) yang akan ditargetkan ke aplikasi agar berjalan optimal.

buat file konfigurasi nginx load balance lokasinya ada di /etc/nginx/conf.d/

vi /etc/nginx/conf.d/load_balance.conf

Isinya sebagai berikut

upstream loadbalance {
       192.0.0.1;
       192.0.2.2;
}
server {
       listen 80;
       server_name domain.com www.domain.com;

       error_log /var/log/nginx/error.log crit;
       access_log off;

       location / {
              proxy_pass http://loadbalance;
       }
}

 

Untuk trafik HTTPS gunakan konfigurasi berikut

upstream loadbalance {
       192.0.0.1;
       192.0.2.2;
}
server {
        listen          80;
        server_name     domain.com www.domain.com;
        return          301  https://$server_name$request_uri;
}
server {
        listen 443 ssl;
        server_name domain.com;

        ssl on;
        ssl_certificate /lokasi/sertifikat/ssl/fullchain.pem;
        ssl_certificate_key /lokasi/sertifikat/ssl/privkey.pem;
        ssl_prefer_server_ciphers on;

        error_log /var/log/nginx/error.log crit;
        access_log off;

        location / {
               proxy_pass http://loadbalance;
        }
 }

5. Cek

Restart Nginx

service nginx restart

Coba shutdown server III, cek di browser jika website tetap online dengan server II berarti OK, begitu sebaliknya.

Referensi : Using Nginx as HTTP load balancer

Solusi Nginx 502 Bad Gateway

Solusi Error nginx 502 Bad gateway karena masalah socket, periksa log error.log nginx /var/log/nginx dan jika ada keterangan connect() to unix: /var/run/php-fpm.socket failed ubah TCP/IP ke socket php-fpm caranya seperti dibawah ini:

1. Buka konfigurasi Virtualhost Nginx
Lihat pada baris fastcgi_pass

location ~ \.php?$ {
    fastcgi_pass 127.0.0.1:9001;
 }

2. Ubah TCP/IP ke Socket
Ubah koneksi TCP/IP menjadi unix socket seperti dibawah ini

location ~ \.php?$ {
       fastcgi_pass unix:/var/run/php-fpm.socket;
 }

3. Restart Nginx dan PHP-FPM

service nginx restart
service php-fpm restart

Dan selamat tinggal error 502 bad gateway nginx

Pengalaman, biasanya waktu pertama install nginx lupa, jadi saya buat posting siapa tahu ada yang mengalami masalah serupa dan ini merupakan solusi untuk mengatasi error 502 Bad gateway pada nginx dan php-fpm.

Note:
* Jangan lupa periksa log php-fpm juga lokasi logging php-fpm lokasinya ada di /var/log/php-fpm/
* Periksa socket php-fpm.socket di /var/run

Referensi : Dokumentasi Nginx module – fastcgi_pass

Solusi Nginx 504 Gateway Timeout

Solusi website loading lama tiba-tiba error 504 Gateway Timeout Nginx. Konek via SSH dan ikuti langkah berikut ini untuk memperbaikinya.

1. Edit nginx.conf

vi /etc/nginx/nginx.conf

Tambahkan baris berikut:

fastcgi_read_timeout 300;

2. Edit konfigurasi php

vi /etc/php.ini

Naikkan value menjadi 300

max_execution_time = 300

3. edit konfigurasi php-fpm

vi /etc/php-fpm.d/www.conf

Add baris berikut

request_terminate_timeout = 300

4. reload nginx dan restart php-fpm

nginx -s reload
service php-fpm restart

Selesai.

Catatan:
Periksa script, apakah didalam script halaman web merequest konten dari layanan / server lain yang ada kemungkinan sourcenya dialihkan permanen atau sudah dihapus. Ini pengalaman pribadi saya waktu nge-grab konten dari lookup.dbpedia.org ternyata layanan API nya saya cek sudah ga bisa diakses atau mungkin IP saya yang diblock.

Referensi : Nginx Module

Cara Install Let’s Encrypt SSL dengan Pembaruan Otomatis

Tutorial install SSL sebelumnya pernah saya share yaitu cara membuat sertifikat SSL self-signed dan Cara Install Positive SSL Comodo di Nginx namun SSL certificate dari Comodo tersebut hanyalah trial selama 90 hari dan untuk renewal dikenakan biaya beberapa dolar. Kali ini salah satu blog idnetter menggunakan Let’s Encrypt untuk kemanan website Nginx.

 

Let's Encrypt SSL Certificate

Sekedar info Let’s Encrypt adalah sertifikat gratis, otomatis, dan open Certificate Authority (CA), untuk kepentingan publik seperti website dan layanan lainya. Let’s Encrypt merupakan layanan yang disediakan oleh Internet Security Research Group (ISRG). Let’s Encrypt hanya berlaku untuk 3 bulanan, maka setelah masa sertifikat tersebut habis anda harus memperbaruinya dan pada panduan ini disertakan juga cara untuk memperbarui sertifikat Let’s Encrypt secara otomatis.

 

Cara Install Let’s Encrypt SSL

Panduan cara install Let’s Encrypt SSL ini sudah dicoba pada Nginx versi 1.0.15 di OS CentOS 6 dan seharusnya tidak ada masalah untuk versi CentOS 7.

Mulai dari update dan install git

yum update

Install git

yum install -y git

Sebelumnya stop service nginx

service nginx stop

Install Let’s Encrypt

git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
cd /opt/letsencrypt
./letsencrypt-auto certonly -a standalone -d example.com -d www.eample.com

Harusnya hasilnya akan seperti dibawah ini pertanda berhasil lets encrypt diinstall

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
 /etc/letsencrypt/live/babulang.com/fullchain.pem. Your cert will
 expire on 2016-07-18. To obtain a new version of the certificate in
 the future, simply run Let's Encrypt again.
 - If you like Let's Encrypt, please consider supporting our work by:

Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
 Donating to EFF: https://eff.org/donate-le

Start nginx kembali

service nginx start

 

Generate CSR Certificate Signing Request

openssl req -nodes -newkey rsa:2048 -keyout babulang.key -out babulang.csr

Pada layar akan muncul beberapa pertanyaan, jawab samapi bagian Email Address [] saja, lainya biarkan default (tekan Enter saja). Contoh seperti dibawah ini:

Country Name (2 letter code) [XX]:ID
 State or Province Name (full name) []:Lampung Selatan
 Locality Name (eg, city) [Default City]:Kalianda
 Organization Name (eg, company) [Default Company Ltd]:Babulang co.
 Organizational Unit Name (eg, section) []:Sumatera Coffee
 Common Name (eg, your name or your server's hostname) []:babulang.com
 Email Address []:info@babulang.com

 

Point Nginx ke Let’s Encrypt Certificate

File sertifikat SSL Let’s Encrypt bisa dilihat di direktori /etc/letsencrypt/live/babulang.com/

Tambahkan baris berikut ke konfigurasi server block nginx

listen 443 ssl;
 server_name babulang.com;
 ssl on;
 ssl_certificate /etc/letsencrypt/live/babulang.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/babulang.com/privkey.pem;
 ssl_prefer_server_ciphers on;

 

Cek & Reload Nginx

Verifikasi sintak pada konfigurasi dan reload Nginx

nginx -t && nginx -s reload

 

Pembaruan Sertifikat Let’s Encrypt

Manual

 cd /opt/letsencrypt
./letsencrypt-auto renew

Otomatis

Edit crontab ketik perintah : crontab -e dan include perintah berikut:

15 1 * * 2 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/letsencrypt/letsencrypt.log

Cron job diatas akan dieksekusi setiap hari Selasa pada jam 01:15 (karena saya install pada hari tersebut), bisa disesuaikan dan hasil prosesnya akan terekam pada file /var/log/letsencrypt/letsencrypt.log

 

Referensi :

Tutorial Install SSL Comodo di Nginx

Tutorial Install SSL

Tutorial install SSL Comodo, sertifikat SSL gratis 90 hari dari comodo. Cara ini tidak jauh berbeda dengan cara membuat sertifikat SSL self-signed di Nginx. Sebelum daftar di Comodo sebaiknya membuat Certificate Signing Request (CSR) dulu agar proses saat pendaftaran SSL gratis Comodo cepat.

Artikel terkait: Daftar SSL Gratis

Cara Membuat Certificate Signing Request (CSR)

konek via ssh command line, buat folder baru, contoh ssl (ganti sesuai selera) didirektori /etc/nginx/

mkdir /etc/nginx/ssl

masuk ke direktori yang baru saja dibuat yaitu ssl

cd /etc/nginx/ssl

kemudian copy paste perintah berikut:

openssl req -nodes -newkey rsa:2048 -keyout babulang_com.key -out babulang_com.csr

perintah diatas akan membuat 2 buah file yaitu babulang_com.key dan babulang_com.csr

sepintas akan menggenerate file private key 2048 bit yang kemudian berlanjut dengan beberapa pertanyaan untuk dijawab dalam membuat Certificate Signing Request (CSR) kira-kira outputnya seperti berikut:

Generating a 2048 bit RSA private key
 ..................................+++
 ..+++
 writing new private key to 'babulang_com.key'
 -----
 You are about to be asked to enter information that will be incorporated
 into your certificate request.
 What you are about to enter is what is called a Distinguished Name or a DN.
 There are quite a few fields but you can leave some blank
 For some fields there will be a default value,
 If you enter '.', the field will be left blank.
 -----
 Country Name (2 letter code) [XX]:ID
 State or Province Name (full name) []:Lampung Selatan
 Locality Name (eg, city) [Default City]:Kalianda
 Organization Name (eg, company) [Default Company Ltd]:Babulang co.
 Organizational Unit Name (eg, section) []:Sumatera Coffee
 Common Name (eg, your name or your server's hostname) []:babulang.com
 Email Address []:info@babulang.com

Please enter the following 'extra' attributes
 to be sent with your certificate request
 A challenge password []:
 An optional company name []:

 

Jika sampai: A challenge password []: dan An optional company name []: langsung enter saja.

CSR file berhasil dibuat, Beres. sekarang lihat file .csr yang telah dibuat dengan command cat:

cat babulang_com.csr

Outputnya kira-kira seperti ini:

-----BEGIN CERTIFICATE REQUEST-----
MIIC5TCCAc0CAQAwgZ8xCzAJBgNVBAYTAjYyMRgwFgYDVQQIDA9MYW1wdW5nIFNl
bGF0YW4xETAPBgNVBAcMCEthbGlhbmRhMRAwDgYDVQQKDAdCYWJ1bGFuMRgwFgYD
VQQLDA9TdW1hdGVyYSBDb2ZmZWUxFTATBgNVBAMMDGJhYnVsYW5nLmNvbTEgMB4G
CSqGSIb3DQEJARYRaW5mb0BiYWJ1bGFuZy5jb20wggEiMA0GCSqGSIb3DQEBAQUA
A4IBDwAwggEKAoIBAQCyYQwJC7wEE9c+lOVPEyNt4XlY65pjnQsNutM7qaLane+d
IT2G0xBPhzlSl9esE2k6/2nze7iu9j3qJEdA7tI90k50l+17jD+CFkmSnKnNeX4s
nbpUvP8tCJk0FkliIIgbLS//qbL/OT3+udgDP/mVu74C4gpDcCD2pXVMErkhe0Mh
eDcX++VN8kGfnak3ATVWxsN3sKucDBKWtChluRE3ihdxTlwY3UJawQFe7rz/9+06
SboILbcjqg7M0VOGnobfVb+Y8UUV9AOLwmU7jb1SmI9gv7G+fkcS3ieylTR8ASbt
P8BqS6Jg09qwx/EA+MgLJy9KqK9i7yUshwC+nGibAgMBAAGgADANBgkqhkiG9w0B
AQUFAAOCAQEAGmImCb1JDtVkoDInO5E2bX3+F950Tdue6ZHraWykeKshWGrEWam/
F/Kd6hxuPwXjxbJyiN5qwcvvOElEijiWgoEZPqNDv8aXFqV5vvIpBTafTAsjm8b2
wMm2OmJh8YQnAGANOlY4nPuqNNX4rNJco7jx8eeePVwjEtHdfFh/3xN7VAqkF3HR
cFPOn6/MxqTGb20Qe+iZrahteea93ddvhxb51V0tfaU0QbCyx7iynSwaxPtnQzXM
iUvDno4/4y19MTKaku9/zX3nZ3+zPGjrYQNUtF5LTfT60twQtKUv7mjDNIwAW1j9
+1eAk2rxmnFKFGaAb67yKD6F9tvaLhX9Uw==
-----END CERTIFICATE REQUEST-----

Seleksi dan salin konten dari csr tersebut yang nantinya akan dipaste pada kolom isian pendaftaran SSL di Comodo.

 

 Submit CSR

Selanjutnya kunjungi website Comodo free SSL certificate di : https://ssl.comodo.com/free-ssl-certificate.php

klik button Free Trial SSL

  1. Paste CSR di kolom nomor satu
  2. pada bagian = 2. Select the server software used to generate the CSR: Nginx
  3. Klik Next
  4. Selanjutnya Domain Control Validation akan dikirim ke email anda yang terdaftar pada saat registrasi domain. ikuti petunjuk yang ada di email tersebut.
  5. Lengkapi formulir Kontak, user dan password.
  6. Klik Next

 

Tunggu beberapa menit sampai sertifikat issued, Comodo akan mengirimkan Email beserta lampiran file Sertifikat SSL dan juga opsi Trust Logo untuk diinstall.

 

Cara Install SSL Certificate Comodo

Next email masuk? oke, periksa lampiran sertifikat SSL berupa file arsip .ZIP (punya saya namanya babulang_com.zip).

Upload file zip tersebut ke direktori /etc/nginx/ssl

Ekstrak

unzip babulang_com.zip

setelah diekstrak biasanya terdapat 4 file sertifikat .CRT, nama filenya kira-kira seperti berikut:

  1. AddTrustExternalCARoot.crt
  2. babulang_com.crt
  3. COMODORSAAddTrustCA.crt
  4. COMODORSADomainValidationSecureServerCA.crt

Gabungkan konten dari file-file .CRT tersebut menjadi satu dengan perintah cat (concatenate) dengan shell redirection (>).

cat AddTrustExternalCARoot.crt babulang_com.crt COMODORSAAddTrustCA.crt COMODORSADomainValidationSecureServerCA.crt > ssl-bundle.crt

Beres, selanjutnya edit config Nginx, tambahkan baris berikut ke dalam config nginx

        listen          443 ssl;
        server_name     babulang.com;
        
        # referensi file certificate & private key
        ssl on;
        ssl_certificate /etc/nginx/ssl/ssl-bundle.crt;
        ssl_certificate_key /etc/nginx/ssl/babulang_com.key;

 

Reload nginx

nginx -s reload

 

Cek HTTPS

Setelah proses yang lumayan membuat bosan, waktunya melihat hasil, cek koneksi protokol https.

Buka browser kesayangan, coba kunjungi web anda dengan awalan https:// kalau ada icon padlock ijo dipojok address bar pertanda sukses menginstall sertifikat SSL Comodo.

 

Jika ada yang kesulitan silahkan inbox.

Dan buat yang sibuk, tak ingin repot install SSL tetapi ingin webnya pakai https, bisa menghubungi kami di : 081235008433 atau add PIN 743EB942.

Cara Redirect HTTP ke HTTPS Nginx Permanent

cara redirect http ke https di nginx

Cara redirect http ke https, beberapa waktu lalu idnetter pernah share layanan sertifikat SSL gratis, jika ada yang belum baca silahkan kunjungi : SSL Gratis. Dan salah satunya dari WoSign yang memberikan SSL Gratis valid sampai 2 tahun, cara install sertifikatnya pun cukup mudah walau harus memahami apa itu SSL sertifikat dan apa fungsinya paling tidak tahu sedikit saja, artikel tentang SSL bisa anda temukan di Wikipedia.

 

Setelah melakukan pendaftaran dan sedikit memodifikasi konfigurasi Nginx Server Block,  akhirnya bisa juga mencicipi HTTPS. Berikut ini panduan bagaimana cara redirect HTTP ke HTTPS di Nginx agar visitor secara permanent di redirect ke protokol HTTPS.

 

Cara Redirect HTTP ke HTTPS Nginx

Edit Nginx config pada server block, tambahkan baris berikut ini ke konfigurasi nginx, sesuaikan.

 server {
   listen 80;
   server_name idnetter.com www.idnetter.com;
   return 301 https://$server_name$request_uri;
 }

Perhatikan baris return 301… atau HTTP 301 Moved permanently, merupakan cara redirect paling efisien karena tidak ada regex untuk dievaluasi, pelajari lebih lanjut di pitfalls.

Dan juga tambahkan baris ini, jangan lupa sesuaikan link file sertifikat sslnya

 server {
   listen 443 ssl;
   server_name idnetter.com;

   # link dimana file sertifikat berada
   ssl_certificate /etc/nginx/ssl/idnetter.com_bundle.crt;
   ssl_certificate_key /etc/nginx/ssl/idnetter.com.key;

   ...
   ...
}

dari konfigurasi diatas dapat dikatakan semua pengunjung idnetter.com baik yang memakai WWW atau tidak akan dialihkan ke protokol https. konfigurasi nginx selengkapnya akan tampak seperti dibawah ini:

server {
    listen                  80;
    server_name             idnetter.com www.idnetter.com;
    return                  301 https://$server_name$request_uri;
 }
 
server {
    listen                  443 ssl;
    server_name             idnetter.com;

    client_max_body_size    5m;
    client_body_timeout     60;

    access_log              /var/log/nginx/idnetter.com-access;
    error_log               /var/log/nginx/idnetter.com-error error;

    root                    /var/www/html/idnetter/;
    index                   index.html index.php;

    ssl_certificate         /etc/nginx/ssl/idnetter.com_bundle.crt;
    ssl_certificate_key     /etc/nginx/ssl/idnetter.com.key;

   ### root directory ###
    location / {
        try_files           $uri $uri/ /index.php?$args;
    }

    ### security ###
    error_page              403 =404;
    location                ~ /\. { access_log off; log_not_found off; deny all; }
    location                ~ ~$ { access_log off; log_not_found off; deny all; }
    location                ~* wp-admin/includes { deny all; }
    location                ~* wp-includes/theme-compat/ { deny all; }
    location                ~* wp-includes/js/tinymce/langs/.*\.php { deny all; }
    location                /wp-includes/ { internal; }
    location                ~* wp-config.php { deny all; }
    location                ~* ^/wp-content/uploads/.*.(html|htm|shtml|php)$ {
        types                   { }
        default_type            text/plain;
    }

    ### disable logging ###
    location                = /robots.txt { access_log off; log_not_found off; }
    location                = /favicon.ico { access_log off; log_not_found off; }

    ### caches ###
    location                ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log off; expires max; }
    location                ~* \.(woff|svg)$ { access_log off; log_not_found off; expires 30d; }
    location                ~* \.(js)$ { access_log off; log_not_found off; expires 7d; }

    ### php block ###
    location                ~ \.php?$ {
        try_files               $uri =404;
        include                 fastcgi_params;

        # Sesuaikan file socket anda
        fastcgi_pass            unix:/var/run/gateaway.socket;

        fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_intercept_errors on;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        #Prevent version info leakage
        fastcgi_hide_header     X-Powered-By;
    }

 }

Save dan reload nginx

nginx -s reload

 

Setting WordPress

Jika anda memakai WordPress, perlu update setting pada bagian General

WordPress Address (URL) : https://example.com
Site Address (URL) : https://example.com

Dengan cara tersebut semua permalink akan memakai awalan https. Ini merupakan solusi munculnya warning SSL pada address bar (icon padlock dengan tanda silang merah) karena link gambar masih menggunakan http. Saat saya mencoba di Browser Chrome gambar juga tidak bisa tampil, alhasil setelah diset semua memuaskan.

Cara Membuat Sertifikat SSL di Nginx, CentOS

Cara Membuat Sertifikat SSL Sefl-signed

Cara membuat sertifikat SSL di Nginx, tutorial berikut ini kita akan sama-sama belajar cara membuat sertifikat SSL self-signed di VPS yang menggunakan Nginx HTTP Server dengan operasi sistem CentOS yang sudah saya coba dari tutorial Etel Sverdlov- DigitalOcean.

Artikel terkait:

 

Cara Membuat Sertifikat SSL Self-signed di Nginx

1.  Buat sebuah direktori baru bernama ssl didalam folder /etc/nginx/

mkdir /etc/nginx/ssl

 

2.  masuk ke direktori ssl yang baru kita buat, agar memudahkan kita saat membuat konfigurasi nantinya.

cd /etc/nginx/ssl

 

3. Membuat Private Key Server

Saat membuat private key akan diminta memasukkan pass phrase, hati hati sebaiknya harus betul-betul diingat atau dicatat, karena jika lupa maka tidak bisa untuk  mengakses sertifikat.

openssl genrsa -des3 -out idnetter.com.key 1024

 

4. Dilanjutkan dengan membuat certificate signing request atau file .CSR

openssl req -new -key idnetter.com.key -out idnetter.com.csr

 

Saat generate CSR file anda akan diminta menjawab isian yang harus sesuai terkait nama kode negara, provinsi dan lain-lain kira-kira seperti dibawah ini, (saya hanya mengisi sampai bagian email saja) jawab dan sesuaikan.

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:ID
State or Province Name (full name) []:Lampung Selatan
Locality Name (eg, city) [Default City]:Kalianda
Organization Name (eg, company) [Default Company Ltd]:Babulang co.
Organizational Unit Name (eg, section) []:Kopi Lampung
Common Name (eg, your name or your server's hostname) []:babulang.com
Email Address []:info@babulang.com

 

5. Langkah selanjutnya menghapus pass phrase, tujuanya jika nginx crash dan system direboot maka kita tidak perlu memasukkan kembali passphrase untuk membuat web server online kembali.

cp idnetter.com.key idnetter.com.key.com
openssl rsa -in idnetter.key.com -out idnetter.com.key

 

6. Menandatangani sertifikat

Lihat bagian -days 90 ini berarti berlaku sampai 90 hari, ganti angka 90 sesuaikan dengan masa berlaku sertifikat.

openssl x509 -req -days 90 -in idnetter.com.csr -signkey idnetter.com.key -out idnetter.com.crt

 

7. Edit konfigurasi nginx, buat referensi sertifikat tersebut.

        listen 443 ssl;
        # link ke sertifikat
        ssl_certificate /etc/nginx/ssl/idnetter.com.crt;
        # link ke sertifikat key
        ssl_certificate_key /etc/nginx/ssl/idnetter.com.key;

 

8. Jangan lupa restart nginx

service nginx restart

 

Cek, buka browser kunjungi https://webanda jika tampil self-signed sertifikat berarti berhasil.

 

Jika anda sibuk dan tak ingin repot idnetter.com melayani installasi SSL Certificate untuk domain anda, silahkan gunakan jasa Seting VPS idnetter, tenang murah kok, hubungi : 081235008433.

 

 

Konfigurasi Nginx Tinggal Pakai untuk VPS CentOS

konfigurasi nginx template file

File konfigurasi Nginx untuk VPS Linux CentOS tinggal copy paste, tinggal pakai. Template konfigurasi ini bisa diterapkan setelah menginstall Nginx pada VPS, Cloud Server.

Konfigurasi Nginx

Letaknya di: /etc/nginx/nginx.conf

user              nginx;
worker_processes  4;

error_log  /var/log/nginx/error.log;
#error_log  /var/log/nginx/error.log  notice;
#error_log  /var/log/nginx/error.log  info;

pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  30;
    # Untuk perfoma nginx terbaik
    gzip on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";
    gzip_http_version 1.1;
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript text/x-js;
    #gzip  on;

    # Load config files from the /etc/nginx/conf.d directory
    # The default server is in conf.d/default.conf

    # comment default nginx konfigurasi dan pakai konfig site-enable
    # include /etc/nginx/conf.d/*.conf;

    # enabled sites - mengaktifkan server block atau virtual host
    include /etc/nginx/sites-enabled/*;

}

Lebih lanjut baca : Cara Setting Server Block Nginx CentOS 6 VPS.

Add Domain di Nginx

Contoh, berikut config untuk idnetter.com, buat file idnetter.com.conf di folder /etc/nginx/sites-enabled/

vi /etc/nginx/sites-available/idnetter.com.conf

Isinya

server {
        listen 80;
        server_name idnetter.com;

        # Jika pakai SSL hilangkan komen berikut ini
        # listen 443 ssl;
        # ssl_certificate /etc/nginx/ssl/idnetter.com.crt;
        # ssl_certificate_key /etc/nginx/ssl/idnetter.com.key;

        client_max_body_size 5m;
        client_body_timeout 60;

        access_log /var/www/html/idnetter.com/access.log;
        error_log /var/www/html/idnetter.com/error.log error;

        root /var/www/html/idnetter.com/;
        index  index.html index.php;

        ### root directory ###
        location / {
                try_files $uri $uri/ /index.php?$args;
        }

        ### security ###
        error_page 403 =404;
        location ~ /\. { access_log off; log_not_found off; deny all; }
        location ~ ~$ { access_log off; log_not_found off; deny all; }
        location ~* wp-admin/includes { deny all; }
        location ~* wp-includes/theme-compat/ { deny all; }
        location ~* wp-includes/js/tinymce/langs/.*\.php { deny all; }
        location /wp-includes/ { internal; }
        location ~* wp-config.php { deny all; }
        location ~* ^/wp-content/uploads/.*.(html|htm|shtml|php)$ {
                types { }
                default_type text/plain;
        }

        ### disable logging ###
        location = /robots.txt { access_log off; log_not_found off; }
        location = /favicon.ico { access_log off; log_not_found off; }

        ### caches ###
        location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log off; expires max; }
        location ~* \.(woff|svg)$ { access_log off; log_not_found off; expires 30d; }
        location ~* \.(js)$ { access_log off; log_not_found off; expires 7d; }

        ### php block ###
        location ~ \.php?$ {
                try_files $uri =404;
                include fastcgi_params;
                fastcgi_pass unix:/var/run/gateaway.socket;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_intercept_errors on;
                fastcgi_split_path_info ^(.+\.php)(.*)$;
                #Prevent version info leakage
                fastcgi_hide_header X-Powered-By;
        }
}

Tidak ingin repot?

Kami menyediakan Jasa Setting VPS murah, hubungi kami: 081235008433, PIN: 743EB942

Template Konfigurasi named, BIND DNS CentOS

Template Konfigurasi named, bin dns, linux centos

File template konfigurasi named, bind dns CentOS vps, cloud, dedicated server yang tidak menggunakan control panel bisa melakukan setup BIND DNS melalui terminal ssh, konfigurasi ini sudah ditest dan bekerja dengan baik di VPS Linux CentOS.

Ini adalah catatan pengingat bagi saya khususnya dan juga bagi teman-teman yang ingin menggunakan konfigurasi ini pada servernya, agar mudah tinggal menyesuaikan dan copy-paste.

 

Template konfigurasi BIND DNS ini merupakan bagian dari tutorial : Cara Membuat Name Server dengan domain sendiri

 

Template Konfigurasi named

File ini biasanya ada di /etc/named.conf

key "rndc-key" {
       algorithm hmac-md5;
       /* sesuaikan dengan rndc-key */
       secret "C13stQjLjLZAbpdhKu10xw==";
 };

 controls {
       inet 127.0.0.1 port 953
       allow { 127.0.0.1; } keys { "rndc-key"; };
 };

options {
    listen-on port 53 { 127.0.0.1; 192.0.0.1;};
    listen-on-v6 port 53 { ::1; };
    directory       "/var/named";
    dump-file       "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    allow-query     { any;};
    recursion no;
    
    dnssec-enable yes;
    dnssec-validation yes;
    dnssec-lookaside auto;

    /* Path to ISC DLV key */
    bindkeys-file "/etc/named.iscdlv.key";

    managed-keys-directory "/var/named/dynamic";
};

logging {
    channel default_debug {
    file "data/named.run";
    severity dynamic;
    };
};

zone "." IN {
    type hint;
    file "named.ca";
};

zone "domainanda.com" IN {
    type master;
    file "/var/named/idnetter.com.zone";
    allow-update {none;};
};

zone "0.0.192.in-addr.arpa" IN {
    type master;
    file "/var/named/idnetter.com.rev";
    allow-update {none;};
};

 

DNS Zone

Pada file named.conf diatas, berarti konfig ini letaknya ada di /var/named/, misalnya kita beri nama idnetter.com.zone

$TTL 86400
@       IN      SOA     ns1.babulang.com. support.idnetter.com. (
                2014011807      ;serial, todays date + todays serial #
                28800           ;refresh, seconds
                7200            ;retry, seconds
                604800          ;expire, seconds
                86400           ;minimum, seconds;
)

babulang.com.           NS     ns1.babulang.com.
babulang.com.           NS     ns2.babulang.com.

ns1                     A      192.0.0.1
ns2                     A      192.0.0.1

mail                    A      192.0.0.1
babulang.com.           A      192.0.0.1
                        MX 10  mail.babulang.com.
www                     CNAME  babulang.com.

default._domainkey      IN      TXT     ("v=DKIM1; k=rsa;" "p=isi-dengan-dkim-public-key");

babulang.com. 14400     IN TXT "v=spf1 a mx ipv4:192.0.0.1 ipv6:isi-dengan-ipv6-vps ~all"

 

Reverse IP

Sama seperti konfig untuk DNS zone diatas file ini letaknya juga di /var/named/ misal beri nama: idnetter.com.rev

$TTL 86400
0.0.192.in-addr.arpa.       IN      SOA     ns1.babulang.com. support.idnetter.com. (
                2014011807      ;serial, todays date + todays serial #
                28800           ;refresh, seconds
                7200            ;retry, seconds
                604800          ;expire, seconds
                86400           ;minimum, seconds;
)

0.0.192.in-addr.arpa.      IN     NS      ns1.babulang.com.
0.0.192.in-addr.arpa.      IN     NS      ns2.babulang.com.
1.0.0.192.in-addr.arpa.    IN     PTR     babulang.com.

 

Jika teman-teman kesulitan bisa menghubungi saya melalui kolom komentar, atau bisa menggunakan Jasa Setup VPS Murah saya

Jasa Setting VPS, Cloud, Dedicated Server, Linux, CentOS, Nginx, Apache
Jasa Setting VPS, Cloud, Dedicated Server, Linux, CentOS, Nginx, Apache

Kontak : 081235008433 – PIN : 743EB942