Murmurianez
@Murmurianez
JavaScript Developer

Почему не работает простейший путь в nginx?

Почему не отрабатывает localhost/dev ???

server {
    set $path "/media/sf_FunCollection";

    listen          1001;
    server_name     localhost;

    if ($http_user_agent ~* "(iphone|android|blackberry)") {
        rewrite ^ http://localhost:1100 redirect;
        break;
    }

	location / {
		root   $path/application;
		#index index.html;
		charset utf-8;
	}

	location /dev {
		root   $path/landings/run;
		#index index.html;
		charset utf-8;
	}

    location /api/v1 {
        proxy_set_header        X-Real-IP               $remote_addr;
        proxy_set_header        X-Forwarded-For         $proxy_add_x_forwarded_for;
        proxy_set_header        Host                    $host;
        proxy_pass              http://localhost:1437/api/v1;
    }
}
  • Вопрос задан
  • 913 просмотров
Решения вопроса 2
Lynn
@Lynn
nginx, js, css
Всегда первым делом нужно смотреть error.log.

Так же нужно понимать, что путь до файла добавляется к `root`. Т.е. запрос `localhost/dev/index.html` ищет файл `ROOT/dev/index.html`, о чём часто забывают.

И последний, неочевидный, момент, директива `root` тупая и если не видит первым символом слеш `/`, то считает путь относительно некого дефолтного корня. Обычно это `/usr/share/nginx` или `/etc/nginx`. В вашем случае корнем будет что-то типа `/usr/share/nginx/media/sf_FunCollection`, что вероятно неверно.
Ответ написан
sim3x
@sim3x
Как полностью отвязать путь от файловой системы?

nginx.org/en/docs/http/ngx_http_core_module.html#alias
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
mikes
@mikes
возможно http://localhost:1100
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы