Я просто пытаюсь запустить приложение nodejs, которое я сделал в домене proxypass, и заставить его работать точно так же, как на моем рабочем столе. Однако по какой-то причине, хотя я определил отдельный корень документа для этого пути proxypass, он не загружал файлы из него. Я проделал то же самое со своей страницей 404, и это сработало. Вот эта страница: https://jakesandbox.com/iwl который загружает файл server.js, который, в свою очередь, загружает файл index.html, но все сценарии и стили, ссылки на которые индексируются, не могут быть загружены. Вот мой конфиг nginx (с цензорами):
server {
listen 80 default_server;
listen [::]:80 default_server;
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
root /home/ubuntu/FAKE WEB ROOT DIR;
index index.html index.htm index.php index.nginx-debian.html;
server_name XXxXX.com;
error_page 404 /404.html;
location = /404.html {
root /home/ubuntu/FAKE ERROR DIR/;
internal;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
ssl_certificate /etc/letsencrypt/live/XXxXX.com.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/XXxXX.com.com/privkey.pem;
location /iwl {
root /home/ubuntu/FAKE NODEJS DIR/;
proxy_pass http://localhost:PORT/;
proxy_ssl_trusted_certificate /etc/letsencrypt/live/XXxXX.com.com/fullchain.pem;
proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
}
}
P.S. Я не хочу перемещать свое приложение nodejs в мой корневой каталог / путь изменения
Если вы откроете вкладку «Сеть» в инструментах разработки своего браузера, вы увидите, что сайт пытается загрузить ресурсы в корень URL-адреса. например:
https://jakesandbox.com/style.css 404
Поскольку вы не хотите изменять пути Node.JS, вы можете обойти это с помощью подстановочного знака местоположения nginx, добавленного в server
блок:
location ~* \.(js|css)$ {
root /path/to/your/node/root;
expires 30d;
}
Возможно, вам придется отредактировать это, чтобы включить другие расширения. Я включен js
и css
выше.
/path/to/your/node/root
должен содержать файлы css и js на этом уровне.
РЕДАКТИРОВАТЬ
У меня не хватает времени проверить это, но да, location
Блок, который я разместил, может перехватывать файлы JS, CSS в корне домена. Можете ли вы протестировать и обновить комментарии. Это правило может работать лучше:
location ~* ^/iwl/.+\.(js|css|jpg)$ {
root /path/to/your/node/root;
}
Однако у меня самого с этим возникают проблемы, так как при применении, похоже, ищет /path/to/your/node/root/iwl/style.css
это означает, что вам нужно переместить что-либо в корне вашего узла в подкаталог с именем iwl
. Если вы можете позволить себе это изменение, оно может оказаться полезным. Вы даже можете позвонить в каталог static
это общий метод, используемый для других веб-сайтов.