Re[2]: виртуал хосты и rewrite
andy karimov
andy.karimov на gmail.com
Вт Мар 15 17:46:54 MSK 2011
Hello Maxim,
Tuesday, March 15, 2011, 4:26:45 PM, you wrote:
>> Столкнулся с такой проблемой.
>> Есть два виртуал хоста vhost1.com и vhost2.info
>> У vhost2.info ранее было имя домена old.name.some.info, и для
>> нормальной работы CMS у vhost2.info прописан редирект
>>
>> rewrite ^(.*) http://vhost2.info$1 permanent;
>>
>> все ровно работает до момента когда на vhost2.info понадобилось
>> заливать файлы на 10 мб
MD> У вас в server{} для vhost2.info вообще в конфиге не задан, запрос
MD> на vhost2.info будет обработан в сервере по умолчанию на
MD> соответствующем listen-сокете. Т.е. в первом, описанном в конфиге
MD> (или где повезёт, если файлы с описаниями серверов подключаются
MD> через include), ибо явно сервер по умолчанию не задан.
Задание vhost2.info в server_name приводит к loop'у при рерайте.
>> тогда в конфиг было добавлено
>>
>> client_max_body_size 12M;
>> client_body_buffer_size 256k;
>>
>> и ничего не работало, по логам было видно что nginx ругается при
>> попытке аплоада на vhost2.info на то, что настройки vhost1.com не
>> позволяют аплоадить такой размер (увы я логи стер)
>>
>> как выяснилось если в конфиге vhost2.info убрать редирект и вписать
>> имя vhost2.info в server_name то nginx нормально распознает
>> виртуалхосты.
>>
>> если оставить редирект то имя хоста на который редиректится нужно
>> убирать из server_name иначе происходил loop и соответственно nginx
>> неверно распознает виртуалхост
>>
>> подскажите как и рыбку скушать и на велосипеде покататься ?
MD> Начните с простого - почитайте тут:
MD> http://nginx.org/en/docs/introduction.html
MD> А уже потом начинайте конфигурировать.
Читал, не помогло.
>> nginx 0.8.54 и 0.9.5, Windows
MD> Just in case: nginx под Windows в production - это выбор смелых.
Спасибо, год работает - никаких проблем.
>> ==== vhost1
>> server {
>> listen 80;
>> error_page 500 502 503 504 /50x.html;
>> location = /50x.html { root html; }
>>
>> server_name vhost1.com;
>> location / {
>> access_log off;
>> proxy_set_header Host $http_host;
>> proxy_set_header X-Real-IP $remote_addr;
>> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>> proxy_pass http://127.0.0.1:8088;
>> }
>> }
>> ==== vhost1
>>
>>
>> ==== vhost2
>> server {
>> listen 80;
>> server_name *.vhost2.info old.name.some.info;
>> rewrite ^(.*) http://vhost2.info$1 permanent;
MD> "rewrite ^(.*)" - срабатывает всегда, соответственно любой запрос
MD> в этот сервер будет перенаправлен. Все тщательно описанные
MD> location'ы в этом сервере - не будут работать никогда и смысла не
MD> имеют.
заданы, работают, все хорошо.
с рерайтом только проблема :)
>> error_page 500 502 503 504 /50x.html;
>> location = /50x.html { root html; }
>>
>> location ~* \.(jpg|jpeg|gif|png|css)$ {
>> access_log off;
>> root c:/home/vhost2.info;
>> expires 3d;
>> }
>>
>> location / {
>>
>> client_max_body_size 12M;
>> client_body_buffer_size 256k;
>>
>> access_log off;
>> proxy_set_header Host $http_host;
>> proxy_set_header X-Real-IP $remote_addr;
>> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>> proxy_pass http://127.0.0.1:8088;
>>
>> proxy_connect_timeout 30;
>> proxy_send_timeout 30;
>> proxy_read_timeout 30;
>> }
>> }
>>
>> ==== vhost2
--
NictaTech Software
http://www.nictasoft.com
Tuesday, March 15, 2011, 4:42:38 PM (GMT+2)
Подробная информация о списке рассылки nginx-ru