LINUX.ORG.RU

Ответ на: комментарий от noname_user

Я всегда в контексте server’a указываю root, исключение редиректы/возврат ошибки/etc. Как-то его не указывать и в голову не приходило, а где он тогда рабочий каталог будет искать?

listen ip:port также всегда указываю, ибо может быть в перспективе не один ip, даже если в текущий момент он один.

Если ничего не работает, не знаю, попробуй default_server в listen, может где-то переопределяется. Больше пока идей нет.

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

ну рут тут какой смысл прописывать если он сокет дергает, какой толк к директории с сорцами его прописывать, я в этом плане.
uwsgi то запущен и работает отлично

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

Например, для пыха нужно указывать что-то вроде:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

Соответственно $document_root равен пути заданному в root. Если этого не указать - работать нормально не будет. Как там с MoinMoin, не знаю, не доводилось ставить.

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

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

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

Ясно. Думал там нечто похожее. А если требуется точка входа в разных файлах python? Несколько процессов uwsgi запускать для каждого свой? (Это я для общего развития).

Тогда не понятно почему не работает, может что-то с ispmanager?! Давно им не пользовался, но какая-то похожая проблема у меня давно была, именно из-за ispmanager. Что вроде все верно настроено, а работало косячно. Честно, уже забыл в чем именно была причина.

Stack77
()
Ответ на: комментарий от noname_user

Маловероятно, но всё же - локально в /etc/hosts случайно ничего лишнего не указано (мало ли, тестировал, да удалить забыл)?

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

А если требуется точка входа в разных файлах python?

А зачем? Никто так не делает. Но если захочется, то да, нужен будет отдельный сервер приложений для каждой точки входа (и это не обязательно uwsgi).

eternal_sorrow ★★★★★
()

Вот если логически рассуждать, предполагаю, что 5000 порт и сокет из site.conf больше нигде не указывался (одновременно)? Получается, по ip:5000 запрос попадает в эту секцию server. Значит, по domain:5000 срабатывает другая секция. Нужно искать где:

server_name w.site.com
или
server_name *.site.com
переопределяются. Хз, какая тут еще другая причина может быть?!

Stack77
()
Последнее исправление: Stack77 (всего исправлений: 1)
Ответ на: комментарий от Stack77

Возможно, ISPmanager на автомате где-то добавил на подобии:

listen 5000;
server_name *.site.com;

или старое не затёр. Попробуй поиском по файлам конфигов пройтись.

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

я вот че думаю, на домене открывается дефолтная страница ispmanager и крутится это все на апаче, быть может просто Nginx не может переопределить запущенный сервис на этот домен из-за апача?

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

Ну, тогда, Apache должен отдавать её на том же порту и IP, а как такое может быть? Два сервиса так сам linux запустить не даст. ISPmanager еще дефолтную страницу создает в каталоге c доменом. Может она как статическая отдается? Но, тоже, как и где, да и не должна в такой конфигурации?! По IP то NGINX на сокет срабатывает.

Я бы в Nginx искал причину. В нем как раз по IP первый подходящий конфиг срабатывает. И если где-то, например, server_name *.site.com указано раньше (в алфавитном порядке, по названию файла конфигурации), то server_name w.site.com уже не отработает.

Поиск по регулярке запусти и посмотри где еще домен прописан. Я, просто, и не знаю что еще посоветовать. Странная ситуёвина.

P.S. Если Nginx поверх Apache, то тем более конфиги Nginx в первую очередь должны отработать. Тоже не складывается.

Stack77
()
Последнее исправление: Stack77 (всего исправлений: 5)
Ответ на: комментарий от noname_user

А в кэше нигде не могло застрять? Локально/глобально на PC/DNS? Пингуется по домену на нужный IP? Самые нелепые варианты перебираю, самому интересно, что могло пойти не так :)

Stack77
()

146% рабочий вариант

cat uwsgi.template

[uwsgi]
        plugins = %(uwsgi_plugins)s
        virtualenv = %(uwsgi_virtualenv)s
        chdir = %(uwsgi_chdir)s
        pythonpath = %(uwsgi_pythonpath)s
        env = %(uwsgi_env)s
        module = %(uwsgi_module)s
        py-autoreload = %(uwsgi_py-autoreload)s
        max-fd = %(uwsgi_max-fd)s
        listen = %(uwsgi_listen)s
        threads = %(uwsgi_threads)s

cat nginx.template

