У меня простая настройка обратного прокси с nginx (который работает в контейнере Docker с certbothttps://github.com/umputun/nginx-le) как веб-сервер example.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 '';
}
}
И веб-страница со статическими ресурсами, определенными следующим образом:<script src="/js/home.js"></script>
Проблема в том, что когда я обращаюсь к 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
но, похоже, она попадает в цикл перенаправления.
Я могу упустить что-то очень простое, но не могу найти решение, пока не наступит разочарование. Спасибо за помощь заранее!
решение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 '';
}
}