Проблема состоит в том, что файл называют index.html, который не отображается на обработчике SSI по умолчанию. Также:
Причина, по которой все ставят nginx (или другой сервер, например Apache) перед своими серверами приложений, заключается в том, что у всех есть статический контент, такой как изображения, CSS и JavaScript, а также странные требования, уникальные для их приложение.
Ваш сервер приложений (CherryPy, gunicorn, что угодно) оптимизирован для запуска вашего приложения и обслуживания его вывода. Хотя сервер приложений может также обслуживать статический контент, они почти никогда не оптимизированы для этой задачи, так как это вторично по отношению к основной цели сервера приложений. (Некоторые серверы приложений также помогут минимизировать и сжать ваши CSS и JS, чтобы веб-сервер, находящийся перед ним, мог обслуживать эти ресурсы еще быстрее.)
Кроме того, реальный веб-сервер может делать гораздо больше, чем просто высокопроизводительное обслуживание контента. . Такие вещи, как кеширование, манипуляции с заголовками, перезапись URL, геолокация и многие другие функции, которые просто раздувают сервер приложений без всякой пользы.
Обычно сервер приложений запускается только при разработке приложения, когда вы единственный пользователь и производительность не является проблемой. Даже если у вашего сайта низкий трафик, вы бы хотели, чтобы он работал быстрее, верно? Сайты с низким трафиком, которые работают медленно, обычно не превращаются в сайты с высоким трафиком ...
zlib
- это просто оболочка для библиотеки C. Но поскольку Nginx эффективно обрабатывает соединение, неплохо избавить ваши рабочие потоки CherryPy от обслуживания статического контента в производственной среде и выделить только динамический контент. По словам одного из первоначальных авторов, да . Большинство связанных с Интернетом вещей вы можете делать с помощью CherryPy самостоятельно.
CherryPy имеет представление о приложении, и вы можете обслуживать несколько приложений с помощью одного экземпляра CherryPy. CherryPy также может обслуживать другие приложения WSGI .
При традиционном развертывании в стиле * nix вы пишете сценарий инициализации, демонизируете процесс, отбрасываете его привилегии, записываете его PID и т. Д. не имеет большого значения, когда у вас есть пара экземпляров CherryPy. Когда у вас их десятки, становится утомительно, и имеет смысл передать управление процессами Gunicorn или uWGSI и переключить ваши экземпляры CherryPy с HTTP на WSGI.
Я написал скелет учебника / проекта, cherrypy-webapp-скелет , целью которого было заполнить пробелы для развертывания (традиционного) реального приложения CherryPy на Debian для веб-разработчика.
CherryPy * 1 ⇐ HTTP ⇒ Клиент
. CherryPy * n ⇐ HTTP ⇒ Nginx ⇐ HTTP ⇒ Клиент
. CherryPy * n ⇐ WSGI ⇒ Gunicorn ⇐ HTTP ⇒ Nginx ⇐ HTTP ⇒ Клиент
.