Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Analisis contoh permulaan cepat Nginx

Analisis contoh permulaan cepat Nginx

WBOY
WBOYke hadapan
2023-05-14 12:19:20905semak imbas

Mengapa menggunakan nginx?

Pada masa ini, pesaing utama nginx adalah apache Di sini saya akan membuat perbandingan mudah antara keduanya untuk membantu semua orang lebih memahami kelebihan nginx.

1. Sebagai pelayan web:

Berbanding dengan apache, nginx menggunakan lebih sedikit sumber, menyokong lebih banyak sambungan serentak dan mencerminkan kecekapan yang lebih tinggi menjadikan nginx sangat popular dengan web penyedia hosting. Dalam kes konkurensi sambungan tinggi, nginx ialah alternatif yang baik kepada pelayan apache: nginx ialah salah satu platform perisian yang sering dipilih oleh bos dalam perniagaan hos maya di Amerika Syarikat Ia boleh menyokong respons sehingga 50,000 sambungan serentak. Terima kasih kepada nginx untuk Kami memilih epoll dan kqueue sebagai model pembangunan.

nginx sebagai pelayan pengimbangan beban: nginx boleh terus menyokong rel dan program php secara dalaman untuk menyediakan perkhidmatan luaran, atau ia boleh menyokong perkhidmatan luaran sebagai pelayan proksi http. nginx ditulis dalam C, dan overhed sumber sistem dan kecekapan penggunaan CPU adalah lebih baik daripada perlbal.

2. Konfigurasi nginx adalah mudah, apache adalah kompleks:

nginx amat mudah untuk dimulakan, dan boleh dijalankan hampir 24/7, walaupun ia dijalankan untuk beberapa bulan Tiada but semula diperlukan Anda juga boleh menaik taraf versi perisian tanpa mengganggu perkhidmatan.

Prestasi pemprosesan statik nginx adalah lebih daripada 3 kali lebih tinggi daripada sokongan Apache untuk php adalah agak mudah untuk digunakan dengan bahagian belakang yang lain daripada nginx.

3. Perbezaan teras ialah:

apache ialah model berbilang proses segerak, satu sambungan sepadan dengan satu proses tidak segerak, dengan berbilang sambungan (10,000 tahap) ) boleh sepadan dengan proses.

4 Bidang kepakaran kedua-duanya ialah:

Kelebihan nginx adalah untuk mengendalikan permintaan statik, dengan penggunaan memori cpu yang rendah, dan apache sesuai untuk mengendalikan permintaan dinamik, jadi sekarang Secara amnya, bahagian hadapan menggunakan nginx sebagai proksi terbalik untuk menahan tekanan, dan apache berfungsi sebagai hujung belakang untuk mengendalikan permintaan dinamik.

Penggunaan asas nginx

Platform sistem: keluaran centos 6.6 (akhir) 64-bit.

1. Pasang alatan kompilasi dan fail perpustakaan

Analisis contoh permulaan cepat Nginx

2. Mula-mula pasang pcre

1. Fungsi pcre adalah untuk membolehkan nginx menyokong fungsi penulisan semula. Muat turun pakej pemasangan pcre, alamat muat turun:

Analisis contoh permulaan cepat Nginx

Analisis contoh permulaan cepat Nginx

2. Nyahzip pakej pemasangan:

Analisis contoh permulaan cepat Nginx

3. Masukkan direktori pakej pemasangan

Analisis contoh permulaan cepat Nginx

4 versi pcre

Analisis contoh permulaan cepat Nginx

Analisis contoh permulaan cepat Nginx

3 Pasang nginx

Analisis contoh permulaan cepat Nginx

1 :

Analisis contoh permulaan cepat Nginx2 Buka zip pakej

Analisis contoh permulaan cepat Nginx

3 direktori pakej pemasangan

Analisis contoh permulaan cepat Nginx

4. Susun dan pasang

Analisis contoh permulaan cepat Nginx

5 🎜>

Analisis contoh permulaan cepat Nginx

Pada ketika ini, pemasangan nginx selesai.

Analisis contoh permulaan cepat Nginx4. konfigurasi nginx

Analisis contoh permulaan cepat NginxBuat pengguna www untuk nginx dijalankan:

Konfigurasikan nginx.conf , Gantikan /usr/local/webserver/nginx/conf/nginx.conf dengan yang berikut

Semak ketepatan perintah ngnix.conf fail konfigurasi: Analisis contoh permulaan cepat Nginx

Analisis contoh permulaan cepat Nginx

