2013-03-13 3 views
1

Привет, Я пытаюсь получить nginx и запустить флешку на моей локальной машине.колба + nginx = соединение отказано

Я могу хранить статические файлы с nginx, но я продолжаю сталкиваться с проблемой соединения с uwsgi.

мой Nginx:

server { 
    listen  80; 
    server_name localhost; 

location /static { 
    alias /path/to/my/static; 
    autoindex on; 
} 

location /media { 
    alias /media; 
    autoindex on; 
} 


location/{ 
    include uwsgi_params; 
    uwsgi_pass unix:/tmp/uwsgi.sock; 
    uwsgi_param UWSGI_PYHOME /path/to/my/env; 
    uwsgi_param UWSGI_CHDIR /path/to/my/app; 
    uwsgi_param UWSGI_MODULE application; 
    uwsgi_param UWSGI_CALLABLE app; 
} 

error_page 404    /404.html; 

error_page 500 502 503 504 /50x.html; 
location = /50x.html { 
    root /usr/share/nginx/html; 
} 

}

/etc/uwsgi/apps-available/uwsgi.ini:

[uwsgi] 
plugins=python 
vhost=true 
socket=/tmp/uwsgi.sock 

но если я пытаюсь локальный /, Я нахожу это в журналах ошибок nginx:

[error] 1021#0: *16 connect() to unix:/tmp/uwsgi.sock failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:/tmp/uwsgi.sock:", host: "localhost" 

Я пробовал изменять разрешения, но я просто не могу решить эту проблему. У кого-нибудь есть предложения?

Любая помощь будет очень высокой.

ответ

0

Некоторые идеи:

  • Вы уверены, что uWSGI работает?
  • Вы перезагрузили его/перезапустили после редактирования этого файла в приложениях?
  • Судя по названию (доступно приложениям), есть ли другой каталог с включенными приложениями, где вам нужно разместить символическую ссылку на файл в доступных приложениях?
  • Есть ли файл журнала, в котором uWSGI пишет собственные сообщения об ошибках?

Вы можете использовать lsof с uWSGI pid (например. lsof -n -p 12345), чтобы увидеть, какие файлы он открыл. Вы должны увидеть сокет в/tmp, а также файл журнала где-нибудь в/var/log

+0

Спасибо за эти пункты. Итак, мой файл uwsgi.ini символически связан с включенными сайтами. Если я попытаюсь запустить файл с помощью 'uwsgi uwsgi.ini', я получаю следующий вывод: http://dpaste.com/hold/1022942/ Если я запустил его как root, это кажется прекрасным. Возможно, это требует разрешения или права собственности? –

+0

Да, это проблема разрешения в файле сокета, /tmp/uwsgi.sock. 'unlink(): Permission denied [socket.c]' означает, что он пытается удалить существующий сокет для создания нового, и он не работает из-за неправильных разрешений. 'bind(): адрес уже используется [socket.c]' означает, что он не может прослушивать этот сокет, возможно, по той же причине. – Tobia

+2

Обычно сокет не создается в/tmp, потому что любой или что-либо еще на этом сервере может создать файл с именем '/ tmp/uwsgi.sock' и занять свое место. Вы должны создать каталог, в котором может написать только пользователь, который будет запускать uwsgi, и сообщите uwsgi о создании своего сокета там. Такой каталог обычно создается под '/ var/run' для системных демонов или для вашего домашнего каталога для личных услуг. – Tobia

Смежные вопросы