(nginx + uWSGI + Bottle) Подавать статические файлы

Я решил использовать Python в качестве основного языка на своем стартовом веб-сайте. Я почти уверен, что uWSGI и фреймворк Bottle прекрасно работают вместе. Я немного беспокоюсь, что они будут медленно обслуживать статические файлы (я столкнулся с этой проблемой в NodeJS). Предпочтительно ли указывать несколько приложений uWSGI и указывать им разные каталоги, не содержащие статических файлов? Будет ли Nginx быстрее обслуживать статические файлы?

ROOT/
|--assets/
|----some.css
|----and_image.png
|--robots.txt

sign_in/
|--[application related files here]
sign_up/
|--[application related files here]

Корень веб-сервера — ROOT, а приложения и каталоги, содержащие файлы приложений, находятся за пределами корня веб-сервера.

Я полагаю, это будет лучше

location /sign-in {
    uwsgi_pass      unix:///run/uwsgi/app/sign-in/sign-in.co.socket;
    include         uwsgi_params;
    uwsgi_param     UWSGI_SCHEME $scheme;
    uwsgi_param     SERVER_SOFTWARE    nginx/$nginx_version;
}


location /sign-up {
    uwsgi_pass      unix:///run/uwsgi/app/sign-up/sign-up.co.socket;
    include         uwsgi_params;
    uwsgi_param     UWSGI_SCHEME $scheme;
    uwsgi_param     SERVER_SOFTWARE    nginx/$nginx_version;
}

чем это:

location / {
    uwsgi_pass      unix:///run/uwsgi/app/whole-website/whole-website.co.socket;
    include         uwsgi_params;
    uwsgi_param     UWSGI_SCHEME $scheme;
    uwsgi_param     SERVER_SOFTWARE    nginx/$nginx_version;
}

Это действительно лучше? Или в этом случае uWSGI не будет обслуживать статические файлы?


person TheJSB    schedule 05.03.2013    source источник


Ответы (1)


Вы хотите, чтобы nginx обслуживал ваши статические файлы. Поскольку они статичны, для их обслуживания не требуется никакой логики, в отличие от ваших шаблонов/представлений в бутылке. Так что лучше, чтобы запросы статических файлов никогда не попадали в python. И его действительно легко настроить в nginx!

Внутри вашего блока сервера просто добавьте:

location /assets/ {
  alias pathtoyourproject/ROOT/assets/;
}
person Sanketh Katta    schedule 07.03.2013