Analisis contoh permulaan cepat Nginx

5 Mulakan nginx

arahan permulaan nginx adalah seperti berikut:

Analisis contoh permulaan cepat Nginx

Analisis contoh permulaan cepat Nginx

6 Akses tapak

Akses IP tapak kami yang dikonfigurasikan daripada penyemak imbas:

Analisis contoh permulaan cepat Nginx

Arahan untuk perintah biasa nginx

1 konfigurasi global utama

nginx berinteraksi dengan fungsi perniagaan tertentu di. masa jalan (seperti perkhidmatan http atau proksi perkhidmatan e-mel), seperti bilangan proses kerja, identiti berjalan, dsb.

woker_processes 2
Di bahagian utama peringkat teratas fail konfigurasi, bilangan proses pekerja dalam peranan pekerja Proses induk menerima dan menyerahkan permintaan kepada pekerja untuk diproses . Nilai ini boleh ditetapkan dengan mudah kepada bilangan teras cpu grep ^processor /proc/cpuinfo | menggandakan bilangan cpu logik, yang boleh mengurangkan operasi i / o. Jika pelayan nginx mempunyai perkhidmatan lain, anda boleh mempertimbangkan untuk mengurangkannya dengan sewajarnya.

worker_cpu_affinity
juga ditulis di bahagian utama. Dalam situasi konkurensi yang tinggi, kehilangan prestasi yang disebabkan oleh pembinaan semula daftar di tapak dan sebagainya yang disebabkan oleh penukaran teras berbilang cpu dikurangkan dengan menetapkan kelekatan CPU. Seperti worker_cpu_affinity 0001 0010 0100 1000 (quad core).

worker_connections 2048
Tulis dalam bahagian acara. Bilangan maksimum sambungan yang boleh dikendalikan oleh setiap proses pekerja (dimulakan) secara serentak (termasuk bilangan sambungan dengan pelanggan atau pelayan proksi bahagian belakang). nginx berfungsi sebagai pelayan proksi terbalik Formula pengiraan ialah: bilangan maksimum sambungan = worker_processes * worker_connections/4, jadi bilangan maksimum sambungan pelanggan di sini ialah 1024. Tidak kira jika ini boleh ditingkatkan kepada 8192, bergantung pada. situasi, tetapi ia tidak boleh melebihi worker_rlimit_nofile berikutnya. Apabila nginx digunakan sebagai pelayan http, formula pengiraan dibahagikan dengan 2.

worker_rlimit_nofile 10240
ditulis di bahagian utama. Lalai ialah tiada tetapan dan boleh dihadkan kepada had sistem pengendalian maksimum 65535.

gunakan epoll
yang ditulis dalam bahagian acara. Di bawah sistem pengendalian Linux, nginx menggunakan model acara epoll secara lalai Terima kasih kepada ini, nginx agak cekap di bawah sistem pengendalian Linux. Pada masa yang sama, nginx menggunakan kqueue model acara yang cekap serupa dengan epoll pada sistem pengendalian openbsd atau freebsd. Gunakan pilih hanya apabila sistem pengendalian tidak menyokong model cekap ini.

2. pelayan http

Sesetengah parameter konfigurasi yang berkaitan dengan menyediakan perkhidmatan http. Contohnya: sama ada hendak menggunakan keepalive, sama ada hendak menggunakan gzip untuk pemampatan, dsb.

hantar fail dihidupkan
menghidupkan mod pemindahan fail yang cekap Arahan fail hantar menentukan sama ada nginx memanggil fungsi fail hantar ke fail output, mengurangkan penukaran konteks daripada ruang pengguna ke ruang kernel. Tetapkannya kepada hidup untuk aplikasi biasa Jika ia digunakan untuk aplikasi beban berat IO cakera seperti memuat turun, ia boleh ditetapkan kepada mati untuk mengimbangi kelajuan pemprosesan I/O cakera dan rangkaian dan mengurangkan beban sistem.

keepalive_timeout 65 : Tamat masa sambungan lama dalam beberapa saat Parameter ini sangat sensitif dan melibatkan jenis penyemak imbas, tetapan tamat masa pelayan hujung belakang dan tetapan sistem pengendalian. . Ia boleh ditetapkan secara berasingan. Apabila sambungan panjang meminta sejumlah besar fail kecil, ia boleh mengurangkan kos membina semula sambungan Walau bagaimanapun, jika fail besar dimuat naik, kegagalan untuk melengkapkan muat naik dalam masa 65 saat akan mengakibatkan kegagalan. Jika masa persediaan terlalu lama dan terdapat ramai pengguna, mengekalkan sambungan untuk masa yang lama akan menggunakan banyak sumber.

