나는 다음 지침을 따르고 있습니다.이 페이지DigitalOcean 드롭릿에 R Shiny 서버를 설정합니다.
내가 갖고 싶은 것:
- Shiny.domain.com에서 실행되는 Shiny 서버
- Shiny.domain.com에서 다음으로 자동 리디렉션됩니다.https://shiny.domain.com
- 다음에서 자동 리디렉션http://shiny.domain.com에게https://shiny.domain.com
현재 1과 2는 작동하지만 3은 작동하지 않습니다. https를 먼저 방문하면 http가 https로 리디렉션되지만 http를 처음 사용하는 경우(예: 시크릿 창에서) 대신 Nginx 시작 페이지가 표시됩니다.
내 Nginx 구성은 다음과 같습니다(Shiny 서버는 3838을 수신하므로 역방향 프록시가 자동으로 트래픽을 리디렉션하도록 설정되므로 위 링크에 설명된 것처럼 매번 :3838을 입력할 필요가 없습니다).
server {
listen 80;
listen [::]:80;
# redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate <path to certificate>;
ssl_certificate_key <path to key>;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m; # about 40000 sessions
ssl_session_tickets off;
ssl_dhparam /etc/nginx/snippets/dhparam.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers xxxxxx
ssl_prefer_server_ciphers off;
# HSTS (ngx_http_headers_module is required) (63072000 seconds)
add_header Strict-Transport-Security "max-age=63072000" always;
# OCSP stapling
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate <path to chain.pem>
server_name shiny.domain.com;
location / {
proxy_pass http://localhost:3838;
proxy_redirect http://localhost:3838/ $scheme://$host/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 20d;
proxy_buffering off;
}
}
저는 nginx를 처음 접했으므로 이에 대한 도움을 주시면 감사하겠습니다.
답변1
server
에 대한 블록이 누락 http
되었습니다 server_name
. 이는 nginx가 이러한 요청에 를 사용하여 default_server
환영 페이지를 표시한다는 것을 의미합니다.
첫 번째 블록을 다음으로 교체하세요.
server {
listen 80;
listen [::]:80;
server_name shiny.example.com;
return 301 https://shiny.example.com;
}