nodeJS сервис через менеджер pm2 на порту 3000, также на сервере есть nginx, в конфиге которого прописан адрес сервиса, куда нужно перенаправлять запросы с внешки (172.0.0.1:3000).
Таким образом, если отправить запрос http://my.domain.ru/items/list то в ответ получите json со списком. То есть все работает как надо.
Но проблема в том, что через адрес домена можно получить доступ к ФАЙЛАМ самого проекта! То есть если отправить запрос http://my.domain.ru/config.json, то в ответ придет json файл настроек проекта!
Подозрения на nginx, что он каким то образом предоставляет доступ к корневой папке проекта((( Но в конфиге nginx прописан только адрес сервиса, там нет пути к папке проекта.
Подскажите, вообще может ли nginx открывать доступ к папкам и файлам для внешних запросов? если да, то где это прописывается?
Рекомендую прочитать правила в закрепе и показать текущую конфигурацию. Желательно полную, nginx -T nginx изначально и был разработан для хостинга статических файлов. Для любого блока location есть такое понятие как content handler, модуль, который будет формировать содержимое ответа. Если таковой content handler не будет указан в явном виде (например с помощью директивы proxy_pass мы говорим, что здесь у нас содержимым ответа будет заниматься http_proxy_module), по умолчанию будет работать http_static_module, и заниматься он будет именно отдачей статических файлов.
у нас в конфиге в плане location только это прописано location / { proxy_pass http://172.0.0.1:3000/; }
Обсуждают сегодня