#nginx
Вопрос:
У меня есть два репозитория react и соответствующие сборки в /www/web
и /www/mobile
Я пытаюсь обслуживать свои статические файлы на основе пользовательского агента.
По умолчанию статические файлы будут обслуживаться из /www/web
каталога, а если это мобильное устройство, то статические файлы будут обслуживаться из /www/mobile
Ниже приведен мой nginx default.conf
map $sent_http_content_type $expires {
default off;
text/html epoch;
text/css max;
application/javascript max;
~image/ max;
~font/ max;
}
map $http_user_agent $ua_device {
default 'desktop';
~*(android|bbd |meego). mobile|avantgo|bada/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile. firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)/|plucker|pocket|psp|series(4|6)0|symbian|treo|up.(browser|link)|vodafone|wap|windows ce|xda|xiino/i 'mobile';
~*android|ipad|playbook|silk/i 'tablet';
}
map $ua_device $root_content {
default '/www/web';
'mobile' '/www/mobile';
}
server {
listen 80 default_server;
server_name _;
root $root_content;
index index.html index.htm;
try_files $uri $uri/ /index.html;
expires $expires;
}
Теперь, с этой конфигурацией, web работает нормально. Но если я проверю на мобильном устройстве, я получаю 500 со следующим сообщением об ошибке.
цикл перезаписи или внутреннего перенаправления при внутреннем перенаправлении на «/index.html «
Я занимаюсь этим уже давно, поэтому любые указатели были бы действительно большой помощью.
Комментарии:
1. Посмотрите, помогает ли это, от serverfault: serverfault.com/a/505099/215387
2. @SaurabhPabhare Похоже, что nginx не может найти
index.html
файл в вашем корне мобильного приложения (/www/mobile
). Это приводит к бесконечному циклу попыток/index.html
URI.3. @IvanShatsky Спасибо. Это была проблема. Том в docker-compose не монтировался должным образом.