Я только что настроил nginx в качестве обратного прокси, поэтому некоторые сайты, обслуживаемые из коробки, обслуживаются непосредственно им, а другие перенаправляются на сервер Node.js.
Однако сайт, обслуживаемый Node.js, отображается без CSS или изображений, поэтому я предполагаю, что ссылки каким-то образом не работают, но не знаю почему.
Ниже приведен единственный файл в / etc / nginx / sites-enabled:
server {
listen 80; ## listen for ipv4
listen [::]:80 default ipv6only=on; ## listen for ipv6
server_name dev.my.site;
access_log /var/log/nginx/localhost.access.log;
location / {
root /var/www;
index index.html index.htm;
}
location /myNodeSite {
proxy_pass http://127.0.0.1:8080/;
proxy_redirect off;
proxy_set_header Host $host;
}
}
Я думал, что, возможно, он пытается найти их в / var / www из-за первой записи, но удаление этого, похоже, не помогает.
Без дополнительных деталей это всего лишь предположение, но в вашем интерфейсе вы сделали свой node.js доступным по адресу /myNodeSite
. Если ваш сайт node.js возвращает что-то вроде этого:
<img src="/images/myimage.png"/>
Клиент запросит /images/myimage.png
...который не буду перенаправляйтесь на ваш сайт node.js, поскольку он не начинается с /myNodeSite
. Есть несколько решений:
nginx
, но для Apache есть mod_proxy_html.Вы также можете использовать исключительно относительные ссылки (без ведущих /
) на вашем сайте node.js, но это подразумевает очень плоский макет сайта, и его легко сломать.