send_timeout: digunakan untuk menentukan tempoh tamat masa untuk membalas pelanggan. Tamat masa ini terhad kepada masa antara dua aktiviti sambungan Jika masa ini melebihi tanpa sebarang aktiviti pada klien, nginx akan menutup sambungan.

client_max_body_size 10m
Bilangan maksimum bait bagi satu fail yang dibenarkan untuk diminta oleh klien. Jika anda memuat naik fail yang lebih besar, sila tetapkan nilai hadnya

client_body_buffer_size 128k
Bilangan maksimum bait yang proksi penimbal menampan permintaan klien

Modul http_proxy :

Modul ini melaksanakan fungsi nginx sebagai pelayan proksi terbalik, termasuk fungsi caching (lihat juga artikel)

proxy_connect_timeout 60
tamat masa sambungan nginx dengan pelayan back-end (proksi Tamat masa sambungan)

proxy_read_timeout 60
Selepas sambungan berjaya, tamat masa antara dua operasi tindak balas yang berjaya dengan pelayan hujung belakang (tamat masa penerimaan proksi)

proxy_buffer_size 4k
Tetapkan proksi Penampan saiz yang digunakan oleh pelayan (nginx) untuk membaca dan menyimpan maklumat pengepala pengguna daripada pelayan sebenar bahagian belakang Saiz lalai adalah sama dengan proxy_buffers, anda boleh menetapkan nilai arahan ini lebih kecil

proxy_buffers 4 32k
proxy_buffers buffer, nginx cache respons daripada back-end realserver untuk satu sambungan Jika purata halaman web adalah di bawah 32k, tetapkan ia seperti ini

proxy_busy_buffers_saiz 64k. >Saiz penimbal di bawah beban tinggi (proxy_buffers*2)

proxy_max_temp_file_size

Apabila proxy_buffers tidak dapat menampung kandungan respons pelayan bahagian belakang, sebahagian daripadanya akan disimpan ke fail sementara pada cakera keras. Nilai ini digunakan untuk menetapkan saiz fail sementara maksimum. Lebih besar daripada nilai ini, akan dikembalikan daripada pelayan huluan. Tetapkan kepada 0 untuk melumpuhkan.

proxy_temp_file_write_size 64k

Apabila cache sedang diproksi oleh pelayan untuk bertindak balas kepada fail sementara, pilihan ini mengehadkan saiz fail sementara yang ditulis setiap kali. proxy_temp_path (boleh ditentukan semasa penyusunan) ke direktori mana untuk menulis.

pass_proxy, proxy_redirect lihat bahagian lokasi.

Modul http_gzip:

gzip dihidupkan: Hidupkan output mampatan gzip untuk mengurangkan penghantaran rangkaian.

  1. gzip_min_length 1k: Tetapkan bilangan minimum bait halaman yang dibenarkan untuk pemampatan Bilangan bait halaman diperoleh daripada panjang kandungan pengepala. Nilai lalai ialah 20. Adalah disyorkan untuk menetapkan bilangan bait menjadi lebih besar daripada 1k Jika kurang daripada 1k, ia mungkin menjadi lebih dan lebih dimampatkan.

  2. gzip_buffers 4 16k: Tetapkan sistem untuk mendapatkan beberapa unit cache untuk menyimpan strim data hasil mampatan gzip. 4 16k bermaksud memohon memori dalam unit 16k, 4 kali ganda saiz data asal untuk dipasang dalam unit 16k.

  3. gzip_http_version 1.0: Digunakan untuk mengenal pasti versi protokol http pelayar awal tidak menyokong pemampatan gzip, dan pengguna akan melihat aksara bercelaru, jadi pilihan ini telah ditambahkan untuk menyokong versi terdahulu. Jika anda menggunakan proksi terbalik nginx dan ingin mendayakan pemampatan gzip, sila tetapkannya kepada 1.0 kerana komunikasi akhir ialah http/1.0.

  4. gzip_comp_level 6: nisbah mampatan gzip, 1 mempunyai nisbah mampatan terkecil dan kelajuan pemprosesan terpantas, 9 mempunyai nisbah mampatan terbesar tetapi kelajuan pemprosesan paling perlahan (transmisi pantas tetapi menggunakan lebih banyak CPU)

  5. gzip_types: Padankan jenis mime untuk pemampatan Tidak kira sama ada ia dinyatakan, jenis "teks/html" akan sentiasa dimampatkan.

  6. gzip_proxied any: Didayakan apabila nginx digunakan sebagai proksi terbalik, ia menentukan sama ada untuk mendayakan atau melumpuhkan pemampatan hasil yang dikembalikan oleh pelayan bahagian belakang pelayan bahagian belakang mesti mengembalikan mesej yang mengandungi pengepala "melalui" ".

  7. gzip_vary on: Ia berkaitan dengan pengepala http Vary: accept-encoding akan ditambahkan pada pengepala respons, yang membenarkan pelayan cache bahagian hadapan meng-cache halaman yang dimampatkan gzip. , sebagai contoh, menggunakan data mampat nginx Cache Squid.

