Чего здесь не хватает?
Проблема возникает не на всех устройствах. Некоторые показывают, что «Это соединение не защищено». для редмайн и гитлаб. Но кабины нет. Решение загадки теперь в том, что правила для Gitlab и Redmine не полные и запросы https зависают в никуда.
Правила для порта 443 (https) отсутствуют. Теперь я изменил блоки на два:
- Перенаправить http запрос на https
- прослушивать https-запросы и перенаправлять их в приложение
Теперь это выглядит так:
/etc/nginx/sites-available/gitlab.<myserver> связанный с /etc/nginx/sites-enabled/gitlab.<myserver>
# перенаправляем HTTP-запрос на https с сохранением URI запроса
сервер {
слушать 80;
слушать [::]:80;
имя_сервера gitlab.<myserver>;
вернуть 301 https://gitlab.<myserver>$request_uri;
}
# HTTPS-запросы будут перенаправлены серверному приложению
сервер {
слушать 443 ssl;
слушать [::]:443 ssl;
имя_сервера gitlab.<myserver>;
место расположения / {
proxy_pass http://<docker-net-ip>:<port>;
прокси_буферизация выключена;
proxy_set_header X-Real-IP $remote_addr;
# Примечание. Вы должны отключить gzip для трафика SSL.
# См.: https://bugs.debian.org/773332
сжатие выключено;
}
}
/etc/nginx/sites-available/redmine.<myserver> связанный с /etc/nginx/sites-enabled/redmine.<myserver>
# перенаправляем HTTP-запрос на https с сохранением URI запроса
сервер {
слушать 80;
слушать [::]:80;
server_name redmine.<myserver>;
вернуть 301 https://redmine.<myserver>$request_uri;
}
# HTTPS-запросы будут перенаправлены серверному приложению
сервер {
слушать 443 ssl;
слушать [::]:443 ssl;
server_name redmine.<myserver>;
место расположения / {
proxy_pass http://<docker-net-ip>:<port>;
proxy_set_header Хост $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 $ схема;
# Примечание. Вы должны отключить gzip для трафика SSL.
# См.: https://bugs.debian.org/773332
сжатие выключено;
}
}
/etc/nginx/sites-available/cockpit.<myserver> связанный с /etc/nginx/sites-enabled/cockpit.<myserver>
сервер {
слушать 80;
слушать 443 ssl;
server_name cockpit.<myserver>;
место расположения / {
# Требуется для проксирования соединения с Cockpit
прокси_пароль https://127.0.0.1:9090;
proxy_set_header Хост $host;
proxy_set_header X-Forwarded-Proto $ схема;
# Требуется для работы веб-сокетов
прокси_http_версия 1.1;
прокси_буферизация выключена;
proxy_set_header Обновить $http_upgrade;
proxy_set_header Соединение "обновление";
# Передать заголовок ETag из Cockpit клиентам.
# См.: https://github.com/cockpit-project/cockpit/issues/5239
сжатие выключено;
}
}
и /etc/cockpit/cockpit.conf
[Веб-сервис]
Происхождение = https://cockpit.<myserver> 127.0.0.1:9090
Заголовок протокола = X-Forwarded-Proto
[Журнал]
Fatal = /var/log/cockpit.log
[Сеанс]
ПростойТаймаут=15
и для полноты:
/etc/nginx/доступные сайты/по умолчанию связанный с /etc/nginx/sites-enabled/по умолчанию
##
# Вам следует просмотреть следующие URL-адреса, чтобы получить четкое представление
# файлов конфигурации Nginx, чтобы полностью раскрыть всю мощь Nginx.
# https://www.nginx.com/resources/wiki/start/
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
# https://wiki.debian.org/Nginx/DirectoryStructure
#
# В большинстве случаев администраторы удалят этот файл с сайтов с поддержкой/ и
# оставить его как ссылку на доступных сайтах, где он и дальше будет
# обновлено командой упаковки nginx.
#
# Этот файл будет автоматически загружать файлы конфигурации, предоставленные другими
# приложений, таких как Drupal или WordPress. Эти приложения будут сделаны
# доступен по пути с этим именем пакета, например /drupal8.
#
# Более подробные примеры см. в /usr/share/doc/nginx-doc/examples/.
##
# Конфигурация сервера по умолчанию
#
сервер {
слушать 80 default_server;
слушать [::]:80 default_server;
# конфигурация SSL
#
# слушать 443 ssl default_server;
# слушать [::]:443 ssl default_server;
#
# Примечание. Вы должны отключить gzip для трафика SSL.
# См.: https://bugs.debian.org/773332
#
# Прочтите ssl_ciphers, чтобы обеспечить безопасную конфигурацию.
# См.: https://bugs.debian.org/765782
#
# Самоподписанные сертификаты, созданные пакетом ssl-cert
# Не используйте их на рабочем сервере!
#
# включить фрагменты/snakeoil.conf;
корень /var/www/html;
error_log /opt/logs/certbot_error отладка;
}