Непонятная ошибка в header.
Igor Sysoev
is at rambler-co.ru
Tue Sep 9 16:40:34 MSD 2008
On Tue, Sep 09, 2008 at 12:34:20PM +0300, maxhl at hitline.net.ua wrote:
> Эти опции задаются в контексте location.
> ______________________________________________________________________________
> location ~ .php$ {
> fastcgi_pass unix:/mnt/md0/php-fcgi.sock;
> include /usr/local/nginx/conf/phpcgi.conf;
> fastcgi_param SCRIPT_FILENAME /home/htdocs$fastcgi_script_name;
> }
> ______________________________________________________________________________
> #phpcgi.conf
> fastcgi_pass_request_body off;
> client_body_in_file_only clean;
> fastcgi_param REQUEST_BODY_FILE $request_body_file;
> fastcgi_connect_timeout 30;
> fastcgi_send_timeout 600;
> fastcgi_read_timeout 600;
> fastcgi_buffer_size 32k;
> fastcgi_buffers 4 32k;
> fastcgi_busy_buffers_size 32k;
> fastcgi_temp_file_write_size 32k;
> fastcgi_intercept_errors on;
> fastcgi_temp_path /mnt/md0;
> fastcgi_param QUERY_STRING $query_string;
> fastcgi_param CONTENT_TYPE $content_type;
> fastcgi_param CONTENT_LENGTH $content_length;
> fastcgi_param REQUEST_URI $request_uri;
> fastcgi_param REQUEST_METHOD $request_method;
> fastcgi_param GATEWAY_INTERFACE CGI/1.1;
> fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
> fastcgi_param REMOTE_ADDR $remote_addr;
> fastcgi_param REMOTE_PORT $remote_port;
> fastcgi_param SERVER_ADDR $server_addr;
> fastcgi_param SERVER_PORT $server_port;
> fastcgi_param SERVER_NAME $server_name;
> fastcgi_param SCRIPT_NAME $request_uri;
> fastcgi_param DOCUMENT_ROOT $document_root;
> client_body_temp_path /mnt/md0;
> fastcgi_param REDIRECT_STATUS 200;
> fastcgi_index index.php;
Что предполагается достигнуть вот этим набором:
> proxy_set_header X_SRC_CLIENT_IP $http_x_src_client_ip;
> proxy_set_header X-Real-IP $http_x_src_client_ip;
> set_real_ip_from 192.168.1.4;
> real_ip_header X-Real-IP;
?
proxy_set_header никакого отношения к fastcgi не имеет.
fastcgi модуль должен сам автоматически передавать клиентский
X_SRC_CLIENT_IP в виде HTTP_X_SRC_CLIENT_IP. Где его нужно выуживать
на стороне PHP, я не знаю.
> Скрипт вида
> ______________________________________________________________________________
> <?
> //phpinfo();
> echo '$HTTP_HOST='.$HTTP_HOST.'<br>';
> echo '$_SERVER["REMOTE_ADDR"]='.$_SERVER['REMOTE_ADDR'].'<br>';
> echo '$_SERVER["HTTP_X_SRC_CLIENT_IP"]='.$_SERVER['HTTP_X_SRC_CLIENT_IP'].'<br><br>';
> echo '$_SERVER["X-Real-IP"]='.$_SERVER['X-Real-IP'].'<br><br>';
> ?>
> ______________________________________________________________________________
> Выдает нужный ип только при первом запуске ... при последующих пустая строка ...
> При этом в логе все равно пищется
> 192.168.1.4 - - [09/Sep/2008:13:16:15 +0400] "GET /ii.php HTTP/1.1" 200 632 "-" "Opera/9.52 (Windows NT 5.2; U; ru)"
> ______________________________________________________________________________
> patch -d nginx -p1 < /usr/work/src2/src/hash_nginx_patch.diff
> patch -d nginx -p1 < /usr/work/src2/src/request_per_seconds.dpatch
>
> ______________________________________________________________________________
> #!/bin/sh
> cd /usr/work/src2/nginx
> make -s clean
>
> CC="gcc" \
> OPTIM="-O3 -pipe -fno-exceptions -funroll-loops -ffast-math -funroll-loops -march=athlon64 -msse3" \
> CFLAGS="-O2 -pipe" \
> INCLUDES="-I/usr/local/include" \
> ./configure \
> --prefix=/usr/local/nginx \
> --with-http_stub_status_module \
> --without-http_empty_gif_module \
> --without-select_module \
> --without-poll_module \
> --without-http_userid_module \
> --without-http_map_module \
> --with-pcre=../pcre \
> --with-http_realip_module !!! мод есть 100%
>
> make -s && make install
> ______________________________________________________________________________
> root at srv/usr/work/src2> uname -a
> FreeBSD srv.org 7.0-STABLE FreeBSD 7.0-STABLE #1: Wed Apr 23 15:45:06 MSD 2008 root at srv.org:/usr/obj/usr/src/sys/AMD64_7 amd64
> ______________________________________________________________________________
>
> ----- Original Message -----
> From: "Igor Sysoev" <is at rambler-co.ru>
> To: <nginx-ru at sysoev.ru>
> Sent: Tuesday, September 09, 2008 9:24 AM
> Subject: Re: Непонятная ошибка в header.
>
>
> On Tue, Sep 09, 2008 at 08:37:45AM +0300, maxhl at hitline.net.ua wrote:
>
> > Открывается страничка он есть ... если обновить страничку он пропадает.
> > И потом сколько не обновляй его нет но если перегрузить nginx опять в
> > первый раз появится ...
>
> В моих тестах я записывал $http_x_src_client_ip в access_log, он
> появлялся в каждом запросе
>
> > ----- Original Message -----
> > From: "Igor Sysoev" <is at rambler-co.ru>
> > To: <nginx-ru at sysoev.ru>
> > Sent: Monday, September 08, 2008 10:46 PM
> > Subject: Re: Непонятная ошибка в header.
> >
> >
> > On Mon, Sep 08, 2008 at 09:30:50PM +0300, maxhl at hitline.net.ua wrote:
> >
> > >Вечер добрый.
> > >В скрипте нужно было только это
> > >proxy_set_header X_SRC_CLIENT_IP $http_x_src_client_ip;
> > >
> > >proxy_set_header X-Real-IP $http_x_src_client_ip; работает тоже только
> > >первый раз ...
> >
> > Что значит - только первый раз ?
> >
> > >>Но нужно понимать, что в X_SRC_CLIENT_IP могут влить чего угодна
> > >>и такая конструкция
> > >>proxy_set_header X-Real-IP $http_x_src_client_ip;
> > >>не гарантирует реальноого адреса.
> > >Таких клиентов будут единицы ...
> >
> >
> > --
> > Игорь Сысоев
> > http://sysoev.ru
> >
--
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list