Отписаться
ср, 23 янв. 2019 г. в 11:15, <nginx-ru-requ...@nginx.org>: > Сообщения, предназначенные для списка > рассылки nginx-ru, отправляйте по адресу > nginx-ru@nginx.org > > Для изменения параметров подписки или > отписки используйте веб-страницу > http://mailman.nginx.org/mailman/listinfo/nginx-ru > или отправьте письмо, в теле или теме > которого будет слово 'help', по адресу > nginx-ru-requ...@nginx.org > > Адрес администратора этого списка > рассылки: > nginx-ru-ow...@nginx.org > > При ответе, пожалуйста, измените тему > письма на более содержательную чем "Re: > Содержание дайджеста списка рассылки > nginx-ru..." > В этом номере: > > 1. Re: Upstream и заголовок Host (Alex Tkachuk) > 2. Re: Upstream и заголовок Host (Maxim Dounin) > 3. fcgiwrap не могу запустить (Victor Sudakov) > 4. Re: fcgiwrap не могу запустить (Victor Sudakov) > 5. Re: fcgiwrap не могу запустить (Victor Sudakov) > > > > ---------- Forwarded message ---------- > From: Alex Tkachuk <a...@tkachuk.pp.ua> > To: nginx-ru@nginx.org > Cc: > Bcc: > Date: Tue, 22 Jan 2019 14:28:50 +0200 > Subject: Re: Upstream и заголовок Host > В линуксе есть какой-то прикол с резолвом .local доменов. Гляньте на > /etc/nsswitch.conf. Там определяется очередность служб для резолва адресов. > Для .local оно как-то отдельно идет. > > Отправлено с iPhone > > 22 янв. 2019 г., в 09:29, Dmitriy Lyalyuev <dmit...@lyalyuev.info> > написал(а): > > Если коротко, то - > https://serverfault.com/questions/598202/make-nginx-to-pass-hostname-of-the-upstream-when-reverseproxying > > Второй ответ в треде. > Но сама схема, как по мне, выглядит костылем. Костылем и лечить. > > -- > With best regards, > Dmitriy Lyalyuev > dmit...@lyalyuev.info > > > > On Jan 22, 2019, at 08:54, CoDDoC via nginx-ru <nginx-ru@nginx.org> wrote: > > Доброе время суток! > > Тестовый сервер: test.local. В нем тестовый кластер: > upstream cdn { > server <IP_1>:<port_1>; > server <IP_2>:<port_2>; > .... > } > > или: > upstream cdn { > server cdn001.test.local:<port_1>; > server cdn002.test.local:<port_2>; > .... > } > > Не принципиально, ибо "cdn001.test.local" резолвится в <IP_1> и т.д. > > Само собой, "proxy_http_version 1.1;" и из какого-то локейшена "proxy_pass > http://cdn;" > Теперь смотрю, что приходит, например, на выбранный бэкенд. > Ожидаю там увидеть в заголовке Host значение <IP> или 'cdn###.test.local'. > Вижу: http header: "Host: cdn". Что не так? > > Входящий контроль проверяет правильность заголовка Host. > Все, что не соответствуют разрешенным, посылаются на 400. Можно, конечно, > добавить фильтрацию по белому списку, что-то типа "такой-то IP должен > прислать такой-то заголовок". Но (ИМХО) костыль. > > proxy_set_header 'Host' $upstream_addr; - бесполезно. > $upstream_addr получает значение ПОСЛЕ proxy_pass. > > Попутно вопрос о $upstream_addr. > Ее можно еще как-то использовать, кроме как в логах? Например, отправить в > php, но без костылей? > > Спасибо. > -- > _______________________________________________ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > _______________________________________________ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > ---------- Forwarded message ---------- > From: Maxim Dounin <mdou...@mdounin.ru> > To: CoDDoC via nginx-ru <nginx-ru@nginx.org> > Cc: > Bcc: > Date: Tue, 22 Jan 2019 17:31:37 +0300 > Subject: Re: Upstream и заголовок Host > Hello! > > On Tue, Jan 22, 2019 at 09:54:12AM +0300, CoDDoC via nginx-ru wrote: > > > Доброе время суток! > > > > Тестовый сервер: test.local. В нем тестовый кластер: > > upstream cdn { > > server <IP_1>:<port_1>; > > server <IP_2>:<port_2>; > > .... > > } > > > > или: > > upstream cdn { > > server cdn001.test.local:<port_1>; > > server cdn002.test.local:<port_2>; > > .... > > } > > > > Не принципиально, ибо "cdn001.test.local" резолвится в <IP_1> и т.д. > > > > Само собой, "proxy_http_version 1.1;" и из какого-то локейшена > "proxy_pass http://cdn;" > > Теперь смотрю, что приходит, например, на выбранный бэкенд. > > Ожидаю там увидеть в заголовке Host значение <IP> или > 'cdn###.test.local'. > > Вижу: http header: "Host: cdn". Что не так? > > А можно вопрос - почему вы ожидаете увидеть в заголовке Host > "<IP> или 'cdn###.test.local'"? > > Документация по данному вопросу однозначна, да и, скажем, > прописывая в DNS соответствующие A или CNAME-записи никто не > ожидает, что в запросах будет заголовок Host, соответствующий > содержимому записи. > > Почему от блоков upstream вдруг ожидается какое-то другое > поведение? > > На всякий случай уточню - вопрос вполне серьёзный, хочется > понять, на какие аналогии опираются люди, считающие, что заголовок > Host должен зависеть от того, на какой IP-адрес из списка был > отправлен запрос. Вроде бы аналогия с DNS очевидна, и она > подразумевает именно именно то поведение, которое есть сейчас, но > почему-то людей, предполагающих другое поведение, много. > > [...] > > > Попутно вопрос о $upstream_addr. > > Ее можно еще как-то использовать, кроме как в логах? Например, отправить > в php, но без костылей? > > Нет. Запрос формируется до выбора бэкенда, на который этот запрос > будет отправлен (а в рамках proxy_next_upstream - один и тот же > запрос может быть отправлен на несколько бэкендов). Соотвественно > переменную $upstream_addr можно использовать в логах (а равно при > обработке ответа бэкенда - скажем, в add_header), но бессмысленно > использовать в запросе на бэкенд - на момент формирования запроса > она всегда будет пустой. > > -- > Maxim Dounin > http://mdounin.ru/ > > > > > ---------- Forwarded message ---------- > From: Victor Sudakov <v...@mpeks.tomsk.su> > To: nginx-ru@nginx.org > Cc: > Bcc: > Date: Wed, 23 Jan 2019 00:23:57 +0700 > Subject: fcgiwrap не могу запустить > Коллеги, снимите с ручника пожалуйста, что не так? > > nginx (FreeBSD 11.2, nginx-1.14.1_1,2) при обращении к /cgi-bin/test > возвращает "403 Forbidden". Самое странное, что в error.log по этому > поводу ничего не пишется. В access.log есть совершенно неинформативное > > 2001:470:35:7af::2 - - [22/Jan/2019:23:37:46 +0700] "GET /cgi-bin/test > HTTP/1.1" 403 25 "-" "Mozilla/5.0 (X11; FreeBSD amd64; rv:64.0) > Gecko/20100101 Firefox/64.0" > > Чего ему не хватает? И как хотя бы включить ошибки в error.log? > > nginx.conf: > > location /cgi-bin/ { > root /usr/local/www/cgi-bin; > include /usr/local/etc/nginx/fastcgi_params; > fastcgi_pass unix:/tmp/fcgiwrap.socket; > fastcgi_param SCRIPT_FILENAME > $document_root$fastcgi_script_name; > } > > > # ls -al /tmp/fcgiwrap.socket > srw------- 1 www wheel 0 22 янв. 23:33 /tmp/fcgiwrap.socket > > > rc.conf.local: > > fcgiwrap_enable="YES" > fcgiwrap_socket_owner="www" > fcgiwrap_user="www" > fcgiwrap_socket="unix:/tmp/fcgiwrap.socket" > fcgiwrap_socket_mode="0600" > > > # ls -al /usr/local/www/cgi-bin > total 12 > drwxr-xr-x 2 root wheel 512 22 янв. 22:58 . > drwxr-xr-x 4 root wheel 512 22 янв. 22:56 .. > -rwxr-xr-x 1 root wheel 103 22 янв. 22:58 test > > # ps axwwu | grep cgi > www 85035 0,0 0,1 6388 1808 - Is 00:11 0:00,00 > daemon: /usr/local/sbin/fcgiwrap[85037] (daemon) > www 85037 0,0 0,1 6356 1832 - I 00:11 0:00,00 > /usr/local/sbin/fcgiwrap -s unix:/tmp/fcgiwrap.socket > > > Если сказать > su -m www -c 'telnet /tmp/fcgiwrap.socket' > то соединяется с fastcgi-сервером (я правда не знаю, какую команду там > сказать можно, но права доступа к сокету у www явно есть). > > -- > Victor Sudakov, VAS4-RIPE, VAS47-RIPN > 2:5005/49@fidonet http://vas.tomsk.ru/ > > > > > ---------- Forwarded message ---------- > From: Victor Sudakov <v...@mpeks.tomsk.su> > To: nginx-ru@nginx.org > Cc: > Bcc: > Date: Wed, 23 Jan 2019 01:02:01 +0700 > Subject: Re: fcgiwrap не могу запустить > Victor Sudakov wrote: > > > > > > Если сказать > > su -m www -c 'telnet /tmp/fcgiwrap.socket' > > то соединяется с fastcgi-сервером (я правда не знаю, какую команду там > > сказать можно, но права доступа к сокету у www явно есть). > > FastCGI server сам по себе однако работает: > > # ~/bin/debug_cgi.sh > + SCRIPT_FILENAME=/usr/local/www/cgi-bin/test > + export SCRIPT_FILENAME > + REQUEST_URI=/test > + export REQUEST_URI > + REQUEST_METHOD=GET > + export REQUEST_METHOD > + su -m www -c '/usr/local/bin/cgi-fcgi -bind -connect > /tmp/fcgiwrap.socket' > Content-type: text/plain > > This is a test script > This is a test script > This is a test script > This is a test script > This is a test script > This is a test script > This is a test script > > > -- > Victor Sudakov, VAS4-RIPE, VAS47-RIPN > 2:5005/49@fidonet http://vas.tomsk.ru/ > > > > > ---------- Forwarded message ---------- > From: Victor Sudakov <v...@mpeks.tomsk.su> > To: nginx-ru@nginx.org > Cc: > Bcc: > Date: Wed, 23 Jan 2019 15:36:23 +0700 > Subject: Re: fcgiwrap не могу запустить > fcgiwrap с ключом -f маленько прояснил ситуацию, имею теперь сообщение > об ошибке в логе nginx: > > 2019/01/23 15:29:36 [error] 93721#100134: *5 FastCGI sent in stderr: > "Cannot get script name, are DOCUMENT_ROOT and SCRIPT_NAME (or > SCRIPT_FILENAME) set and is the script executable?" while reading response > header from upstream, client: 10.10.10.3, server: , request: "GET > /cgi-bin/test HTTP/1.1", upstream: "fastcgi://unix:/tmp/fcgiwrap.socket:", > host: "admin.sibptus.ru" > > С учетом нижепоказанного, чего ещё недостаёт? > > location /cgi-bin/ { > root /usr/local/www/cgi-bin; > include /usr/local/etc/nginx/fastcgi_params; > fastcgi_pass unix:/tmp/fcgiwrap.socket; > } > > > $ egrep 'DOCUMENT_ROOT|SCRIPT_NAME' /usr/local/etc/nginx/fastcgi_params > fastcgi_param SCRIPT_NAME $fastcgi_script_name; > fastcgi_param DOCUMENT_ROOT $document_root; > > $ ls -al /usr/local/www/cgi-bin > total 12 > drwxr-xr-x 2 root wheel 512 23 янв. 00:58 . > drwxr-xr-x 4 root wheel 512 22 янв. 22:56 .. > -rwxr-xr-x 1 root wheel 313 23 янв. 00:58 test > > > > > -- > Victor Sudakov, VAS4-RIPE, VAS47-RIPN > 2:5005/49@fidonet http://vas.tomsk.ru/ > > _______________________________________________ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru
_______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru