У меня есть вот такой 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-файлы:
Каталог - ок:
А файл js в каталоге - 404??? как? вот это:
Я много пробовал с try_files, ничего не работает. Сейчас я разместил все ресурсы перед nginx, это работает, но это не лучший способ, потому что требуется переписывать файл conf при изменении ресурсов. Я ожидаю, что все файлы, а не только каталоги, будут обслуживаться nginx без каких-либо проблем. Буду очень рад послушать специалистов по nginx. Спасибо всем за уделенное время, даже если вы только прочитали мой вопрос!