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. 🙂

11 pemikiran pada “Mengenal perintah – perintah Nginx

  1. 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.

      • 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.

  2. berarti urut-urutannya (mohon koreksinya) :

    yum update nginx
    service nginx upgrade
    yum update php-fpm
    mysql_upgrade

    untuk yang php-fpm apa otomatis terupdate juga module2 nya?
    trims.

    • Kalau saya sih mbak, cuma ngetik ini:

      yum update

      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:

      service nginx upgrade
      mysql_upgrade
      • 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.

  3. mas chandra berikut hasilnya :
    upgrade nginx dari versi 1.9.15 ke versi 1.10.0
    yang sudah ada di repo :

    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/mainline/centos/6/$basearch/
    gpgcheck=0
    enabled=1

    eksekusi :

    yum update nginx
    Loaded plugins: fastestmirror
    Setting up Update Process
    Loading mirror speeds from cached hostfile
     * base: mirrors.sonic.net
     * epel: linux.mirrors.es.net
     * extras: mirror.lax.hugeserver.com
     * remi: mirrors.mediatemple.net
     * remi-php56: mirrors.mediatemple.net
     * remi-safe: mirrors.mediatemple.net
     * updates: mirror.chpc.utah.edu
    No Packages marked for Update

    upgrade php dari versi 5.6.20 ke versi 5.6.21

    yum update php-fpm

    hasilnya https://goo.gl/gi0foY

    mysql nggak ada masalah, cuma bingung yg nginx dan php 🙁

Tinggalkan komentar