У меня 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.