


Bagaimana untuk mengkonfigurasi dan mengoptimumkan perkhidmatan fail statik Nginx
Direktori Akar dan Fail Indeks
Arahan akar menentukan direktori akar yang akan digunakan untuk mencari fail. Untuk mendapatkan laluan ke fail yang diminta, nginx menambahkan permintaan uri ke laluan yang ditentukan oleh arahan root. Arahan ini boleh diletakkan pada mana-mana peringkat dalam konteks http {} , pelayan {} atau lokasi {}. Dalam contoh berikut, arahan akar ditakrifkan untuk pelayan maya. Ia berfungsi untuk semua blok {} lokasi yang tidak mengandungi arahan akar untuk mentakrifkan semula akar secara eksplisit:
server { root /www/data; location / { } location /images/ { } location ~ \.(mp3|mp4) { root /www/media; } }
Di sini, uri nginx bermula dengan /images/ akan berada dalam Carian /www/ data/images sistem fail untuk fail yang sepadan dalam direktori /. Jika uri berakhir dengan sambungan .mp3 atau .mp4, nginx mencari fail dalam direktori /www/media/ kerana ia ditakrifkan dalam blok lokasi yang sepadan.
Jika permintaan berakhir dengan /, nginx menganggapnya sebagai permintaan untuk direktori dan cuba mencari fail indeks dalam direktori. Arahan indeks mentakrifkan nama fail indeks (lalai ialah index.html). Untuk meneruskan contoh, jika uri permintaan ialah /images/some/path/ , nginx mengembalikan fail /www/data/images/some/path/index.html jika ia wujud. Jika tidak, nginx mengembalikan ralat http 404 (tidak dijumpai) secara lalai. Untuk mengkonfigurasi nginx untuk mengembalikan senarai direktori yang dijana secara automatik, sertakan parameter on dalam arahan autoindex:
location /images/ { autoindex on; }
Anda boleh menyenaraikan berbilang nama fail dalam arahan indeks. nginx mencari fail dalam susunan yang ditentukan dan mengembalikan fail pertama yang ditemuinya.
location / { index index.$geo.html index.htm index.html; }
Pembolehubah $geo yang digunakan di sini ialah pembolehubah tersuai yang ditetapkan melalui arahan geo. Nilai pembolehubah bergantung pada alamat IP pelanggan.
Untuk mengembalikan fail indeks, nginx menyemak untuk melihat sama ada ia wujud dan kemudian melakukan ubah hala dalaman ke uri baharu yang diperoleh dengan menambahkan nama fail indeks pada uri asas. Ubah hala dalaman menghasilkan carian baharu untuk lokasi dan mungkin berakhir di lokasi lain, seperti yang ditunjukkan dalam contoh berikut:
location / { root /data; index index.html index.php; } location ~ \.php { fastcgi_pass localhost:8000; #... }
Di sini, jika uri dalam permintaan ialah /path/ dan /data/path/ index .html tidak wujud tetapi /data/path/index.php wujud, maka ubah hala dalaman ke /path/index.php akan dipetakan ke lokasi kedua. Akibatnya, permintaan itu diproksikan.
Cuba beberapa pilihan
Arahan try_files boleh digunakan untuk menyemak sama ada fail atau direktori yang ditetapkan akan mengubah hala secara dalaman dan mengembalikan jika tidak kod status yang ditentukan. Contohnya, untuk menyemak sama ada fail yang sepadan dengan uri permintaan wujud, gunakan arahan try_files dan pembolehubah $uri seperti berikut:
server { root /www/data; location /images/ { try_files $uri /images/default.gif; } }
Fail ditentukan sebagai uri, menggunakan konteks lokasi semasa atau pelayan maya Arahan akar atau alias yang ditetapkan dalam diproses. Dalam kes ini, jika fail yang sepadan dengan uri asal tidak wujud, nginx akan mengubah hala secara dalaman ke uri yang ditentukan oleh parameter terakhir dan mengembalikan /www/data/images/default.gif .
Parameter terakhir juga boleh menjadi kod status (bermula terus dengan tanda sama) atau nama lokasi. Dalam contoh berikut, jika tiada argumen kepada arahan try_files menyelesaikan kepada fail atau direktori sedia ada, ralat 404 dikembalikan.
location / { try_files $uri $uri/ $uri.html =404; }
Dalam contoh seterusnya, jika uri asal atau uri dengan garis miring mengekor yang dilampirkan tidak diselesaikan ke fail atau direktori sedia ada, permintaan akan diubah hala ke lokasi yang ditentukan dan dihantar ke pelayan proksi.
location / { try_files $uri $uri/ @backend; } location @backend { proxy_pass http://backend.example.com; }
Mengoptimumkan prestasi kandungan yang disajikan
Kelajuan pemuatan ialah faktor utama dalam menyampaikan sebarang kandungan. Pengoptimuman kecil pada konfigurasi nginx anda boleh meningkatkan produktiviti dan membantu mencapai prestasi optimum.
Dayakan fail hantar
Secara lalai, nginx mengendalikan pemindahan fail itu sendiri dan menyalin fail ke dalam penimbal sebelum menghantar. Mendayakan arahan sendfile menghapuskan langkah menyalin data ke penimbal dan membolehkan data disalin terus dari satu deskriptor fail ke yang lain. Sebagai alternatif, untuk mengelakkan sambungan pantas daripada menduduki sepenuhnya proses pekerja, anda boleh mengehadkan jumlah data yang dipindahkan dalam satu panggilan sendfile() (dalam kes ini 1 mb) menggunakan arahan sendfile_max_chunk:
location /mp3 { sendfile on; sendfile_max_chunk 1m; #... }
Dayakan tcp_nopush
Gunakan perintah tcp_nopush bersama-sama dengan arahan sendfile; Ini membolehkan nginx menghantar pengepala respons http dalam paket sejurus selepas sendfile() mendapat sebahagian daripada data.
location /mp3 { sendfile on; tcp_nopush on; #... }
Dayakan tcp_nodelay
Arahan tcp_nodelay membenarkan mengatasi algoritma nagle, yang pada asalnya direka untuk menyelesaikan masalah paket kecil dalam rangkaian perlahan. Algoritma ini menggabungkan banyak paket kecil ke dalam satu paket yang lebih besar dan menghantar paket dengan kelewatan 200 milisaat. Hari ini, apabila menyiarkan fail statik yang besar, data boleh dihantar serta-merta tanpa mengira saiz paket. Latensi juga mempengaruhi aplikasi dalam talian (ssh, permainan dalam talian, urus niaga dalam talian, dsb.). Secara lalai, arahan tcp_nodelay ditetapkan kepada hidup, yang bermaksud algoritma nagle dilumpuhkan. Arahan ini hanya digunakan untuk sambungan keepalive:
location /mp3 { tcp_nodelay on; keepalive_timeout 65; #... }
Optimumkan baris gilir tertunggak
其中一个重要因素是 nginx 可以多快地处理传入连接。一般规则是在建立连接时,将其放入侦听套接字的 "listen" (监听)队列中。在正常负载下,队列很小或根本没有队列。但是在高负载下,队列会急剧增长,导致性能不均匀,连接中断,延迟增加。
显示积压队列使用命令 netstat -lan 来显示当前监听队列。输出可能如下所示,它显示在端口 80上的监听队列中,有 10 个未接受的连接,这些连接针对配置的最多 128 个排队连接。这种情况很正常。
current listen queue sizes (qlen/incqlen/maxqlen) listen local address 0/0/128 *.12345 10/0/128 *.80 0/0/128 *.8080
相反,在以下命令中,未接受的连接数(192)超过了 128 的限制。当网站流量很大时,这种情况很常见。要获得最佳性能,需要在操作系统和 nginx 配置中增加可以排队等待 nginx 接受的最大连接数。
current listen queue sizes (qlen/incqlen/maxqlen) listen local address 0/0/128 *.12345 192/0/128 *.80 0/0/128 *.8080
调整操作系统
将 net.core.somaxconn 内核参数的值从其默认值(128)增加到足以容纳大量流量的值。在这个例子中,它增加到 4096。
freebsd 的命令为 sudo sysctl kern.ipc.somaxconn=4096
linux 的命令为 1. sudo sysctl -w net.core.somaxconn=4096 2. 将 net.core.somaxconn = 4096 加入到 /etc/sysctl.conf 文件中。
调整 nginx
如果将 somaxconn 内核参数设置为大于 512 的值,请将 backlog 参数增加在 nginx listen 指令以匹配修改:
server { listen 80 backlog=4096; # ... }
Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi dan mengoptimumkan perkhidmatan fail statik Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

NginxUnit menyokong pelbagai bahasa pengaturcaraan dan dilaksanakan melalui reka bentuk modular. 1. Memuatkan Modul Bahasa: Muatkan modul yang sepadan mengikut fail konfigurasi. 2. Permulaan Permohonan: Jalankan kod aplikasi apabila bahasa panggilan berjalan. 3. Permintaan Pemprosesan: Teruskan permintaan kepada contoh permohonan. 4. Pulangan Respons: Kembalikan respons yang diproses kepada pelanggan.

Nginx dan Apache mempunyai kelebihan dan kekurangan mereka sendiri dan sesuai untuk senario yang berbeza. 1.Nginx sesuai untuk senario penggunaan sumber yang tinggi dan rendah. 2. Apache sesuai untuk senario di mana konfigurasi kompleks dan modul yang kaya diperlukan. Dengan membandingkan ciri teras mereka, perbezaan prestasi, dan amalan terbaik, anda boleh membantu anda memilih perisian pelayan yang paling sesuai dengan keperluan anda.

Soalan: Bagaimana untuk memulakan nginx? Jawapan: Pasang Nginx Startup Nginx Verification Nginx adalah nginx mula meneroka pilihan permulaan lain secara automatik Mula nginx

Bagaimana untuk mengesahkan sama ada nginx dimulakan: 1. Gunakan baris arahan: status sistem sistem nginx (linux/unix), netstat -ano | Findstr 80 (Windows); 2. Periksa sama ada port 80 dibuka; 3. Semak mesej permulaan Nginx dalam log sistem; 4. Gunakan alat pihak ketiga, seperti Nagios, Zabbix, dan Icinga.

Untuk menutup perkhidmatan nginx, ikuti langkah -langkah berikut: Tentukan jenis pemasangan: Red Hat/CentOS (status SistemCTL nginx) atau debian/ubuntu (status nginx) menghentikan perkhidmatan: Red Hat/CentOS (SystemCtl Stop Nginx) atau Debian/Ubuntu (perkhidmatan Nginx) (Syst

Bagaimana cara mengkonfigurasi nginx di Windows? Pasang Nginx dan buat konfigurasi hos maya. Ubah suai fail konfigurasi utama dan sertakan konfigurasi hos maya. Mulakan atau Muat semula Nginx. Uji konfigurasi dan lihat laman web. Selektif membolehkan SSL dan mengkonfigurasi sijil SSL. Selektif tetapkan firewall untuk membolehkan trafik port 80 dan 443.

Pelayan tidak mempunyai kebenaran untuk mengakses sumber yang diminta, mengakibatkan ralat NGINX 403. Penyelesaian termasuk: Periksa keizinan fail. Semak konfigurasi .htaccess. Semak konfigurasi Nginx. Konfigurasikan keizinan Selinux. Semak peraturan firewall. Menyelesaikan masalah lain seperti masalah penyemak imbas, kegagalan pelayan, atau kesilapan lain yang mungkin.

Langkah -langkah untuk memulakan Nginx di Linux: Periksa sama ada Nginx dipasang. Gunakan SistemCTL Mula Nginx untuk memulakan perkhidmatan Nginx. Gunakan SistemCTL Dayakan NGINX untuk membolehkan permulaan automatik Nginx pada permulaan sistem. Gunakan Status SistemCTL Nginx untuk mengesahkan bahawa permulaan berjaya. Lawati http: // localhost dalam pelayar web untuk melihat halaman selamat datang lalai.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

Dreamweaver CS6
Alat pembangunan web visual

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.