Mengenal perintah – perintah Nginx
Banyak yang tertarik menggunakan Nginx karena “katanya” lebih baik daripada web server lainnya. Tidak salah sih dan memang untuk konfigurasi defaultnya sudah cukup mampu menangani situs dengan trafik ribuan per hari hanya dengan VPS 512MB. Nah… artikel kali ini cocok bagi yang masih belajar atau pemula terhadap penggunaan Nginx. Perintah apa saja yang penting dipahami dan bisa dilakukan?
Instalasi Nginx
Saya asumsikan anda sudah berhasil menginstall Nginx dalam server anda, kalau belum ya tinggal jalankan perintah ini saja sih:
- CentOS
yum install nginx
- Debian/Ubuntu
apt-get install nginx
Yang akan dipasangkan nanti adalah versi terbaru yang ada dalam repository distro Linux yang digunakan.
Menjalankan Nginx
service nginx start
atau
systemctl start nginx
Mematikan Nginx
service nginx stop
atau
systemctl stop nginx
Tidak berhenti juga prosesnya? Ambil cara sadis:
killall -9 nginx
Restart Nginx
service nginx restart
atau
systemctl restart nginx
Pesan yang ditampilkan kalau berhasil:
Stopping nginx: [ OK ]
Starting nginx: [ OK ]
Membaca ulang konfigurasi Nginx
service nginx reload
atau
systemctl reload nginx
Hasilnya kalau sukses:
Reloading nginx: [ OK ]
Fungsinya anda tidak perlu merestart Nginx (dan mengakibatkan downtime) setelah anda mengedit konfigurasi Nginx.
Cek konfigurasi Nginx
nginx -t
atau
service nginx configtest
Balasannya kalau semua normal akan seperti ini:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Cek apakah Nginx aktif
service nginx status
Contoh outputnya:
â— nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2016-04-27 17:05:26 EDT; 1min 12s ago
Process: 2393 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
Process: 2409 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 2404 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 2411 (nginx)
Tasks: 3 (limit: 512)
Memory: 2.2M
CPU: 92ms
CGroup: /system.slice/nginx.service
├─2411 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
├─2412 nginx: worker process
└─2413 nginx: worker process
Apr 27 17:05:26 ubuntu-2gb-sgp1-01 systemd[1]: Starting A high performance web server and a reverse proxy server...
Apr 27 17:05:26 ubuntu-2gb-sgp1-01 systemd[1]: Started A high performance web server and a reverse proxy server.
atau
ps -aux | grep nginx
Tampilannya akan seperti berikut:
root 2411 0.0 0.0 125060 1456 ? Ss 17:05 0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
www-data 2412 0.0 0.1 125420 3168 ? S 17:05 0:00 nginx: worker process
www-data 2413 0.0 0.1 125420 3168 ? S 17:05 0:00 nginx: worker process
root 2416 0.0 0.0 14516 940 pts/0 S+ 17:06 0:00 grep --color=auto nginx
Cara upgrade Nginx
service nginx upgrade
Metode ini sebaiknya dilakukan setelah anda mengupdate/upgrade Nginx lewat perintah apt-get
atau yum
. Jadi yang dilakukan adalah akan menjalankan proses baru menggunakan program Nginx yang telah diupgrade dan memindahkan setiap sambungan ke yang baru, kemudian program lama akan dinonaktifkan. Ini menjamin proses upgrade tanpa adanya downtime.
Cek versi Nginx dan modul – modulnya
nginx -V
Tampilannya akan mirip seperti ini:
nginx version: nginx/1.10.0 (Ubuntu)
built with OpenSSL 1.0.2g-fips 1 Mar 2016
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_v2_module --with-http_sub_module --with-http_xslt_module --with-stream --with-stream_ssl_module --with-mail --with-mail_ssl_module --with-threads
Yak, inilah dasar – dasar perintah Nginx dan bisa dikatakan mencakup 90% dari apa yang biasa dilakukan. Semoga bermanfaat. 🙂
mas chandra,
untuk bagian upgrade nginx tolong dibahas juga bagaimana cara upgrade yang lainnya seperti php beserta komponen pendukungnya dan mariadb (LEMP stack) 🙂
selama ini saya selalu instal ulang vps dari awal bila ingin menggunakan versi LEMP terbaru, itu saya lakukan 3 bulan sekali, memang ribet apalagi kalau vps berisi banyak site/blog (untungnya cuma punya satu site saja) tapi saya lebih suka semuanya fresh dari awal untuk menghindari konflik dengan versi lama 😀 jadi kepikiran pingin coba cara upgrade 🙂 terima kasih sebelumnya.
Mbak pakai metode instalasi LEMP apa kok harus install ulang untuk upgradenya? Masih di CentOS 6? Selama ini saya upgrade belum ada masalah soalnya.
Oh ya mbak, ga minat coba FastCGI Cache untuk Nginx: https://servernesia.com/1263/mengaktifkan-nginx-fastcgi-cache/ Ini kalau mbak kurang suka nambah – nambah Varnish. 😛 Mirip sistemnya tapi bagusnya sudah ada di Nginx sendiri, tinggal setting saja.
nggak pakai metode apa2 mas, seperti komentar diatas saya lebih suka semuanya fresh dari awal untuk menghindari konflik dengan versi lama sekalian biar nggak lupa langkah2 instal dari awal 😀
nah untuk FastCGI Cache sepertinya kurang cocok untuk saya karena seperti catatan mas chandra “kadang bermasalah pada permalink dan atau login pengguna” jadi cukup dengan memcached. oh ya untuk memcached apa sudah support penuh dengan php 7 ya?
Sangat jarang sebenarnya mbak kalau ada konflik setelah update, apalagi kalau kita melakukannya dari repository resmi. Mereka mengutamakan kestabilan daripada versi baru, jadi kompatibilitas itu yang utama. Lain lagi kalau sudah pakai repository eksternal atau distro Linuxnya ganti ke versi baru (CentOS 6 ke 7 atau Debian 7 ke 8 atau Ubuntu 14.04 ke 16.04). Ini yang harus hati – hati. 🙂
Iya mbak, FastCGI cachenya ini paling cocok buat situs yang 90% read-only. Aman sudah dicache semuanya, PHP-FPM cuma kerja saat pertama kali kontennya kosong. Karena itu perlu dibersihkan cachenya kalau ada perubahan, misal komentar atau posting baru.
Ini baru saya cek mbak, masih belum ada release stable dari Memcached untuk PHP: https://github.com/php-memcached-dev/php-memcached/issues/213
Tampaknya beta sudah ada tapi lebih baik nunggu yang stabil.
berarti urut-urutannya (mohon koreksinya) :
untuk yang php-fpm apa otomatis terupdate juga module2 nya?
trims.
Kalau saya sih mbak, cuma ngetik ini:
Ini sekalian update modul – modul PHP lainnya yang anda tanyakan. Kalau ga ya terpaksa nanti satu – satu ngetiknya, misal:
yum update php5-opcache
.Nah baru semuanya selesai mbak eksekusi:
terima kasih infonya mas, ternyata cuma butuh tiga baris perintah langsung terupdate semua ya lempnya, saya coba dulu 🙂
Oke mbak 🙂 Saya baru terpikir sih, kalau pakai
yum update
saja itu akan memperbarui semua paket aplikasi yang ada dalam CentOS. Kalau mau cuma PHP saja dan modul – modulnya mungkin lebih cocok:yum update php5-*
atau sejenisnya.mas chandra berikut hasilnya :
upgrade nginx dari versi 1.9.15 ke versi 1.10.0
yang sudah ada di repo :
eksekusi :
upgrade php dari versi 5.6.20 ke versi 5.6.21
hasilnya https://goo.gl/gi0foY
mysql nggak ada masalah, cuma bingung yg nginx dan php 🙁
ups ternyata yg mainline sampai versi 15 terakhir hehehe maaf mas chandra :p
Saya juga berterimakasih mbak, kalau ga tanya saya juga baru tahu kalau versi stable kok bisa lebih baru dari mainline. Asumsi saya seperti grafik dibawah:

Sumbernya dari pengumuman Nginx sebelumnya soal beda kedua versi tersebut: https://www.nginx.com/blog/nginx-1-6-1-7-released/
Aneh. Haha. 😀
Ketemu lagi mas..mo tanya nih, gimana cara edit tulisan “Welcome to nginx!”
saya tidak menu dimana lokasi filenya, saya pake easyengine. makasih sebelumnya mas Candra
edit tulisan ini mas
makasih
Oh itu editnya di virtual host Nginx mas, tepatnya yang proses halaman index.
Kemudian mas edit saja file
index.html
di lokasi tersimpan file websitenya.ooh terima kasih banyak mas 🙂