Untuk projek web berasaskan python, kaedah penggunaan biasa ialah:
fcgi: Gunakan spawn-fcgi atau alatan yang disertakan dengan rangka kerja untuk menjana proses mendengar bagi setiap projek secara berasingan, dan kemudian gunakannya dengan interaksi Perkhidmatan http.
wsgi: Gunakan modul mod_wsgi perkhidmatan http untuk menjalankan setiap projek.
Tetapi terdapat uwsgi, yang tidak menggunakan protokol wsgi mahupun protokol fcgi sebaliknya, ia mencipta protokol uwsgi sendiri Menurut penulis, protokol ini adalah lebih kurang 10 kali ganda sebagai protokol fcgi. Ciri-ciri utama uwsgi adalah seperti berikut:
Prestasi yang sangat pantas.
Penggunaan memori yang rendah (diukur kira-kira separuh daripada mod_wsgi apache2).
Pengurusan berbilang apl.
Fungsi log terperinci (boleh digunakan untuk menganalisis prestasi apl dan kesesakan).
Sangat boleh disesuaikan (had saiz memori, perkhidmatan dimulakan semula selepas beberapa kali, dsb.).
Persekitaran ubuntu 12.04 ip:10.1.6.79
Pasang nginx
apt-get install nginx-full nginx-common
konfigurasi nginx //etcs-ngin didayakan/contoh
server { listen 80; server_name 10.1.6.79; access_log /var/log/nginx/example_access.log; error_log /var/log/nginx/example_error.log; root /var/www/example; location / { uwsgi_pass 127.0.0.1:9001; include uwsgi_params; uwsgi_param uwsgi_scheme $scheme; uwsgi_param server_software nginx/$nginx_version; } }
Pasang uwsgi
apt-get install uwsgi uwsgi-plugin-python
Jika anda ingin memasang semua pemalam uwsgi, anda boleh memasang pakej uwsgi-plugin-semua
konfigurasi uwsgi/etc/uwsgi/apps-enabled/default.xml
<uwsgi> <plugin>python</plugin> <socket>127.0.0.1:9001</socket> <pythonpath>/var/www/example/app/</pythonpath> <app mountpoint="/"> <script>wsgi_configuration_module</script> </app> <master/> <processes>4</processes> <reload-mercy>8</reload-mercy> <cpu-affinity>1</cpu-affinity> <max-requests>2000</max-requests> <limit-as>512</limit-as> <reload-on-as>256</reload-on-as> <reload-on-rss>192</reload-on-rss> <no-orphans/> <vacuum/> </uwsgi>
Parameter dalam fail konfigurasi uwsgi juga boleh ditentukan melalui uwsgi pada baris arahan Selain format xml, fail konfigurasi boleh juga ditulis dalam format ini Selepas pakej perisian dipasang, akan terdapat beberapa contoh fail konfigurasi format xml dan ini dalam direktori /usr/share/doc/uwsgi/examples/conffile.
kandungan skrip_wsgi_configuration_module.py
#!/usr/bin/python import os import sys sys.path.append('/var/www/example/app') os.environ['python_egg_cache'] = '/var/www/example/.python-egg' def application(environ, start_response): status = '200 ok' output = 'hello world!' response_headers = [('content-type', 'text/plain'), ('content-length', str(len(output)))] start_response(status, response_headers) return [output]
Mulakan uwsgi
uwsgi -x /etc/uwsgi/apps-enabled/default.xml --daemonize /var/log/uwsgi/app/default.log
parameter uwsgi:
-m Mulakan proses induk
-p 4 Mulakan 4 proses
-s Alamat port atau soket yang digunakan
-d Jalankan dalam mod daemon Ambil perhatian bahawa selepas menggunakan -d, anda perlu menambah alamat fail log, seperti -d /var/log/. uwsgi .log
-r 10000 Selepas memulakan 10,000 proses, keluarkan semula secara automatik
-t 30 Tetapkan tamat masa 30s Selepas tamat masa, pautan akan ditinggalkan secara automatik
–had-sebagai 32 Tukar jumlah memori. daripada proses Dikawal pada 32m
-x Gunakan mod fail konfigurasi
4 utas serentak
uwsgi -s :9090 -w myapp -p 4
Benang kawalan utama + 4 utas
pelaksanaan Jika pelanggan melebihi 30 saat, ia akan menyerah terus
uwsgi -s :9090 -w myapp -m -p 4
Hadkan ruang memori kepada 128m
uwsgi -s :9090 -w myapp -m -p 4 -t 30
Layankan lebih daripada 10,000 reqs dan secara automatik respawn
uwsgi -s :9090 -w myapp -m -p 4 -t 30 --limit-as 128
berjalan di latar belakang Tunggu
uwsgi -s :9090 -w myapp -m -p 4 -t 30 --limit-as 128 -r 10000
Selain memulakan terus dengan arahan uwsgi, anda juga boleh memulakannya dengan skrip di bawah init.d Walau bagaimanapun, anda perlu mengubah suai laluan fail konfigurasi lalai dalam /etc/default/u wsgi dahulu, dan kemudian lulus /etc/init.d/uwsgi mula Mula
uwsgi -s :9090 -w myapp -m -p 4 -t 30 --limit-as 128 -r 10000 -d uwsgi.log
Mula nginx
#inherited_config=/usr/share/uwsgi/conf/default.ini inherited_config=/etc/uwsgi/apps-enabled/default.xml
Kesannya adalah seperti berikut:
Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi projek web Python menggunakan Nginx dan uWSGI. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!