У меня возникли некоторые трудности при настройке обратного прокси Nginx для следующей настройки:
1) У меня есть DDNS от моего провайдера, так что site.example.isp
всегда указывает на мой реальный IP.
2) Обратный прокси Nginx, который должен разрешать следующее:
a) https://site.example.isp ---> сервер nextcloud, работающий на отдельной машине позади роутер. b) https://site.example.isp/hassio ---> сервер домашнего помощника, работающий на отдельном компьютере за маршрутизатором c) https://site.example.isp/transmission ---> сервер, на котором выполняется передача и другие функции на отдельная машина
Три машины и одна, на которой работает сервер Nginx, работают как контейнеры / vms в Proxmox.
На машине Nginx мне удалось настроить сертификаты Letsencrypt и удалось получить пункт 2а) работает.
Проблема, с которой я столкнулся, связана с 2b и 2 c. Файл .conf
для 2b выглядит следующим образом:
server {
listen 80;
server_name example.site.isp;
root /hassio;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name example.site.isp;
root /hassio;
access_log /var/log/nginx/hassio.example.site.isp.access.log;
error_log /var/log/nginx/hassio.example.site.isp.error.log;
client_max_body_size 0;
underscores_in_headers on;
ssl on;
ssl_certificate /etc/letsencrypt/live/example.site.isp/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.site.isp/privkey.pem;
ssl_stapling on;
ssl_stapling_verify on;
location / {
proxy_headers_hash_max_size 512;
proxy_headers_hash_bucket_size 64;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
add_header Front-End-Https on;
# whatever the IP of your cloud server is
proxy_pass http://hassio.IP:8123;
}
}
В этой конфигурации при посещении https://example.site.isp/hassio
я попадаю на экран входа в систему Hassio. Я ввел свои учетные данные, но им было отказано.
Я не могу понять, почему это происходит.
Для случая 2 c я не знаю, как к нему подойти. Локально, когда я захожу на веб-страницу передачи, я go на http://local.transmission.IP: 9091 , и я вижу окно входа и все. Я видел несколько конфигураций для передачи и Nginx, но ни одна не работала для меня. Один пример, который я попробовал, таков:
server {
listen 80;
server_name example.site.isp;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name example.site.isp;
access_log /var/log/nginx/transmission.example.site.isp.access.log;
error_log /var/log/nginx/transmission.example.site.isp.error.log;
client_max_body_size 0;
underscores_in_headers on;
ssl on;
ssl_certificate /etc/letsencrypt/live/example.site.isp/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.site.isp/privkey.pem;
ssl_stapling on;
ssl_stapling_verify on;
location /transmission {
proxy_read_timeout 300;
proxy_pass_header X-Transmission-Session-Id;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# if you changed the port number for transmission daemon, then adjust the
# folllowing line
proxy_pass http://transmission.IP:9091/transmission/web/;
}
# Also Transmission specific
location /rpc {
proxy_pass http://transmission.IP:9091/transmission/rpc;
}
#TRANSMISSION TORRENT WEB CLIENT SETUP END
location /upload {
proxy_pass http://transmission.IP:9091/transmission/upload;
}
}
Но это просто дает мне 404: Not Found
.
Я никогда не делал ничего подобного, и я понятия не имею, как это схватить проблема. Я был очень счастлив, что мне удалось заставить работать следующее облако. Я также хотел бы, чтобы Home Assistant принимал через обратный прокси-сервер, потому что у меня есть некоторая домашняя автоматизация, которую я хотел бы сделать.
Любая помощь приветствуется. Приветствия