Назад | Перейти на главную страницу

Настроить FastCGI для Python

У меня nginx работает на виртуальной машине, и я хочу запустить сайт Trac. Мне нужно запустить сервер Python FastCGI, но я не могу сказать, какой из них в сервер для использования. Я обнаружил следующее:

Есть ли какие-нибудь недавние руководства по настройке? Собственная страница настройки FastCGI Trac кажется, пропустил некоторые шаги.

trac должен быть теперь совместим с WSGI, поэтому вы можете использовать любой поддерживаемый метод для запуска сайта. Если это сайт с низким трафиком, вы всегда можете использовать CGI и в конечном итоге перейти на что-то другое позже, если вам это нужно. Для других методов используйте mod_wsgi или установить flup для FCGI (даже если он установил дополнительные зависимости).

Использовать flup, вам необходимо импортировать соответствующий сервер WSGI, а затем запустить его, т.е.

from flup.server.fcgi_fork import WSGIServer
def main_app(...):
  ...

WSGIServer(main_app).run()

Если вы хотите запустить его как внешний сервер (т. Е. Не запускаемый веб-сервером), замените это:

WSGIServer(main_app,bindAddress=('1.2.3.4',9999)).run()

Ну, парень, flup используется самим Django. Это отличный метод для запуска приложений python fastcgi, если у вас нет mod_wsgi или чего-то подобного.

Код для запуска flup:

from flup.server.fcgi import WSGIServer

def app(environ, start_response):
  start_respone('200 OK', [('Content-Type', 'text/plain')])
  yield "Hello World"

WSGIServer(app).run()

Почему именно FastCGI? В Python есть стандартный интерфейс для написания приложений веб-сервера, называемый WSGI. Для этого предусмотрены различные серверы; например, mod_wsgi для Apache. Для nginx, похоже, есть: http://wiki.nginx.org/NginxNgxWSGIModule который даже основан на mod_wsgi.