Я не совсем понимаю, что именно я ищу здесь, поэтому я не могу эффективно найти свой ответ.
Я использую дегидратированный для проблем 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/
, он работает нормально, так что похоже он что-то делает с завершающим /
Описанное вами перенаправление исходит от nginx, когда вы опускали косую черту в конце URL-адреса. Вы должны иметь возможность подавить его с помощью port_in_redirect off;
.
Вероятно, что программное обеспечение вашего веб-сайта, работающее на порте 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 не отображается за пределами вашего сервера, он доступен только с самого сервера. Применение этой конфигурации означает, что вам нужно сначала исправить предыдущую проблему.