Задать вопрос
@cyanannaliese

Почему nginx сервит папку, но не файлы в ней?

У меня есть вот такой nginx conf:
# Определение сервера по умолчанию
server {
listen [::]:8080 default_server;
listen 8080 default_server;
server_name _;

tcp_nodelay on;
absolute_redirect off;

#этот работает отлично, это webserver+ws по своей собственной реализации
location /backend/firstws {
proxy_http_version 1.1;
proxy_set_header Хост $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Обновление $http_upgrade;
proxy_set_header Подключение "upgrade";
proxy_read_timeout 1d; # не разрывать соединение после 60 с бездействия
proxy_pass http://127.0.0.1:7898/;
}

#это тоже, никаких проблем, это чистый ws-сервер на nodejs
location /backend/secondws/ {
add_header Access-Control-Allow-Origin *;
proxy_http_version 1.1;
proxy_set_header Хост $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Обновление $http_upgrade;
proxy_set_header Соединение "upgrade";
proxy_read_timeout 1d; # не разрывать соединение после 60 с бездействия
proxy_pass http://127.0.0.1:3000/socket.io/;
}

#а здесь я пытаюсь проксировать запросы к noVNC через NGINX.
location /backend/vnc/ {
proxy_pass http://127.0.0.1:5800/;
}

# Перенаправить страницы ошибок сервера на статическую страницу /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/lib/nginx/html;
}

# Установить заголовки управления кэшем для ресурсов для кэширования на 3 часа
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
expires 1h;
}

# Запретить доступ к файлам . в целях безопасности
location ~ /\. {
log_not_found off;
deny all;
}

}

Этот блок почему-то неправильный:
#а здесь я пытаюсь проксировать запросы к noVNC через NGINX.
location /backend/vnc/ {
proxy_pass http://127.0.0.1:5800/;
}

Он отлично проксирует index.html, каталоги, но это происходит при попытке загрузить любые js-файлы:

Каталог - ок:
66f6c16d9c83a159464088.png

А файл js в каталоге - 404??? как? вот это:
66f6c17397cf9619983327.png

Я много пробовал с try_files, ничего не работает. Сейчас я разместил все ресурсы перед nginx, это работает, но это не лучший способ, потому что требуется переписывать файл conf при изменении ресурсов. Я ожидаю, что все файлы, а не только каталоги, будут обслуживаться nginx без каких-либо проблем. Буду очень рад послушать специалистов по nginx. Спасибо всем за уделенное время, даже если вы только прочитали мой вопрос!
  • Вопрос задан
  • 125 просмотров
Подписаться 1 Средний 3 комментария
Пригласить эксперта
Ваш ответ на вопрос

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

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