HTTP Server| XMPP Server| Database Server
| Email Server
KONFIGURASI UTAMA
Aturan penulisan dan Konfigurasi Global-Link HTTP Server:
- Block konfigurasi menggunakan seperti tag xml atau HTML, dan Konfigurasi utama dengan diawali dengan <http> dan diakhir dengan </http>, dan Seluruh tulisan diluar dari kedua tag tersebut akan diabaikan.
- Untuk membuat sebuah komentar bisa diawali dengan ;( titik koma ), # ( Hastag )
- Antara Nama Variable dan nilai variable dapat dipisah menggunakan=( Sama dengan ) atau Spasi.
- Dalam penulisan Nama Variable tidak memandang penulisan huruf baik huruf kecil maupun capital.
Perintah Utama didalam Block <http> adalah:
- ProcessPool=Digunakan untuk memberikan nilai proses yang dipending untuk mempercepat proses, secara standart bernilai 10
Contoh:ProcessPool 10
- DocumentIndex=File Utama yang akan digunakan ketika direquest tanpa menggunakan file, Dapat diberikan secara multiple dalam 1 baris, dan pencarian dari awal, dipisahkan menggunakan spasi.
Contoh:DocumentIndex index.php index.html
- DefaultType=Content-Type dari sebuah file dapat menggunakan mime.types, dan apabila Extension file tidak diberikan akan menggunakan ContentType Standart ini.
Contoh:DefaultType text/plain
- AccessLogs=File menyimpan informasi proses Request.
Contoh:AccessLogs Logs\access.log
- ErrorLogs=File menyimpan informasi ketika ada kesalahan selama proses system.
Contoh:ErrorLogs Logs\error.log
Catatan: Letak folder relative terhadap letak file HTTPServer.exe dan Folder harus sudah dibuat. - MimeCompress=Menentukan Mime yang akan dicompress gzip dalam proses pengiriman.
Contoh:MimeCompress text/html text/plain image/bmp text/css text/javascript image/png image/jpeg image/jpg image/svg
- ExtCompress=Selain berdasarkan Mime, dapat juga berdasarkan Extension dari file.
Contoh:ExtCompress .js .css .jpeg .jpg .png .svg
- UseThread=Setting penggunaan Thread dalam melayani request HTTP, default false.
Contoh:UseThread false
- SecureUseThread=Setting penggunaan Thread dalam melayani request HTTPS ( Secure ), default true
Contoh:SecureUseThread true
- HTTP2UseThread=Setting penggunaan Thread dalam melayani request HTTP2, default false
Contoh:HTTP2UseThread true
- Allow From All=Konfigurasi bahwa Server melayani untuk seluruh IP.
- Deny From All=Konfigurasi bahwa server akan memblock seluruh request.
- Deny Response=Setting Nomor Response ketika terjadi Block sebuah koneksi, default 403
Contoh:Deny Response 403
Apabila nomor Respon diisi dengan 509 atau 999, maka Koneksi akan diputus tanpa mereplay, Contoh:Deny Response 509
- Allow=Menentukan Server dapat direquest oleh IP. Penulisan perbaris dan diakhiri dengan ;( titik koma ). Juga bisa menambahkan range subnet dengan dibatasi /
Contoh:allow 127.0.0.1/32;
allow 192.168.88.0/24; - Block=Menentukan Server akan otomatis memblock koneksi dari IP yang ditentukan, penulisan sama dengan Allow
Contoh:block 127.0.0.1/32;
block 192.168.88.0/24; - include=Membagi konfigurasi dalam beberapa file dan include dapat digunakan dengan menyebutkan file yang akan diambil.
Contoh:include define.conf
include ip_block.conf
AccessLogs dan ErrorLogs apabila tidak ditentukan, maka tidak akan memproses Logging.
KONFIGURASI FITUR
- Block <define> mendefinisikan variable yang akan digunakan dalam system, Contoh:
<define>Catatan: System memiliki variable utama ${StartDir} untuk merujuk Folder utama letak dari file HTTPServer.exe
SRVROOT=${StartDir}
PHPROOT=E:/_server/php/php-8.5.2
DOCROOT=D:\www CERTROOT=D:\SSL_Cert\cert
</define>
Untuk menggunakan variable dapat dengan menuliskan contoh:
PHPExec ${PHPROOT}\php-cgi.exe<php>
# Setting apakah akan menggunakan Pipe / TCP
PHPPipe True
# Tentukan Folder lokasi dari Program PHP, sebutkan pula posisi letak dari file php.ini
PHPExec ${PHPROOT}\php-cgi.exe PHPIni ${PHPROOT}
# Setting FastCGI menggunakan mode TCP apabila PHPPipe false
FastCGI 127.0.0.1:9000 FastCGI 127.0.0.1:9001
# Extention yang akan diproses sebagai script PHP
PHPFile .php
# Maksimal Proses Pool untuk PHP
MaxPool 10
# Contoh konfigurasi Environment untuk PHP
<environment> PATH ${PHPROOT};C:/WINDOWS/system32;C:/WINDOWS; SystemRoot C:/Windows SystemDrive C: TEMP C:/WINDOWS/Temp TMP C:/WINDOWS/Temp windir C:/WINDOWS PHPRC ${PHPROOT}
# PHP_FCGI_MAX_REQUESTS 500
</environment>
</php>
VIRTUAL SERVER
Virtual Server menggunakan Block <server> </server>, berikut Variable yang berlaku pada Block <server></server>
Tag <server> membutuhkan parameter tambahan untuk menyebutkan Nama Host yang akan disupport server
Contoh:
<server example.com># Apabila sebuah domain menggunakan konfigurasi sama bisa dipisah dengan||, harap diingat konfigurasi seperti ini hanya memunculkan variable $host
<server sub.example.com>
# Untuk menggunakan multi Host dapat menggunakan format Regular Expressions, dengan diawali ~
<server example.com||www.example.com> Baru
<server host1.example.com||host2.example.com> Baru
<server ~^(?<subdomain$>.+).example.com$>
<server ~^(?<sub$>.+).example.com$>
- Listen, Tentukan Port yang akan dibuka dalam memproses Server ini
Contoh:Listen 80 http2
Listen 443 ssl http2 ssl=Menentukan port ini dibuka dengan mode secure ( SSL ). - DocumentRoot, digunakan untuk menentukan Letak Root Document dari Host Server
Contoh:DocumentRoot ${DOCROOT}\umum
DocumentRoot ${DOCROOT}\example.com\${subdomain} - Konfigurasi mode Secure / SSL, Apabila tidak didefinisikan, maka Host ini tidak akan dapat diakses menggunakan mode Secure.
- Certificate
- PrivateKey
- CA ( Optional }
Certificate ${CERTROOT}\$host\server.crt PrivateKey ${CERTROOT}\$host\server.key CA ${CERTROOT}\$host\server.pem
http2=Menentukan Port ini dapat mengakses mode HTTP2.
Variable Lain yang merupakan turunan dari Perintah Utama.
- include
- AccessLogs
- ErrorLogs Catatan: AccessLogs dan ErrorLogs apabila tidak ditentukan, maka akan dialihkan ke pengaturan utama.
- <location>, digunakan menentukan path request Tag ini membutuhkan parameter tambahan yaitu nilai awalan dari Request.
Untuk konfigurasi location diakses secara dinamis dapat disimpan ke dalam file access.dat atau .htaccess dan diletakkan di folder DocumentRoot dari Konfigurasi Host Server
Contoh:
<location />Variable yang berlaku didalam Block <location> adalah:
<location /assets/static>
- DocumentRoot / Root, Menentukan Root baru dari location yang ditentukan, apabila tidak ditentukan, maka akan menggunakan nilai dari DocumentRoot pada Tag <server>
- Failed / Fail, Apabila file yang diinginkan dari location ini tidak ada, maka akan dialihkan ke location baru.contoh:
Fail _missing_
Pastikan sudah ditentukan Location dengan _missing_ agar bisa berfungsi dengan benar. - expires, Apabila dikehendaki, maka akan otomatis menambahkan Header Expired. Contoh:
expired 60 ( Detik )
Expired 6h ( 6 Jam )
Expired 1d ( 1 hari )
Expired 7d ( 7 hari ) - gzip, Menentukan bahwa file statik di location ini akan diproses dengan gzip ( selama tidak diproses PHP ). Contoh:
gzip on gzip true
- header, Menambahkan Header Replay pada location ini, tanda kutip 2 tidak harus ditambahkan, namun agar enak dibaca boleh ditambahkan, Contoh:
header "Cache-Control: public, no-transform"
- rewrite, Regular Expresions untuk menghandle request untuk dialihkan ke file atau script php,
rewrite secara dinamis dapat juga diletakkan ke file access.dat atau .htaccess pada folder documentroot, Contoh:rewrite ^(.*)/?ref=(.*)$ /index.php?action=$1&ref=$2 rewrite ^(.*)/ref=(.*)$ /index.php?action=$1&ref=$2 rewrite ^(.*)?ref=(.*)$ /index.php?action=$1&ref=$2 rewrite ^(.*)$ /index.php?action=/$1
- include
- Allow From All
- Deny From All
- Deny Response
- Allow
- Block
Contoh Konfigurasi Lengkap
Blok Config Diawali dengan <http> dan </http>
Diluar itu, tulisan apapun tidak akan dibaca.
<http>
ProcessPool 10
# Isi Komentar
DocumentIndex index.php index.html AccessLogs Logs\access.log ErrorLogs Logs\error.log DefaultType text/plain
# ---------- Thread
UseThread false SecureUseThread false HTTP2UseThread false
Allow From All Deny Response 403
# Deny Response 509 # Deny From All
;Content-Type yang akan di compress buffer ;image/webp atau .webp sudah compress
MimeCompress text/html text/plain image/bmp text/css text/javascript image/png image/jpeg image/jpg image/svg ExtCompress .js .css .jpeg .jpg .png .svg
# include define.conf
<define>
SRVROOT=${StartDir}
PHPROOT=E:/_server/php/php-8.5.2
DOCROOT=D:\www CERTROOT=D:\SSL_Cert\cert </define>
# include php_pipe.conf # include php_tcp.conf
<php>
PHPPipe True
PHPExec ${PHPROOT}\php-cgi.exe PHPIni ${PHPROOT}
FastCGI 127.0.0.1:9000 FastCGI 127.0.0.1:9001 PHPFile .php MaxPool 10
<environment>
PATH "${PHPROOT};C:/WINDOWS/system32;C:/WINDOWS;" SystemRoot "C:/Windows" SystemDrive "C:" TEMP "C:/WINDOWS/Temp" TMP "C:/WINDOWS/Temp" windir "C:/WINDOWS" PHPRC "${PHPROOT}" # PHP_FCGI_MAX_REQUESTS 500
</environment>
</php>
//-- Server Default atau <server _default_> <server localhost>
Listen 80 http2 DocumentRoot "${DOCROOT}\umum"
<location />
</location>
Certificate = ${CERTROOT}\${host}\server.crt PrivateKey = ${CERTROOT}\${host}\server.key CA = ${CERTROOT}\${host}\server.pem
Deny Response 509 include ip_block.conf </server>
include vhost_example.conf </http>
Contoh Konfigurasi Virtual Server
<server example.com||www.example.com>
Listen 80 http2 Listen 443 ssl http2 DocumentRoot "${DOCROOT}\example.com\www"
# variable $host akan otomatis dibuat oleh system dari parameter tag server
Certificate = ${CERTROOT}\${host}\server.crt PrivateKey = ${CERTROOT}\${host}\server.key CA = ${CERTROOT}\${host}\server.pem
AccessLogs Logs\example.com-access.log ErrorLogs Logs\example.com-error.log
include config_example.conf </server>
<server sub.example.com>
Listen 80 http2 Listen 443 ssl http2 DocumentRoot "${DOCROOT}\example.com\sub"
# variable $host akan otomatis dibuat oleh system dari parameter tag server
Certificate = ${CERTROOT}\${host}\server.crt PrivateKey = ${CERTROOT}\${host}\server.key CA = ${CERTROOT}\${host}\server.pem
AccessLogs Logs\example.com-access.log ErrorLogs Logs\example.com-error.log </server>
# Penggunaan Regular Expresions harus diawali dengan ~
<server ~^(?<subdomain>.+).example.com$>
Listen 80 http2 Listen 443 ssl http2
# variable ${subdomain} akan otomatis dibuat oleh system dari parameter tag server dan berupa Expresions
# variable ${host} alamat Host lengkap
DocumentRoot "${DOCROOT}\example.com\${subdomain}"
Certificate = ${CERTROOT}\${subdomain}.example.com\server.crt PrivateKey = ${CERTROOT}\${host}\server.key CA = ${CERTROOT}\${host}\server.pem
AccessLogs Logs\${host}-access.log ErrorLogs Logs\${subdomain}.example.com-error.log
<location /assets/font>
Root ${DOCROOT}/assets/font Fail _missing_
# gzip on
expires 30d header "Cache-Control: public, no-transform" </location>
<location />
Root "${DOCROOT}/example.com/"
rewrite ^(.*)$ /index.php?action=/$1
expires 7d header "Cache-Control: public, no-transform"
Deny Response 509 include ip_block.conf </location>
<location _missing_>
Root "${DOCROOT}/example.com/"
rewrite ^(.*)$ /index.php?action=/$1
expires 7d header "Cache-Control: public, no-transform"
Deny Response 509 include ip_block.conf </location>
</server>