Работа на порте, отличном от 443: отключить перенаправление на URL без порта

Я изменил app.yml на

expose:
  - "20632:80"   # http
  #- "443:443" # https
  - "20633:443"

и хочу открыть Discourse по адресу https://mydomain.com:20633, но затем он пытается перенаправить на https://mydomain.com, что не работает.

При использовании

expose:
  - "20632:20632"   # http
  #- "443:443" # https
  - "20633:20633"

команда netstat -tulpn показывает, что слушаются эти порты, но при попытке доступа возникает тайм-аут.

Я нашёл тему на Serve Discourse from a subfolder (path prefix) instead of a subdomain о запуске в подпапке, но она не применима к моему случаю.

Также нашёл тему Install Discourse on a residential internet with Cloudflare Tunnel.
Она движется в правильном направлении, но не полностью решает мою задачу.

PS Извините за удаление ссылок на форум, но иначе я не могу опубликовать сообщение.

Мы не поддерживаем работу на нестандартных портах. Если порты 80/443 уже заняты, вам потребуется использовать отдельный сервер, где они свободны, либо настроить обратный прокси для ваших других сервисов и Discourse.

Иногда фраза «мы не поддерживаем» означает «это выходит за рамки той помощи, на которую вы можете здесь рассчитывать», но в данном случае это значит «вы зря тратите время даже на попытки».

Порты не «заняты» в обычном смысле. Discourse может захватить порты 80 и 443 на этой системе, но он уже запущен на отдельном сервере самостоятельно.
Я застрял на шаге отключения перенаправления/удаления порта из URL, и всё должно работать как положено.

Предотвратить это перенаправление невозможно.

Если вы не можете публиковать на стандартных портах, то это вообще не будет работать. Ваши варианты — использовать сервер, где доступны порты :80/443, или выбрать альтернативную платформу для обсуждений.

Можете помочь мне с конфигурацией обратного прокси-сервера nginx?

Я пробовал различные варианты, но без успеха.

server {
    listen 20633 ssl;
    server_name mydomain.com;
	
	ssl_certificate /etc/letsencrypt/live/mensa.myftp.org/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/mensa.myftp.org/privkey.pem;

    location / {
        # Удалите порт из URL в директиве proxy_pass с помощью регулярного выражения
        # Захваченная часть регулярного выражения ($1) будет заменена в URL директивы proxy_pass
        # Фактический IP-адрес и порт сервера бэкенда указаны отдельно в директиве proxy_pass
        proxy_pass http://192.168.178.31:80/
		#$request_uri;
		proxy_redirect http://192.168.178.31:80/ $scheme://$host:20633/;
		#return 301 $scheme://$host:$server_port/home;
		#proxy_redirect http://192.168.178.31:20633 $scheme://$host:80;
        
        # Сохраните заголовок Host, отправленный клиентом на сервер бэкенда
        #proxy_set_header Host $host;
		proxy_set_header Host $http_host;

    }
}

Смотрите руководство по адресу Запуск других веб-сайтов на том же компьютере, что и Discourse.

Этот учебник предназначен для запуска через Unix-сокет на том же сервере. Есть ли также конфигурация для запуска обратного прокси на другой системе с другим портом? Я думаю, что она должна быть, так как этот случай может возникать чаще. На другом хосте у меня уже есть сертификат.Просто для ясности: эта настройка предназначена только для тестирования. В продакшене она будет работать на порту 443, но для разработки и тестирования виртуальной машины дома вполне достаточно, что позволяет сэкономить на аренде сервера на это время.