Rumah >Operasi dan penyelenggaraan >Nginx >Analisis contoh pengenalan pengetahuan asas Nginx

Analisis contoh pengenalan pengetahuan asas Nginx

PHPz
PHPzke hadapan
2023-05-17 21:48:231521semak imbas

nginx ialah pelayan proksi http dan terbalik berprestasi tinggi yang terkenal dengan kestabilan tinggi, set ciri yang kaya, fail konfigurasi sampel dan penggunaan sumber sistem yang rendah.

ciri nginx: Memproses fail statik, fail indeks dan pengindeksan automatik fail deskriptor penimbal. Pecutan proksi songsang tanpa cache, pengimbangan beban mudah dan toleransi kesalahan. fastcgi, pengimbangan beban mudah dan toleransi kesalahan. Struktur modular. Termasuk gzip, julat bait, respons tercucah dan penapis ssi dan penapis lain. Jika berbilang ssi hadir dalam satu halaman diproses oleh fastcgi atau pelayan proksi lain, pemprosesan ini boleh berjalan selari tanpa menunggu antara satu sama lain. Sokong ssl dan tlssni. Senario aplikasi utama 1. Pelayan http statik

Pertama sekali, nginx ialah pelayan http, yang boleh memaparkan fail statik (seperti html dan gambar) pada pelayan kepada klien melalui protokol http.

Konfigurasi:

server {
	listen 80; # 端口号
	location / {
		root /usr/share/nginx/html; # 静态文件路径
	}
}

2. Pelayan proksi songsang

Apakah proksi terbalik?

Klien boleh terus mengakses pelayan aplikasi laman web melalui protokol http Jika pentadbir tapak web menambah nginx di tengah, pelanggan meminta nginx, nginx meminta pelayan aplikasi, dan kemudian mengembalikan hasilnya kepada klien. . nginx ini ialah pelayan proksi terbalik.

Analisis contoh pengenalan pengetahuan asas Nginx

Konfigurasi:

server {
	listen 80;
	location / {
		proxy_pass http://192.168.20.1:8080; # 应用服务器http地址
	}
}

Memandangkan pelayan boleh diakses terus melalui http, kenapa perlu menambah proksi terbalik di tengah bukan? Apakah yang dilakukan oleh proksi terbalik? Terus melihat ke bawah, pengimbangan beban berikut dan hos maya semuanya dilaksanakan berdasarkan proksi terbalik Sudah tentu, fungsi proksi terbalik tidak terhad kepada ini.

3. Load Balancing

Apabila trafik laman web sangat besar, webmaster senang untuk membuat wang, tetapi pada masa yang sama dia menghadapi masalah. Kerana laman web semakin perlahan dan perlahan, satu pelayan tidak lagi mencukupi. Jadi aplikasi yang sama digunakan pada berbilang pelayan, dan permintaan daripada sejumlah besar pengguna diperuntukkan kepada berbilang mesin untuk diproses. Pada masa yang sama, faedahnya ialah jika salah satu pelayan ranap, selagi pelayan lain berjalan seperti biasa, ia tidak akan menjejaskan penggunaan pengguna.

Apabila laman web kami mengalami peningkatan besar, adalah mustahil untuk kami menutup semua pelayan secara terus dan kemudian menaik taraf. Biasanya kami menutup beberapa pelayan secara berkelompok untuk menaik taraf tapak web, dan apabila terdapat permintaan pengguna, peruntukkannya ke mesin lain yang sedang berjalan untuk diproses. Selepas mesin yang dimatikan sebelum ini dikemas kini, hidupkannya semula, dan kemudian matikan beberapa mesin secara berkelompok, ulangi kitaran di atas sehingga semua mesin akhirnya dikemas kini. Ini tidak akan menjejaskan penggunaan pengguna.

nginx boleh mencapai pengimbangan beban melalui proksi terbalik.

Analisis contoh pengenalan pengetahuan asas Nginx

Konfigurasi:

upstream myapp {
	server 192.168.20.1:8080; # 应用服务器1
	server 192.168.20.2:8080; # 应用服务器2
}
server {
	listen 80;
	location / {
		proxy_pass http://myapp;
	}
}

4. Hos maya

Tapak web mempunyai bilangan lawatan yang banyak dan memerlukan pengimbangan beban. Walau bagaimanapun, tidak semua tapak web sangat baik Sesetengah tapak web perlu menjimatkan kos dengan menggunakan berbilang tapak web pada pelayan yang sama kerana bilangan lawatan adalah terlalu kecil.

Contohnya, jika dua tapak web www.aaa.com dan www.bbb.com digunakan pada pelayan yang sama, kedua-dua nama domain itu diselesaikan ke alamat IP yang sama, tetapi pengguna boleh membuka dua melalui dua nama domain. Laman web yang sama sekali berbeza tidak menjejaskan satu sama lain, sama seperti mengakses dua pelayan, jadi mereka dipanggil dua hos maya.

Konfigurasi:

server {
	listen 80 default_server;
	server_name _;
	return 444; # 过滤其他域名的请求,返回444状态码
}
server {
	listen 80;
	server_name www.aaa.com; # www.aaa.com域名
	location / {
		proxy_pass http://localhost:8080; # 对应端口号8080
	}
}
server {
	listen 80;
	server_name www.bbb.com; # www.bbb.com域名
	location / {
		proxy_pass http://localhost:8081; # 对应端口号8081
	}
}

Buka aplikasi pada port pelayan 8080 dan 8081 masing-masing.

Prinsip hos maya direalisasikan dengan sama ada hos dalam pengepala permintaan http sepadan dengan nama_server Pelajar yang berminat boleh mempelajari protokol http.

Selain itu, konfigurasi nama_server juga boleh menapis seseorang yang secara berniat jahat menunjukkan nama domain tertentu ke pelayan hos anda.

5. fastcgi

nginx sendiri tidak menyokong bahasa seperti php, tetapi ia boleh menghantar permintaan ke bahasa atau rangka kerja tertentu (seperti php, python, perl) melalui fastcgi .

server {
	listen 80;
	location ~ \.php$ {
		include fastcgi_params;
		fastcgi_param script_filename /php文件路径$fastcgi_script_name; # php文件路径
		fastcgi_pass 127.0.0.1:9000; # php-fpm地址和端口号
		# 另一种方式:fastcgi_pass unix:/var/run/php5-fpm.sock;
	}
}

Dalam konfigurasi, permintaan yang berakhir dengan .php diserahkan kepada php-fpm untuk diproses melalui fashcgi php-fpm ialah pengurus fastcgi untuk php. Anda boleh menyemak maklumat lain tentang fashcgi, yang tidak akan diperkenalkan dalam artikel ini.

Apakah perbezaan antara fastcgi_pass dan proxy_pass? Gambar di bawah akan membantu anda memahami:

Analisis contoh pengenalan pengetahuan asas Nginx

Atas ialah kandungan terperinci Analisis contoh pengenalan pengetahuan asas 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