server {
    listen %(nginx_host)s:%(nginx_port)s;
    server_name %(nginx_server_name)s;
    if ($host != "%(nginx_server_name)s") {
        return 403;
    }
        location / {
        root %(nginx_root)s;
        access_log %(nginx_access_log)s;
        error_log %(nginx_error_log)s;
        include %(nginx_include)s;
        uwsgi_param %(nginx_uwsgi_param)s;
        uwsgi_pass %(nginx_uwsgi_pass)s;
        }
    location %(nginx_static)s {
        alias %(nginx_alias)s;
        }
}
bryak ★★★★
()
Ответ на: комментарий от Stack77

кароче у меня апач обрабатывает мой поддомен, никак не могу научить nginx что бы его обрабатывал.... чет запутался

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

Я ваще не пойму как может на одном и том же IP и порту одновременно работать Nginx и Apache? Если порт/IP разные, то как тогда по айпи:порт Nginx срабатывает, а по домен:порт Apache?

Если Nginx fron-end Apache, то тогда в любом случае по приведенному тобой конфигу должен Nginx отработать (если в нем же нет нигде переопределения).

Тоже запутался. Удаляй VirtualHost с доменом/портом в Apache, оставляй конфиг Nginx. Запускай тест на ошибки (nginx -t), если всё ок - рестартуй Apache & Nginx.

Но, я все равно считаю, что корень зла где-то в переопределении конфигов Nginx. Поэтому вряд ли вышеуказанное чем-то поможет.

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

нет, апач держал 80 порт, мой серис был запущен на 5000, но апач обрабатывал все домены, я вырубил апач и сделал так что бы nginx теперь обрабатывал все, отлично, nginx работает и выдает 404, но он отрабатывает дефолтный конфиг /etc/nginx/nginx.conf и все!