3. hos maya pelayan

Perkhidmatan http menyokong beberapa hos maya. Setiap hos maya mempunyai item konfigurasi pelayan yang sepadan, yang mengandungi konfigurasi yang berkaitan dengan hos maya. Apabila menyediakan proksi untuk perkhidmatan mel, anda juga boleh mencipta beberapa pelayan. Setiap pelayan dibezakan dengan alamat pendengaran atau portnya.

dengar

Port mendengar ialah 80 secara lalai Jika kurang daripada 1024, ia mesti dimulakan sebagai akar. Ia boleh dalam bentuk listen *:80, listen 127.0.0.1:80, dsb.

nama_pelayan

Nama pelayan, seperti localhost, www.example.com, boleh dipadankan dengan ungkapan biasa.

Modul http_stream

Modul ini menggunakan algoritma penjadualan mudah untuk mencapai pengimbangan beban daripada IP klien ke pelayan hujung belakang diikuti dengan nama pengimbang beban, dan belakang -end realserver ialah hos: kaedah port disusun dalam {}. Jika hanya satu bahagian belakang diproksikan, anda juga boleh menulisnya terus dalam proxy_pass.

4. Lokasi

Siri item konfigurasi yang sepadan dengan URL tertentu dalam perkhidmatan http.

root /var/www/html

Tentukan lokasi akar tapak web lalai pelayan. Jika locationurl sepadan dengan subdirektori atau fail, root tidak mempunyai kesan dan biasanya diletakkan dalam arahan pelayan atau di bawah /.

index index.jsp index.html index.htm

Tentukan nama fail yang diakses secara lalai di bawah laluan, biasanya diikuti oleh root

proxy_pass http:/backend

Permintaan dihalakan semula ke definisi hujung belakang Senarai pelayan, iaitu, proksi terbalik, sepadan dengan pengimbang beban huluan. Anda juga boleh proxy_pass http://ip:port.

proxy_redirect dimatikan;

proxy_set_header host $host;
proxy_set_header x-real-ip $remote_addr;
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for>
Mengenai penulisan peraturan padanan lokasi, ia boleh dikatakan sangat kritikal dan asas Sila rujuk kepada artikel ringkasan lokasi konfigurasi nginx dan tulis semula penulisan peraturan

5. Lain-lain

5.1 Kawalan akses membenarkan/menolak

modul kawalan akses nginx akan dipasang secara lalai, dan kaedah penulisan juga sangat mudah berbilang membenarkan dan menafikan untuk membenarkan atau melarang Akses tertentu kepada setiap IP atau segmen IP akan berhenti padanan jika mana-mana satu daripada peraturan itu dipenuhi. Contohnya:

Kami juga biasanya menggunakan htpasswd alat httpd-devel untuk menetapkan kata laluan log masuk untuk laluan akses:

Analisis contoh permulaan cepat Nginx

Ini menjana fail kata laluan yang disulitkan secara crypt secara lalai. Buka dua baris komen dalam nginx-status di atas dan mulakan semula nginx untuk berkuat kuasa.

5.2 Senarai autoindex direktori

nginx tidak membenarkan penyenaraian keseluruhan direktori secara lalai. Jika anda memerlukan fungsi ini, buka fail nginx.conf dan tambahkan autoindex di bahagian lokasi, pelayan atau http Adalah lebih baik untuk menambah dua parameter lain:

  1. autoindex_exact_size. ; Lalai Apabila dihidupkan, saiz sebenar fail dipaparkan dalam bait. Selepas bertukar kepada mati, anggaran saiz fail dipaparkan, unit adalah kb atau mb atau gb autoindex_localtime dihidupkan; . Selepas bertukar kepada hidup, masa fail yang dipaparkan ialah masa pelayan fail

Atas ialah kandungan terperinci Analisis contoh permulaan cepat Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam