Я использую NGINX для балансировки нагрузки кластера Docker Swarm в Digital Ocean. у меня есть swarmpit
установлен, и я хочу использовать обратный прокси-сервер с сертификатом ssl и использовать настраиваемый порт, чтобы я мог получить к нему частный доступ и ограничить трафик.
Я не использую никаких пользовательских путей или чего-то особенного. Я буквально просто выполняю обратное проксирование от корневого пути под субдоменом к контейнеру.
Страница загружается, но кажется, что все, что находится не в корне, не загружается и выдает ошибку 404 или 401. В результате страница выглядит неработающей, загружается только контент корневого уровня.
Server Config
server {
listen #### ssl;
ssl_certificate /etc/letsencrypt/live/###.#####.###/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/###.#####.###/privkey.pem;
include snippets/ssl-params.conf;
include snippets/optimize-assets.conf;
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'Upgrade';
proxy_cache_bypass $http_upgrade;
proxy_pass http://swarmpit;
}
}
Upstream Block
upstream swarmpit {
server ###.###.###.###:###;
server ###.###.###.###:###;
server ###.###.###.###:###;
server ###.###.###.###:###;
server ###.###.###.###:###;
}
У меня также есть много значений по умолчанию, установленных в файле nginx.conf, например
nginx.conf
...
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass_request_headers on;
...
Но я вижу
Пример одного из 404 ответов
Request URL: https://###.#####.###:####/css/rc-slider.css
Request Method: GET
Status Code: 404 Not Found
Remote Address: ###.###.###.###:####
Referrer Policy: no-referrer-when-downgrade
Connection: keep-alive
Content-Length: 555
Content-Type: text/html
Date: Sat, 30 May 2020 05:50:54 GMT
Server: nginx/1.18.0
Accept: text/css,*/*;q=0.1
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Connection: keep-alive
Cookie: _ga=#####
DNT: 1
Host: ###.#####.###:####
Referer: https://###.#####.###:####/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 OPR/68.0.3618.125
Я не уверен, почему это не работает, но у меня закончилась помощь после большого количества поисков в Google, и я уверен, что это что-то, вероятно, простое. Любая помощь приветствуется.