Правильна ли конфигурация?
Serguei V. Melekhov
kisulja2000 at mail.ru
Tue Dec 23 00:18:13 MSK 2008
Serguei V. Melekhov пишет:
> Igor Sysoev пишет:
>> On Sat, Dec 20, 2008 at 03:48:07PM +0300, Serguei V. Melekhov wrote:
>>
>>
>>> Хотел спросить верно ли всё делаю. Есть сайт со страницами
>>> пользователей где в бэкенде стоит апач
>>>
>>>
>>> <VirtualHost xx.xx.xx.xx:8087>
>>> ServerName name.domain.ru
>>> DocumentRoot /var/www/name.domain.ru/vnames
>>> RewriteEngine on
>>> RewriteRule ^(.*)$
>>> /var/www/name.domain.ru/vnames/htdocs/script.php?user=%{HTTP_HOST}&url=$1
>>> [L]
>>> Options FollowSymLinks
>>> </VirtualHost>
>>>
>>>
>>> хочу заменить это на связку ngnix + fastcgi где бэкенд вообще другая
>>> машина для чего делаю следующее
>>>
>>>
>>> server {
>>> listen 80;
>>> server_name *.domain.ru;
>>> charset windows-1251;
>>>
>>> access_log off;
>>>
>>> error_page 500 502 503 504 /50x.html;
>>> location = /50x.html {
>>> root /usr/local/nginx/html;
>>> }
>>> error_page 404 = /404.php;
>>> location / {
>>> fastcgi_pass backend:9090;
>>> rewrite ^(.*)$ ?user=$host&url=$1 last;
>>> fastcgi_connect_timeout 30;
>>> fastcgi_send_timeout 300;
>>> fastcgi_read_timeout 300;
>>> fastcgi_param SCRIPT_FILENAME
>>> /var/www/name.domain.ru/vnames/htdocs/script.php;
>>> fastcgi_ignore_client_abort on;
>>> fastcgi_param DOCUMENT_ROOT $document_root;
>>> fastcgi_param PATH_TRANSLATED
>>> /var/www/name.domain.ru/vnames/htdocs/script.php;
>>> fastcgi_param QUERY_STRING $query_string;
>>> fastcgi_param REMOTE_ADDR $remote_addr;
>>> fastcgi_param REQUEST_METHOD $request_method;
>>> fastcgi_param CONTENT_TYPE $content_type;
>>> fastcgi_param CONTENT_LENGTH $content_length;
>>> fastcgi_param SCRIPT_NAME $fastcgi_script_name;
>>> fastcgi_param REQUEST_URI $request_uri;
>>> fastcgi_param DOCUMENT_URI $document_uri;
>>> fastcgi_param SERVER_PROTOCOL $server_protocol;
>>> fastcgi_param GATEWAY_INTERFACE CGI/1.1;
>>> 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 HTTP_X_REAL_IP $remote_addr;
>>> fastcgi_buffer_size 4k;
>>> fastcgi_buffers 16 32k;
>>> }
>>> }
>>>
>>> Вопрос всё ли верно сделано? Есть ли более правильные способы?
>>>
>>
>> rewrite не нужен:
>>
>> rewrite ^(.*)$ ?user=$host&url=$1 last;
>>
>> а нужно передавать это прямо в QUERY_STRING:
>>
>> fastcgi_param QUERY_STRING
>> user=$host&url=$request_uri;
>>
>> И ещё, вот это:
>>
>> error_page 404 = /404.php;
>> в данной конфигурации бессмысленно.
>>
>>
>>
> Игорь,
>
> А как передать еще и данные из query_string в данном примере?
>
> fastcgi_param QUERY_STRING
> user=$host&url=$request_uri$query_string; ????????
> так?
>
>
>
>
>
>
>
>
Проблема решена. Дело в том, что ngnix request_uri передает вместе с / ,
в апаче
реврайт RewriteRule ^(.*)$
/var/www/name.domain.ru/vnames/htdocs/script.php?user=%{HTTP_HOST}&url=$1
в качестве url передавал без /
извините за беспокойство.
More information about the nginx-ru
mailing list