LinuxForum.Fans
Тема

nginx+fastcgi+python

Автор: XliN 3 сообщений 3126 просмотров
#269264

Не могу настроить. Помогите пожалуйста. PHP прекрасно работает, а питон не хочет.
Вот конфиги

text
server {
listen 80;
server_name mageialinux.ru www.mageialinux.ru;
    
access_log /var/www/logs/mageialinux.ru/access.log;
error_log /var/www/logs/mageialinux.ru/error.log;
root /var/www/html/mageialinux.ru;

log_format IP2 '$remote_addr'; location / { root /var/www/html/mageialinux.ru; index index.php index.html index.htm; if (!-e $request_filename) { rewrite ^(.*)$ /index.php?page=$1 last; } if ( $http_referer ~* (babes|forsale|girl|jewelry|love|nudit|organic|poker|porn|sex|teen) ) { access_log /var/log/nginx/for_ban__mageialinux.log IP2; return 403; } }

location /test { fastcgi_pass 127.0.0.1:9002; fastcgi_index index.py; fastcgi_param SCRIPT_FILENAME /var/www/html/mageialinux.ru/test$fastcgi_script_name; include fastcgi_params; }

location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/html/mageialinux.ru$fastcgi_script_name; include fastcgi_params; } }

text
 cat /etc/nginx/fastcgi_params

fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length;

#fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;

fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200;

#269325

День добрый
Cкачал с mageialinux.ru/test файл index.py который я так понимаю Вы хотите запустить:

text
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# enable debugging
from flup.server.fcgi import WSGIServer
WSGIServer(app, bindAddress=('/tmp/fcgi_wsgi.socket')).run()

bindAddress=('/tmp/fcgi_wsgi.socket') - не соответствует указанному fastcgi_pass 127.0.0.1:9002;
ну и не понятно что за app запускается

как вариант запустить на проверку работы питона файл примерно следующего содержания:

text
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# enable debugging
from flup.server.fcgi import WSGIServer
def app(environ, start_response):
    status = '200 OK'
    response_headers = [('Content-type','text/plain')]
    start_response(status, response_headers)
    return [ "Hello World"]
WSGIServer(app, bindAddress=('localhost', 9002)).run()

запускаем $python2 ./index.py и смотрим


мои конфиги

text
cat /etc/nginx/fastcgi_params

fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;

fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200;

для nginx

text

     location /python{
     fastcgi_pass 127.0.0.1:9002;
     include         fastcgi_params;
        }
#269373

Все работает. Только получается нужно приложение запускать как демон. Не как в PHP, кинул файлик и проверяешь.

Войдите или зарегистрируйтесь, чтобы ответить.