GNU/Linux >> Belajar Linux >  >> Linux

Pemecahan masalah Nginx dasar

Pemecahan masalah Nginx dasar

Artikel ini menunjukkan beberapa pemecahan masalah dasar untuk Nginx, salah satu server HTTP paling populer. Tujuannya adalah untuk memperbaiki beberapa kesalahan paling umum yang mungkin ada dalam konfigurasi Nginx Anda.

Mencari kesalahan sintaks atau peringatan dalam konfigurasi

Melalui perintah sederhana, Anda dapat memverifikasi status file konfigurasi Nginx:$ sudo systemctl config nginx Output akan menunjukkan apakah file konfigurasi benar atau, jika tidak, itu akan menunjukkan file dan baris di mana masalahnya.

$ sudo systemctl config nginx
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ sudo systemctl config nginx
"worker_connections" directive is not allowed here in /etc/nginx/nginx.conf:12
nginx: configuration file /etc/nginx/nginx.conf test failed

Jika Anda tidak memiliki perintah layanan yang tersedia di sistem Anda, Anda dapat memilih untuk menggunakan -t Parameter Nginx, yang juga menguji file konfigurasi untuk sintaks yang benar dan kemudian mencoba membuka file yang dirujuk dalam konfigurasi.$ sudo nginx -t

Periksa apakah Nginx berjalan

Untuk memeriksa status layanan Nginx Anda dapat menggunakan perintah berikut:$ sudo systemctl status nginx Anda juga dapat menggunakan perintah umum untuk memvalidasi status layanan:$ sudo /etc/init.d/nginx status

Verifikasi bahwa port terbuka dan layanan mendengarkan

Verifikasi bahwa Anda memiliki port yang diperlukan terbuka dan untuk memverifikasi bahwa layanan Nginx mendengarkan melalui port tersebut, Anda dapat menggunakan lsof perintah, idealnya di port default 80 dan 443.

$ sudo lsof -i :80 -s TCP:LISTEN
nginx   1305 nginx    6u  IPv4 1613873      0t0  TCP *:http (LISTEN)
nginx   1305 nginx    7u  IPv6 1613874      0t0  TCP *:http (LISTEN)
nginx   1306 nginx    6u  IPv4 1613873      0t0  TCP *:http (LISTEN)
nginx   1306 nginx    7u  IPv6 1613874      0t0  TCP *:http (LISTEN)

Periksa apakah Nginx memproses permintaan

Jika Nginx benar-benar mendengarkan port yang sesuai, langkah selanjutnya adalah memeriksa apakah itu memproses permintaan, yang dapat dibuat dengan menggunakan curl alat dengan menggunakan IP, URL, atau localhost jika pengaturan Anda mendengarkan di localhost:

$ curl -i http://127.0.0.1/nginx_status
HTTP/1.1 200 OK
Server: nginx/1.11.1
Date: Wed, 08 Aug 2021 11:36:43 GMT
Content-Type: text/plain
Content-Length: 97
Connection: keep-alive

Active connections: 1
server accepts handled requests
3 3 3
Reading: 0 Writing: 1 Waiting: 0

Periksa log

Periksa log terakhir dari layanan Nginx.$ sudo tail -f /var/log/nginx/access.log /var/log/nginx/error.log

Periksa izin

Pastikan Nginx memiliki izin yang sesuai untuk mengakses file yang dibutuhkan.

$ namei -om /usr/share/nginx/html/index.html
f: /usr/share/nginx/html/index.html
drwxr-xr-x root root /
drwxr-xr-x root root usr
drwxr-xr-x root root share
drwxr-xr-x root root nginx
drwxr-xr-x root root html
-rw-r--r-- root root index.html

Muat ulang layanan

Jika Anda membuat perubahan pada file konfigurasi yang belum diterapkan, Anda dapat memuat ulang layanan, memulai proses Nginx baru, dan mematikan pekerja lama secara perlahan untuk menghindari shutdown yang cepat dan agresif.$ sudo service nginx reload Untuk shutdown cepat yang tidak menunggu proses berakhir, Anda dapat memulai ulang Nginx.$ sudo service nginx restart

Aktifkan mode de debug

Dalam file konfigurasi (biasanya /etc/nginx/nginx.conf ) ubah level log untuk error_log arahan:

server {
# stuff
error_log /var/logs/nginx/error.log debug;
# stuff
}

Anda dapat men-debug aturan penulisan ulang untuk melihat hasil pemrosesan di log kesalahan:

server {
# stuff
error_log /var/logs/nginx/error.log notice;
rewrite_log on;
# stuff
}

Verifikasi resolusi DNS

Aturan di /etc/hosts memiliki prioritas di atas resolusi DNS. Anda dapat memverifikasi catatan DNS dengan:$ host -t A website.com Anda juga dapat memeriksa resolusi DNS lengkap:$ dig +trace website.com

Kesimpulan

Ini adalah beberapa langkah pemecahan masalah dasar untuk beberapa kesalahan paling umum dengan Nginx. Anda juga dapat mengandalkan dokumentasi jika langkah-langkah ini tidak memperbaiki masalah Anda, memanfaatkan popularitas besar Nginx.


Linux
  1. Memecahkan masalah perangkat keras di Linux

  2. Konfigurasi Dasar PHP 7 dan Nginx di Ubuntu 16.04 Linux

  3. Cara Menonaktifkan ETag di NGINX

  1. Cara Menggunakan Nginx untuk Mengarahkan

  2. Pemecahan masalah kumpulan aplikasi dasar

  3. Pemecahan masalah Nginx dasar

  1. nginx - 413 Permintaan Entitas Terlalu Besar

  2. 5 perintah pemecahan masalah jaringan Linux

  3. Memecahkan Masalah Pekerjaan Cron