LINUX.ORG.RU

не работают ссылки в Nginx

 , ,


0

2

Всем привет! Ни когда не думал что настроить сервер для работы с python окажется столь не тривиальной задачей.

В своем проекте использую web.py Удалось на 90% настроить связку nginx+uwsgi+webpy сервер отдает статику и загружает главную страницу

Проблема в том что nginx не видит моих роутов. То-есть любой запрос отличный от корневого оканчивается 404 Not Found

Файл /etc/nginx/nginx.conf не трогал вообще

Файл /etc/nginx/site-avalable/default выглядит следующим образом

server {
        #listen 80;
        listen 80 default_server;
        listen [::]:80 default_server;


        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                include uwsgi_params;
                uwsgi_pass 174.138.49.145:3031;
                try_files $uri $uri/ =404;

        }

Uwsgi настроен и отдает главную страницу. Других конфигов не создавал. Помогите пожалуйста решить проблему

location @uwsgi {
    include uwsgi_params;
    uwsgi_pass blabla:1234;
}

location / {
    try_files $uri $uri/ @uwsgi;
}
anonymous ()
Ответ на: комментарий от conformist

Спасибо за отклик!

access

127.0.0.1 - - [05/Jun/2017:10:05:02 +0000] "GET / HTTP/1.1" 200 107 "-" "munin/http_loadtime"
95.191.216.135 - - [05/Jun/2017:10:07:16 +0000] "GET / HTTP/1.1" 200 107 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
95.191.216.135 - - [05/Jun/2017:10:07:17 +0000] "GET /static/dark-lord-360.gif HTTP/1.1" 200 521184 "http://planster.org/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
95.191.216.135 - - [05/Jun/2017:10:07:17 +0000] "GET /favicon.ico HTTP/1.1" 404 200 "http://planster.org/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
95.191.216.135 - - [05/Jun/2017:10:07:29 +0000] "GET /duck HTTP/1.1" 404 200 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"

127.0.0.1 - - [05/Jun/2017:10:35:03 +0000] "GET / HTTP/1.1" 200 107 "-" "munin/http_loadtime"
91.230.47.3 - - [05/Jun/2017:10:37:16 +0000] "GET / HTTP/1.0" 200 96 "-" "-"

error.log пустой как ни странно :/

technobot ()

А если добавить root в location:

location / {
        include uwsgi_params;
        uwsgi_pass 174.138.49.145:3031;
        try_files $uri $uri/ =404;
        root /var/www/blabla;
}
?

du_hast ()
Последнее исправление: du_hast (всего исправлений: 1)

Ожидаемое поведение учитывая строку

try_files $uri $uri/ =404;

Есть один локейшен, запросы в нём обрабатываются с помощью uwsgi бекенда, получив запрос сначала ищется файл с именем совпадающим с запросом, если такого не находится то одноимённая директория, если и её нет то возвращается 404 отлуп.
Кстати похоже что статика у тебя тоже раздаётся через uwsgi бекенд.
Правильный ответ (тот который с отдельным локейшеном для uwsgi) тебе уже дали выше

MrClon ★★★★★ ()
Ответ на: комментарий от MrClon

И ещё надо root задать, если хочешь всё-таки отдавать статику nginx-ом. Ну или, если статика собрана в кучку, ещё один локейшен и alias в нём

MrClon ★★★★★ ()

Добавим пользователя nginx в группу djuser и «разрешим» nginx ходить к djuser за контентом:

(py35)[djuser@localhost myproject]$ sudo usermod -a -G djuser nginx                                                                                                                           
[sudo] password for djuser:                                                                                                                                                                   
(py35)[djuser@localhost myproject]$ sudo chmod 710 /home/djuser/   

int13h ★★★★★ ()

просто убрал нахрен try_files $uri $uri/ =404; все работает! Спасибо посоны!))

technobot ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.