uwsgi + python + nginx + выполнение файла willy nilly - PullRequest
5 голосов
/ 06 июня 2011

Я использую uwsgi на Nginx для запуска кода Python.

Я бы хотел связать uwsgi с каталогом и заставить его отображать любой файл .py, который я вызываю с сервера в браузере. Я думаю, как PHP, здесь (/index.php выполняет этот файл, /login.php выполняет этот файл).

Это возможно? Или я могу явно указать только один модуль / приложение / файл в uwsgi?

Вот мой синтаксис инициализации:

/opt/uwsgi/uwsgi -s 127.0.0.1:9001 -M 4 -t 30 -A 4 -p 4 -d /var/log/uwsgi.log --pidfile /var/run/uwsgi.pid --pythonpath /srv/www

Я думал, что это позволит /srv/www выступать в качестве папки, в которой будут выполняться любые файлы .py.

Вот мой конфиг nginx:

server {
    listen       80;
    server_name  DONT_NEED_THIS;

    access_log  /srv/www/logs/access.log;
    error_log   /srv/www/logs/error.log;

    location / {
        root  /srv/www;

        # added lines    
        include        uwsgi_params;
        uwsgi_pass     127.0.0.1:9001;

    }

Как есть, когда я пытаюсь вызвать web root (то есть www.site.com/), я получаю:

wsgi application not found

Со следующим файлом index.py:

import sys
import os

sys.path.append(os.path.abspath(os.path.dirname(__file__)))

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]

Есть идеи?

Спасибо!

Ответы [ 2 ]

10 голосов
/ 06 июня 2011

WSGI не похож на PHP.Вы не можете просто указать uwsgi каталог с кучей файлов .py.Фактически, никогда не делайте ваши модули Python доступными в публичном каталоге, доступном с сервера.Вам нужно подключить UWSGI к приложению WSGI, предпочтительно к фреймворку.Подробнее о WSGI здесь .Посмотрите на bottle - небольшую простую среду WSGI.У него отличные документы, и с ним легко начать.Хотя на самом деле существует множество отличных веб-фреймворков для Python, так что не стесняйтесь смотреть по сторонам:)

3 голосов
/ 06 июня 2011

Вы можете прочитать эту тему:

http://lists.unbit.it/pipermail/uwsgi/2011-March/001657.html

...