Относительный проход статических файлов обратного прокси nginx

У меня есть простая установка обратного прокси с nginx (который работает в контейнере докера с certbot https://github.com/umputun/nginx-le ) в качестве веб-сервера на примере .com и 192.168.0.220:80 , где работает мое приложение. Есть конфигурация:

server {
    listen   443 ssl;
    server_name example.com;
    charset utf-8;

    ssl_certificate         SSL_CERT;
    ssl_certificate_key     SSL_KEY;
    ssl_trusted_certificate SSL_CHAIN_CERT;

    location /smarthome/ {
        proxy_pass http://192.168.0.220:80/;
        proxy_redirect off;
        proxy_http_version 1.1;
        proxy_set_header Host $host:$server_port;
        proxy_set_header X-Forwarded-Host $server_name;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Origin '';
    }
}

И веб-страница со статическими ресурсами, определенными следующим образом

Проблема в том, когда я открываю example.com / smarthome он не загружает мои статические ресурсы. В консоли:

https://example.com/js/home.js/smarthome/smarthome/smarthome/smarthome/smarthome/smarthome/smarthome/smarthome/smarthome/smarthome/smarthome/smarthome/smarthome/smarthome/smarthome/smarthome/smarthome/smarthome/smarthome/smarthome net::ERR_TOO_MANY_REDIRECTS

Но ожидается получение формы ресурсов статистики https://example.com/smarthome/js/home.js , но похоже, что он попадает в цикл перенаправления.

Я могу упустить что-то очень простое, но не могу найти решения, пока приходит разочарование. Заранее благодарим за помощь!

0
задан 28 January 2020 в 15:26
1 ответ

В зависимости от конфигурации Nginx вы должны определить корневое расположение. В противном случае он всегда перенаправляет цикл.

Вы можете сделать файл конфигурации следующим образом:

server {
    listen   443 ssl;
    server_name example.com;
    charset utf-8;

    ssl_certificate         SSL_CERT;
    ssl_certificate_key     SSL_KEY;
    ssl_trusted_certificate SSL_CHAIN_CERT;

    location / {
        proxy_pass http://192.168.0.220:80;
    }

    location /smarthome/ {
        proxy_pass http://192.168.0.220:80/;
        proxy_redirect off;
        proxy_http_version 1.1;
        proxy_set_header Host $host:$server_port;
        proxy_set_header X-Forwarded-Host $server_name;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Origin '';
    }
}
0
ответ дан 26 February 2020 в 00:44

Теги

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