user www-data;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    #include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*.conf;
        include /etc/nginx/vhosts/*/*.conf;
        include /etc/nginx/conf.d/*.conf;
        client_max_body_size 128m;
        server {
                server_name localhost;
        disable_symlinks if_not_owner;
        listen 80;
        listen [::]:80;
        include /etc/nginx/vhosts-includes/*.conf;
        location @fallback {
                error_log /dev/null crit;
                proxy_pass http://127.0.0.1:8080;
                proxy_redirect http://127.0.0.1:8080 /;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                access_log off ;
        }
        }
}
видим что инклудится все с include /etc/nginx/conf.d/*.conf;
Там у меня лежит конфиг moin.conf:
server {
    listen 5000;
    server_name w.site.services;

    access_log /var/log/nginx/w.site.services_access.log;
    error_log /var/log/nginx/w.site.services_error.log;

    location /opt/moin-1.9.10/MoinMoin/web/static/htdocs {
        alias /opt/moin-1.9.10/MoinMoin/web/static/htdocs;
    }

    location / {
        #root /var/www/www-root/data/www/w.site.services/wiki;
        gzip off;
        include uwsgi_params;
        uwsgi_pass unix:///var/run/moin/moin.sock;
        uwsgi_modifier1 30;
        }
    }

почему он его не инклудит или не видит?? root я пробовал и раскоменчивать и закоменчивать, вот что лежит по пути
ls -la /var/www/www-root/data/www/w.site.services/:
-rw-r--r-- 1 root     root        0 Oct 26 17:54 index.html
drwxr-xr-x 6 moin     moin     4096 Oct 24 14:56 pythonenv
drwxr-xr-x 6 moin     moin     4096 Oct 26 17:50 wiki
и в wiki:
drwxr-xr-x 5 moin moin     4096 Oct 26 17:43 config
drwxr-xr-x 7 moin moin     4096 Oct 24 14:57 data
-rw-r--r-- 1 moin moin     2149 Oct 26 17:49 moin.wsgi
drwxr-xr-x 2 moin moin     4096 Oct 24 14:57 server
drwxr-xr-x 3 moin moin     4096 Oct 24 14:57 underlay
-rw-r--r-- 1 root root      235 Oct 24 15:38 uwsgi.ini
-rw-r--r-- 1 moin moin     7624 Oct 26 17:47 wikiconfig.py
-rw-r----- 1 moin www-data 2062 Oct 26 17:50 wikiconfig.pyc

noname_user ★★★
() автор топика
Последнее исправление: noname_user (всего исправлений: 1)
Ответ на: комментарий от Stack77

Я всегда в контексте server’a указываю root

А какова причина этого всегда? Просто потому что когда-то это сработало и теперь будем молиться на идолов на всякий случай прописывать везде?

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

А какова причина этого всегда? Просто потому что когда-то это сработало и теперь будем молиться на идолов на всякий случай прописывать везде?

Причина в том, что в 90% случаев использую его под php. Я выше написал, предполагал, что в связке с питоном работает примерно так же, ошибался.

Да ты шо?

А шо не так? Нужно новый IP подрубить, потом все конфиги править? Ты бы лучше по теме помог, подсказал чего :)

Stack77
()
Ответ на: комментарий от noname_user

я вырубил апач и сделал так

Сделал как именно?

видим что инклудится все с include /etc/nginx/conf.d/*.conf;

Видим что эта строка закомменчена. А не, там ниже есть такая же. Ну так ты порядок то в конфиге наведи.

Там у меня лежит конфиг moin.conf

А должен быть в sites-availabe/* а в sites-enabled/* на него надо симлинк релативный создать.

location == alias

Зачем?

почему он его не инклудит или не видит?

nginx -t может подсказать

root я пробовал

Попробуй ещё. Только правильно и вдумчиво. После того как почистишь конфиг от лишнего говна.

deep-purple ★★★★★
()
Ответ на: комментарий от Stack77

Причина в том, что в 90% случаев использую его под php

Причина не принимается, идолопоклонник.

предполагал, что в связке с питоном работает примерно так же, ошибался

Уверен что ошибался?

Нужно новый IP подрубить

Если он поднимет новый интерфейс и с него надо будет трафить нжинксом — да. А так, нахера?

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

почистил, все остальное ispmanager прописывал, не хочу трогать пока работает)

А должен быть в sites-availabe/* а в sites-enabled/* на него надо симлинк релативный создать.

делал не помогло
nginx -t:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Попробуй ещё. Только правильно и вдумчиво.

да вроде же все верно прописал, не ?

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

Или эти первые отрабатывают:

[code] include /etc/nginx/sites-enabled/.conf; include /etc/nginx/vhosts//*.conf; [/code]

или в каталоге /etc/nginx/conf.d/ лежит файл, кроме твоего site.conf, который отрабатывает раньше (читаются по именам в алфавитном порядке). Попробуй его в начале раскомментировать, а в конце закомментировать.

Не может он инклудить файлы, не бросать ошибок и при этом не исполнять секции в них.

Stack77
()
Ответ на: комментарий от deep-purple

Я уже такой вопрос задавал. И за кэш спрашивал и че тока не спрашивал, хз в чем причина…

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

Не может он инклудить файлы, не бросать ошибок и при этом не исполнять секции в них

Значит в синтаксисе там всё ок. Проблема в кривоте конфигурации.

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

я выше скинул все конфиги, по факту должно работать

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

Ну а откуда браузеру знать что твой поддомен на том сервере лежит? У кого он узнает на какой айпи итти и какой хост в заголовках запроса поставить?

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

Нет, на сервере. Зайди - посмотри. Порт 5000 укажи.

Stack77
()
Ответ на: комментарий от deep-purple

Хочешь сказать A-запись в DNS нет? Не, ну ТС вряд ли бы такое забыл xD

Stack77
()
Ответ на: комментарий от noname_user

Щас окажется что у тебя на компе с которого ты браузером ходишь запущена херня на 5000 порту и в етц хостс прописан этот домен на 127.0.0.1, ну или типа того.

deep-purple ★★★★★
()
Ответ на: комментарий от noname_user

Блять, nslookup надо запускать на машинке с браузером, зачем тебе левые говносервисы? Они меряют со своей стороны.

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

Причина не принимается, идолопоклонник.

Та не, так получается, что большинство проектов под web на php веду.

Уверен что ошибался?

В конкретном примере - да. А в целом - нет, не уверен. С такой связкой не работал.

Stack77
()
Последнее исправление: Stack77 (всего исправлений: 1)
Ответ на: комментарий от Stack77

большинство проектов под web на php виду

И все твои проекты на пхп подразумевают пхп файлы лежащие там же где статика? Ну так, мир гораздо многограннее и конфиги тоже, в зависимости от, а не потому что так везде необходимо.

С такой связкой не работал

Та же херня что и фастцги.

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

И все твои проекты на пхп подразумевают пхп файлы лежащие там же где статика?

В большинстве случаев - да (в отдельных каталогах), с http2 отпала необходимость разносить всё по поддоменам. Ты же об этом? При необходимости, вообще, root можно в секции конфига для статики свой указать. Не очень понял суть вопроса?!

Ну так, мир гораздо многограннее и конфиги тоже, в зависимости от, а не потому что так везде необходимо.

Не спорю.

Stack77
()
Последнее исправление: Stack77 (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.