Welcome! Log In Create A New Profile

Advanced

динамические вхосты для жинкса и апача

Posted by zaartix 
динамические вхосты для жинкса и апача
October 12, 2011 06:41PM
По некоторым причинам мне необходимо держать апач и жинкс вместе. Жинкс как водится на 80, апач на 8080.
Хочу построить такой механизм:
есть папки
/var/www/_apache
/var/www/_nginx

Внутри лежат симлинки на рут директории всех сайтов.
Т.е. симлинк /var/www/_apache/site.ru ведет на соответствующую ему директорию, с этим сайтом.

Ну соответственно задумка такая, жинкс смотрит наличие папки /var/www/_apache/$host, если такая найдена, то делается proxy_pass на апач. Если же такой нет, то через отдается fast_cgi с путем: /var/www/_nginx/$host

Попробовал сделать такой конфиг:
set $nhost $host;
if ( $host ~ www\.(.*)$ ) {
set $nhost $1;
rewrite ^/(.*) http://$nhost/$1 permanent;
}
location ~* \.php {
try_files /var/www/_apache/$nhost/ @apache;
root /var/www/_nginx/$nhost;
fastcgi_pass 127.0.0.1:9000;
fastcgi_hide_header X-Powered-By;
fastcgi_index index.php;
fastcgi_connect_timeout 60;
fastcgi_read_timeout 60;
fastcgi_send_timeout 60;
fastcgi_param SCRIPT_FILENAME /var/www/_nginx/$nhost$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
location @apache {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $nhost;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

Не сработало. В чем не прав?



Edited 1 time(s). Last edit at 10/12/2011 06:42PM by zaartix.
Re: динамические вхосты для жинкса и апача
October 15, 2011 07:51PM
Получилось, но достаточно коряво:


location / {
root /var/www/_nginx/$nhost;
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location ~* \.php {
root /var/www/_nginx/;
try_files /$nhost$uri @apache;
fastcgi_pass 127.0.0.1:9000;
fastcgi_hide_header X-Powered-By;
fastcgi_index index.php;
fastcgi_connect_timeout 60;
fastcgi_read_timeout 60;
fastcgi_send_timeout 60;
fastcgi_param SCRIPT_FILENAME /var/www/_nginx$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
location @apache {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $nhost;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

Работает как положено, но в связи с тем, что root установлена в /var/www то все переменные вроде $_SERVER["DOCUMENT_URI"] будут содержать /domain.ru/index.php вместо /index.php
Re: динамические вхосты для жинкса и апача
October 16, 2011 04:09AM
Мда, в общем все проще оказалось:

location / {
root /var/www/_nginx/$nhost;
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location ~* \.php {
root /var/www/_nginx/$nhost/;
try_files $uri @apache;
fastcgi_pass 127.0.0.1:9000;
include /etc/nginx/fastcgi_params;
}
location @apache {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $nhost;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

Спасибо всем за помощь! ))
Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 259
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready