Cara Meningkatkan Performa Nginx di Linux
[Kincaimedia.net]
pertama-tama kita harus mengetahui terlebih dahulu default config yang ada pada webserver nginx
Default Config Files dan Nginx Port
◾/usr/local/nginx/conf/ – nginx server direktori konfigurasi dan /usr/local/nginx/conf/nginx.conf adalah main file konfigurasi.
◾/usr/local/nginx/html/ – lokasi default document.
◾/usr/local/nginx/logs/ – lokasi log file default.
◾Nginx HTTP port standar : TCP 80
◾Nginx HTTPS port standar : TCP 443
Teman-teman juga bisa memastikan lokasi server direktori dan main filenya dengan perintah : /usr/local/nginx/sbin/nginx -t
Perlu di perhatikan bahwa setia server maupun os mungkin mempunyai settingan peraturan yang berbeda.
# 1: Aktifkan SELinux
Security-Enhanced Linux (SELinux) adalah fitur kernel Linux yang menyediakan mekanisme untuk mendukung kebijakan keamanan kontrol akses yang memberikan perlindungan besar. Hal ini dapat menghentikan banyak serangan sebelum sistem Anda kronis.
getsebool -a | less
getsebool -a | grep off
getsebool -a | grep on
Untuk mengamankan mesin, lihat dulu pengaturan yang ditetapkan dari ‘on’ dan ubah ke ‘off’ jika itu tidak berlaku untuk setup Anda dengan bantuan perintah setsebool. Set SE Linux boolean yang benar untuk mempertahankan fungsi dan perlindungannya. Harap dicatat bahwa SELinux menambahkan 2-8% overhead untuk khas RHEL atau CentOS instalasi.
# 2: Hapus Semua Nginx Modul yang tak diinginkan
Anda perlu meminimalkan jumlah modul yang terhimpun langsung ke binari nginx. Ini dapat meminimalkan risiko dengan membatasi kemampuan yang diijinkan oleh webserver. Anda dapat mengkonfigurasi dan menginstal nginx hanya dengan menggunakan modul yang diperlukan. Misalnya, menonaktifkan SSI dan modul autoindex Anda dapat mengetikan :
# ./configure –without-http_autoindex_module –without-http_ssi_module
# make
# make install
Ketik perintah berikut untuk melihat mana modul yang dapat diaktifkan atau dinonaktifkan sementara dalam kompilasi Server nginx :
# ./configure –help | less
# 3: Batas Metode yang Tersedia
GET dan POST adalah metode yang paling umum di temukan di Internet. metode web server didefinisikan dalam RFC 2616. Jika web server tidak memerlukan pelaksanaan semua metode yang tersedia, maka itu harus dinonaktifkan. Berikut ini adalah cara dalam menyaring dan hanya memungkinkan GET, HEAD dan POST metode :
## Only allow these request methods ##
if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return 444;
}
## Do not accept DELETE, SEARCH and other methods ##
# 4: Bagaimana cara Menolak Agen Pengguna tertentu ?
Anda dapat dengan mudah memblokir agen pengguna seperti scanner, bots, dan spammer yang mungkin dapat menyalahgunakan server Anda.
## Block download agents ##
if ($http_user_agent ~* LWP::Simple|BBBike|wget) {
return 403;
}
##
# 5: Bagaimana Saya Menghentikan Gambar Hotlinking?
Gambar atau hotlinking HTML berarti seseorang membuat link ke situs Anda atau ke salah satu gambar Anda, dan langsung menampilkannya di situs mereka sendiri. Hasil akhirnya Anda akan berakhir untuk membayar tagihan bandwidth dan konten yang digunakan oleh orang lain karena gambar atau konten tersebut dihosting disitus anda. Hal ini biasanya dilakukan di forum dan blog. Saya sangat menyarankan Anda memblokir dimage hotlinking di server Anda sendiri dengan cara.
# Stop deep linking or hot linking
location /images/ {
valid_referers none blocked www.example.com example.com;
if ($invalid_referer) {
return 403;
}
}
