несколько сайтов в одном домене, с аналогичными локйешенами.

eug.l nginx-forum at nginx.us
Tue Mar 25 07:20:01 UTC 2014


Добрый день,уважаемые коллеги!
Помогите,пожалуйста, новичку разрешить следующую проблему.

1. Необходимо сделать несколько сайтов в одном домене.Сайты различаются
только языковой версией,являющейся обязательной для идентификации.
Например, 
mydomen.com/ru/
mydomen.com/eng/
mydomen.com/esp/

Сайты расположены на различных vps (бэкэнд) и nginx проксирует запросы к
этим бэкэндам. Одновременно с этим запросы кэшируются.
Для быстрой отдачи статики сделаны локейшины, которые для каждого сайта
свои, но имеют общие названия.
Например,

location ^~ /styles/ {
alias /patch/site1/public_html/_css/;
try_files $uri $uri/ /index.php;
error_page 404 = /fetch$uri;
access_log off;
}

location ^~ /styles/ {
alias /patch/site2/public_html/_css/;
try_files $uri $uri/ /index.php;
error_page 404 = /fetch$uri;
access_log off;
}

location ^~ /styles/ {
alias /patch/site3/public_html/_css/;
try_files $uri $uri/ /index.php;
error_page 404 = /fetch$uri;
access_log off;
}

Так как, для размещения различных сайтов в одном домене (ответ нашёл на этом
форуме) необходимо их размещять в разных локейшенах,то я пишу в конфиге

server {
        server_name mysite.com;
        rewrite ^(.*)$ http://www.mysite.com$1 permanent;
}

server {
        listen 80;

        index index.php index.html index.htm;
        server_name www.mysite.com;


        location / {

		include /etc/nginx/conf.d/location/redirect_1.conf;
                include /etc/nginx/conf.d/location/redirect_2.conf;
                include /etc/nginx/conf.d/location/drop_1.conf;
		include /etc/nginx/conf.d/location/static_main.conf;

               location /ru/ {
			include /etc/nginx/conf.d/location/static_s1.conf; ############
##Здесь nginx выдаёт ошибку дублирования , так как в локейшене встречаются
аналогичные описания для основного сайта.
                       proxy_pass http://mysite1_backend;
                       access_log /var/log/nginx/mysite1/my1.log up_head;
                       }

	location /de/ {
			include /etc/nginx/conf.d/location/static_s2.conf; #############
                       proxy_pass http://mysite2_backend;
                       access_log /var/log/nginx/mysite2/my2.log up_head;
                       }

	location /esp/ {
			include /etc/nginx/conf.d/location/static_s3.conf; ########
                       proxy_pass http://mysite3_backend;
                       access_log /var/log/nginx/mysite1/my3.log up_head;
                       }

}

Возможно ли как-то обойти ошибку не меняя описания в самом локейшене?

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,248658,248658#msg-248658



Подробная информация о списке рассылки nginx-ru