#nginx #https #shiny-server
#nginx #https #shiny-сервер
Вопрос:
Здесь я следую этому руководству, чтобы настроить сервер shiny и перенаправить http на https через nginx.
Я установил свои /etc/nginx/sites-available/example.com
настройки с помощью приведенных ниже конфигураций. Мне удается получить доступ к блестящему приложению myapp через https://example.com . Это означает, что nginx правильно маршрутизирует https://example.com чтобы http://example.com:3838/myapp .
Проблема в том, что когда я посещаю http://example.com nginx не перенаправляет меня на https://example.com как и должно быть.
Есть идеи, почему это происходит?
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers AES256 EECDH:AES256 EDH:!aNULL;
location / {
proxy_pass http://my_server_ip:3838/myapp;
proxy_redirect http://my_server_ip:3838/myapp/ https://$host/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 20d;
}
}
Комментарии:
1. Я думаю, что ошибка здесь. С одной стороны, вы должны ввести адрес приложения, например, 127.0.0.1, а с другой стороны, вы хотите перенаправить в папку /myapp/ . Но это работает по-другому с Nginx. расположение ссылки /myapp/ { …. }
2. Спасибо за ваш комментарий. Я решил это, удалив суффикс
/myapp
изproxy_pass
andproxy_redirect
. Тем не менее, я очень удивлен, что nginx перенаправляет на нужное приложение, поскольку на этом сервере shiny доступно несколько приложений, и я не определяю, какое из них я хочу где-либо в файле конфигурации. Это немного похоже на волшебство, и мне это не нравится…3. Супер, я снова ввел его в качестве ответа, чтобы следующий тоже мог его увидеть.
4. Это не волшебные маршруты Nginx к порту 3838. Вы можете установить его с помощью частей местоположения, таких как «location / myapp { ….»
Ответ №1:
Я думаю, что ошибка здесь. С одной стороны, вы должны ввести адрес приложения, например, 127.0.0.1, а с другой стороны, вы хотите перенаправить в папку /myapp/ . Но это работает по-другому с Nginx.
Удалите: /myapp из proxy_pass и proxy_redirect