Отображение Nginx с прозрачным портом / прокси (?)

Я не совсем понимаю, что именно я ищу здесь, поэтому я не могу эффективно найти свой ответ.

Я использую дегидратированный для проблем LetsEncrypt TLS-ALPN. Я размещаю службу за nginx, используя

stream {
    map $ssl_preread_alpn_protocols $tls_port {
        ~\bacme-tls/1\b 10443;
        default 3443;
    }

    server {
        listen 443;
        listen [::]:443;
        proxy_pass 127.0.0.1:$tls_port;
        ssl_preread on;
    }
}

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;
    return 301 https://$host$request_uri;
}

server {
    listen 3443 ssl;
    listen [::]:3443 ssl;

    server_name wanderingwerners.com www.wanderingwerners.com;

    ssl_certificate /path/to/my/fullchain.pem;
    ssl_certificate_key /path/to/my/privkey.pem;

    index index.html;
    root /var/www/wanderingwerners.com/;
}

. Это прекрасно работает - я могу получать новые сертификаты с нулевым временем простоя, и мой веб-сайт доступен. Однако когда я открываю свою страницу, она работает нормально. Когда я нахожу ссылку, отображается https://www.wanderingwerners.com/a-beginning/

Однако при нажатии на эту ссылку я попадаю на https: //www.wanderingwerners. com: 3443 / a-begin /

Это нежелательно - я бы предпочел, чтобы он отображался как обычный ol ' https://www.wanderingwerners.com/a-beginning/

Полагаю что-то, что я установил здесь в nginx, вызывает путаницу, но я не уверен.

Есть ли способ, которым я могу обновить свою конфигурацию nginx, чтобы по-прежнему работать обезвоженному серверу, но также сообщить браузеру, что : 3443 разве не на самом деле то, к чему они должны подключаться? (Или, по крайней мере, не показывать его в адресной строке)

Обновление

Когда я выполняю curl https://www.wanderingwerners.com/a-beginning, я получаю 301 перенаправить. Что-то определенно происходит с моей конфигурацией nginx.

Другое обновление

Когда я делаю curl https://www.wanderingwernerx.com/a-beginning/, он работает нормально, так что похоже он что-то делает с завершающим /

1
задан 23 August 2019 в 21:43
2 ответа

Описанное вами перенаправление исходит от nginx, когда вы опускали косую черту в конце URL-адреса. Вы должны иметь возможность подавить его с помощью port_in_redirect off; .

0
ответ дан 4 December 2019 в 02:43

Вероятно, что программное обеспечение вашего веб-сайта, работающее на порте 3443, генерирует ссылки в своем HTML-коде, которые включают номер порта.

Вам нужно найти способ, чтобы программное обеспечение генерировало ссылки, указывающие на домен без номера порта.

Еще одно изменение, которое я предлагаю вам:

server {
    listen 127.0.0.1:3443 ssl;

    server_name wanderingwerners.com www.wanderingwerners.com;

    ssl_certificate /path/to/my/fullchain.pem;
    ssl_certificate_key /path/to/my/privkey.pem;

    index index.html;
    root /var/www/wanderingwerners.com/;
}

В этой конфигурации порт 3443 не отображается за пределами вашего сервера, он доступен только с самого сервера. Применение этой конфигурации означает, что вам нужно сначала исправить предыдущую проблему.

0
ответ дан 4 December 2019 в 02:43

Теги

Похожие вопросы