Saya bermaksud menggunakan VPS tunggal untuk menggunakan beberapa aplikasi CherryPy lalu lintas rendah sebagai subdirektori; misalnya: example.com/app1
, example.com/app2
, dll
Setelah meneliti tentang penyebaran WSGI, sepertinya metode yang disukai untuk menyebarkan aplikasi adalah dengan menggunakan server WSGI (Gunicorn, uWSGI, dll) dan NGinx dalam pengaturan reverse-proxy. Sepertinya terlalu banyak menggunakan dua server web secara bersamaan - terutama karena aplikasi CherryPy saya sendiri adalah server web - tetapi saya tidak ingin mengabaikan gagasan seperti yang muncul di mana-mana . Saya tentu bukan ahli jadi saya ingin membahasnya.
Saya melihat tiga opsi:
- Sebarkan CherryPy dengan sendirinya.
- Menyebarkan di bawah Gunicorn atau server WSGI lainnya.
- Menyebarkan di bawah server WSGI dan membalikkan proxy ke NGinx, yang tampaknya menjadi solusi semua orang.
Pertanyaan saya:
- Apa alasan utama saya melihat pola ini di mana-mana? Hanya nginx yang baik?
- Untuk aplikasi dengan lalu lintas rendah, apakah server asli CherryPy cukup baik, atau haruskah saya tidak mencobanya?
Setiap dan semua saran sangat dihargai, terima kasih.
Mengapa orang menempatkan Nginx di depan?
zlib
hanyalah pembungkus di sekitar C library. Tetapi karena Nginx menangani koneksi secara efektif, ide yang bagus untuk meringankan utas pekerja CherryPy Anda dari menyajikan konten statis dalam produksi dan hanya mendedikasikan pada konten dinamis.Apakah aman menggunakan CherryPy sendiri?
Menurut salah satu penulis asli, ya . Sebagian besar hal yang relevan dengan web dapat Anda lakukan dengan CherryPy sendiri.
CherryPy memiliki gagasan tentang suatu aplikasi dan Anda dapat melayani beberapa aplikasi dengan satu instance CherryPy. CherryPy juga dapat melayani aplikasi WSGI lainnya .
Menyebarkan CherryPy
Dalam penyebaran gaya * nix tradisional Anda menulis skrip init, daemonise proses Anda, lepaskan hak istimewanya, tulis PID-nya, dll. Ini bukan masalah besar ketika Anda memiliki beberapa instance CherryPy. Ketika Anda memiliki lusinan, menjadi membosankan dan masuk akal untuk menyerahkan manajemen proses ke Gunicorn atau uWGSI dan mengalihkan instance CherryPy Anda dari HTTP ke WSGI.
Saya menulis kerangka tutorial / proyek, cherrypy-webapp-skeleton , yang tujuannya adalah untuk mengisi kekosongan penerapan (tradisional) aplikasi CherryPy dunia nyata di Debian untuk pengembang web.
Bungkus
CherryPy * 1 ⇐ HTTP ⇒ Client
.CherryPy * n ⇐ HTTP ⇒ Nginx ⇐ HTTP ⇒ Client
.CherryPy * n ⇐ WSGI ⇒ Gunicorn ⇐ HTTP ⇒ Nginx ⇐ HTTP ⇒ Client
.sumber