Welcome! Log In Create A New Profile

Advanced

Редирект под-домена на под-папку

Posted by Ancient 
Редирект под-домена на под-папку
February 01, 2012 10:13AM
Добрый день,
провёл пол дня пытаясь настроить следущую схему.

*.domain.com должно брать файлы из /srv/www/vhosts/domain.com/*/
при этом php должен обрабатывать apache по той же схеме.

Т.е. сейчас всё работает на чистом апаче с одним простым правилом -

RewriteEngine On
RewriteCond %{HTTP_HOST} ^([^\.]+)\.domain\.com
RewriteCond /srv/www/vhosts/domain\.com/%1 -d
RewriteRule ^(.*) /%1/$1 [L]

и я хочу поставить перед ним nginx.

я нашёл 2 варианта.
1)
server {
listen 80;
server_name ~^(.*)\.nginxdomain\.com$;
#if directory doesn't exist
if (!-d /home/domains/nginxdomain.com/public/$1) {
rewrite . http://www.nginxdomain.com/ redirect;
}

# Sets the correct root
root /home/domains/nginxdomain.com/public/$1;

не работает, т.к. при запроси к picture.jpg nginx ищет фаил из под ../domain/jpg/... (jpg вместо назнавия поддомена)

2)
if ($host !~* ^www\.domain\.tld$) {}
if ($host ~* ^([^.]+)\.domain\.tld$) {
set $auto_subdomain $1;
}
if (-d /var/www/domain.tld/www/$auto_subdomain) {}
if (-f /var/www/domain.tld/www/$auto_subdomain$uri) {
rewrite ^(.*)$ /$auto_subdomain$uri;
break;
}

тут мне сложно комментировать, но не работает.


буду признателен любым советам.

спасибо,
Игорь.
Re: Редирект под-домена на под-папку
February 02, 2012 11:39AM
if ($host ~* ^([^.]+)\.facebook\.rc\.77test\.co\.uk$) {
set $auto_subdomain $1;
}
root /srv/www/vhosts/facebook.rc.77test.co.uk/$auto_subdomain/;


вот так похоже работает, интересно будет ли это влиять на скорость работы если будет больше чем скажем 100 под-папок ?
mkc
Re: Редирект под-домена на под-папку
February 23, 2012 04:25AM
upstream domain.ru {
server 127.0.0.1:8000;
}
server {
listen x.x.x.x:80;
server_name "~^(\w\d{1,3}+)\.domain.ru$"; 1,3 меняем по вкусу
access_log /home/mkc-net.ru/log/$1.access.log main;
location / {
proxy_pass http://domain.ru/$1;
}
}
ну и не забываем про dns:
*.domain.ru IN A x.x.x.x



Edited 2 time(s). Last edit at 02/23/2012 04:28AM by mkc.
Re: Редирект под-домена на под-папку
February 26, 2012 07:49AM
если нужно просто перед апачем поставить nginx, то тут проще сделать так:
server {
listen 80;
server_name _;
proxy_buffering on;

location / {
proxy_pass http://127.0.0.1:88;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

в таком варианте все запросы будут уходить на апач, а он уже смотрит на поддомены.
Re: Редирект под-домена на под-папку
March 02, 2012 06:33AM
mkc Wrote:
-------------------------------------------------------
> upstream domain.ru {
> server 127.0.0.1:8000;
> }
> server {
> listen x.x.x.x:80;
> server_name "~^(\w\d{1,3}+)\.domain.ru$"; 1,3
> меняем по вкусу
> access_log /home/mkc-net.ru/log/$1.access.log
> main;
> location / {
> proxy_pass http://domain.ru/$1;
> }
> }
> ну и не забываем про dns:
> *.domain.ru IN A x.x.x.x


спасибо,
server_name "~^(\w\d{1,3}+)\.domain.ru$";
а можно эту строчку пояснить ?
Re: Редирект под-домена на под-папку
March 02, 2012 06:34AM
ink08 Wrote:
-------------------------------------------------------
> если нужно просто перед
> апачем поставить nginx, то тут
> проще сделать так:
> server {
> listen 80;
> server_name _;
> proxy_buffering on;
>
> location / {
> proxy_pass http://127.0.0.1:88;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header Host $http_host;
> proxy_set_header X-Forwarded-For
> $proxy_add_x_forwarded_for;
> }
> }
>
> в таком варианте все
> запросы будут уходить на
> апач, а он уже смотрит на
> поддомены.


так то да, понятно, но хотелось бы чтоб nginx сам раздавал статику, а то теряется несколько смысл мне кажется, тогда я бы squid использовал.
Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 214
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