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
2. Mula-mula pasang pcre
1. Fungsi pcre adalah untuk membolehkan nginx menyokong fungsi penulisan semula. Muat turun pakej pemasangan pcre, alamat muat turun:
2. Nyahzip pakej pemasangan:
3. Masukkan direktori pakej pemasangan
4 versi pcre
3 Pasang nginx1 :
2 Buka zip pakej
3 direktori pakej pemasangan
4. Susun dan pasang
5 🎜>
Pada ketika ini, pemasangan nginx selesai.
4. konfigurasi nginx
Buat 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:
5 Mulakan nginx
arahan permulaan nginx adalah seperti berikut:
6 Akses tapak
Akses IP tapak kami yang dikonfigurasikan daripada penyemak imbas:
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)
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.
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.
Modul http_gzip:
gzip dihidupkan: Hidupkan output mampatan gzip untuk mengurangkan penghantaran rangkaian.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. dengarPort 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, seperti localhost, www.example.com, boleh dipadankan dengan ungkapan biasa.
4. Lokasi
Siri item konfigurasi yang sepadan dengan URL tertentu dalam perkhidmatan http. root /var/www/htmlTentukan 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 /.
Tentukan nama fail yang diakses secara lalai di bawah laluan, biasanya diikuti oleh root
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_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.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: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:
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!