Страница 1 из 1

nginx fastcgi_params для отдельного hostname

Добавлено: 2010-12-07 13:01:13
Qaz
Добрый день!

Никто не знает как в nginx выставить определенный fastcgi_params для отдельного IP адреса?

Re: nginx fastcgi_params для отдельного hostname

Добавлено: 2010-12-10 17:54:42
Alex Keda
а как вы для необычного выставляете?

Re: nginx fastcgi_params для отдельного hostname

Добавлено: 2010-12-11 1:10:10
Qaz

Код: Выделить всё

location ~ \.php$ {
 root /usr/local/www/html;
 fastcgi_pass unix:/var/run/php-fpm.sock;
 fastcgi_buffer_size 64k;
 fastcgi_buffers 4 128k;
 fastcgi_index index.php;
 fastcgi_param SCRIPT_FILENAME /usr/local/www/html;
 fastcgi_param APPLICATION_ENV development;
 include fastcgi_params;
 fastcgi_param SCRIPT_NAME /index.php;
 }

Re: nginx fastcgi_params для отдельного hostname

Добавлено: 2010-12-13 17:24:22
unix-admin
http://sysoev.ru/nginx/docs/http/ngx_ht ... stcgi_pass

т.е.:
---
-fastcgi_pass unix:/var/run/php-fpm.sock;
+fastcgi_pass unix:ip_addr:port;
---
где,
ip_addr:port - IP хоста и порт, где байндится php-fpm (его тоже нужно перенастроить на использование IP:port вместо unix-socket)

Re: nginx fastcgi_params для отдельного hostname

Добавлено: 2010-12-13 18:08:05
Qaz
Причем тут это? Висит php-fpm на сокете или нет, мне надо изменить переменную fastcgi_param APPLICATION_ENV для отдельного IP-адреса.

Re: nginx fastcgi_params для отдельного hostname

Добавлено: 2010-12-13 18:44:24
unix-admin
Да, остается только догадываться, что имел ввиду TC...
Может расскажите, что вам в итоге нужно?

Re: nginx fastcgi_params для отдельного hostname

Добавлено: 2010-12-14 9:22:55
Qaz
Вопрос изначально заключался в том, возможно ли для разных IP адресов, выдать разные:
fastcgi_param APPLICATION_ENV

Re: nginx fastcgi_params для отдельного hostname

Добавлено: 2010-12-14 12:12:05
hizel

Код: Выделить всё

server {
 listen foo
 fastcgi_param APPLICATION_ENV

servel {
 listen bar
 fastcgi_param ANOTHER_APPLICATION_ENV

Re: nginx fastcgi_params для отдельного hostname

Добавлено: 2010-12-14 12:32:38
Qaz
Да, так можно, кроме этого вариантов нет?

Re: nginx fastcgi_params для отдельного hostname

Добавлено: 2010-12-14 12:35:01
hizel
перечитав вопрос, я начал подозревать что есть еще одно толкование, типа для разных ip клиента разные APPLICATION_ENV

попробуйте еще раз сформулировать вопрос или опишите задачу

Re: nginx fastcgi_params для отдельного hostname

Добавлено: 2010-12-14 12:44:23
Qaz
Например, человек попадает на сервер с одного IP-адреса, для него APPLICATION_ENV production, для другого человека с конкретного IP-адреса APPLICATION_ENV development.

Re: nginx fastcgi_params для отдельного hostname

Добавлено: 2010-12-14 12:52:48
hizel
ппц

Код: Выделить всё

set $env APPLICATION_ENV
if ($remote_addr = 'bar'){
 set $env ANOTHER_APPLICATION_ENV
}

fastcgi_param $env

Re: nginx fastcgi_params для отдельного hostname

Добавлено: 2010-12-14 13:36:13
Qaz

Код: Выделить всё

set $env APPLICATION_ENV;
if ($remote_addr = 'bar'){
set $env development;
}
Да, действительно, так nginx не ругается, но и не работает, передать параметр fastcgi_param APPLICATION ENV всеравно не выходит :(

Если сделать вот так:

Код: Выделить всё

set $env fastcgi_param APPLICATION_ENV;
if ($remote_addr = 'bar'){
set $env development;
}
будет ошибка

Код: Выделить всё

[emerg]: invalid number of arguments in "set" directive

Re: nginx fastcgi_params для отдельного hostname

Добавлено: 2011-10-20 15:50:48
uran1980

Код: Выделить всё

#
# set APPLICATION_ENV variable for web application
#    production   - режим конечного использования
#    development  - режим разработки
#    testing      - настройки для тестирования на локальном сервере разработчика
#    staging      - настройки для тестирования на пре-продакшен сервере
#    maintenance  - обслуживание сервера
#
set $application_env production;
#if ( $host ~ ^beta\..+ ) {
if ( $remote_addr = 'bar' ) {
    set $application_env staging;
}

# Затем где задаются параметры fcgi прописать:

#
# set APPLICATION_ENV variable for web application
#
fastcgi_param   APPLICATION_ENV     $application_env;