首页 > 解决方案 > 我应该如何在树莓派上的 nginx 反向代理上配置 HTTPS rstudio-server 和闪亮服务器

问题描述

我想做的事 -

我在我的树莓派上运行 Rstudio 和 Shiny 服务器,可通过 http://"my.public.ip":8787 和:3838 端口访问。我想通过 Nginx 将服务器绑定到我的域,例如“ https://code.example.blog/rstudio ”,对于闪亮服务器 .../shiny-admin 也是如此。域 code.example.blog 是从 Wordpress 购买的,指向我的公共 IP。

我的参考资料——

我是一个菜鸟,我浏览了谷歌上提供的信息,并使用这两个网站作为参考——https://ttdtrang.tk/2019/04/configure-nginx-as-a-reverse-proxy-for-rstudio-server/https://gist.github.com/magic-lanter/1b5e11c3cf5964b69e8e7824df015c5d

我做了什么 -

  1. 我创建了 rstudio_shiny.conf 块并将它放在这个位置,“etc/nginx/conf.d/rstudio_shiny.conf”

  2. 将这些行添加到“/etc/nginx/nginx.conf” http { map $http_upgrade $connection_upgrade { default upgrade; '' 关;}

怎么了 -

  1. 浏览“ https://code.example.blog ”将我带到 nginx 欢迎页面,显示地址没有变化
  2. 浏览“ https://code.example.blog/rstudio ”重定向到 http: //" my.public.ip ":8787

这种行为应该改变为——

你能看看下面的块并提出一个解决方案,如果这个配置允许我托管闪亮的应用程序,你能告诉我吗?

我的网络 -

开放端口为 80,443,22,8787,3838 的静态 IP

**

等/nginx/conf.d/rstudio_shiny.conf **

server {     

if ($host = code.example.blog) {     
  return 301 https://$host$request_uri;  
   } # managed by Certbot    
listen 80 ;   
listen [::]:80 ;     
server_name code.example.blog;   

}    



server {     
   access_log /var/log/nginx/code.example.blog;  
   root /var/www/html;   
   index index.html index.htm index.nginx-debian.html;   
   listen 443 ssl default_server;    
   listen [::]:443 ssl default_server;  

 ssl_certificate /etc/letsencrypt/live/code.example.blog/fullchain.pem; # managed by Certbot     
 ssl_certificate_key /etc/letsencrypt/live/code.example.blog/privkey.pem; # managed by Certbot   
 include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot   
 ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot     
 server_name code.example.blog;  

location /rstudio/ {     
 rewrite ^/rstudio/(.*)$ /$1 break;  
 proxy_pass http://MY.PUB.IP:8787;   
 proxy_redirect http://MY.PUB.IP:8787/ $scheme://$host/rstudio/;      
 proxy_http_version 1.1;     
 proxy_set_header Upgrade $http_upgrade;     
 proxy_set_header Connection $connection_upgrade;    
 proxy_read_timeout 20d;     
}    

location /shiny-admin/ {      
 rewrite ^/shiny-admin/(.*)$ /$1 break;  
 proxy_pass http://MY.PUB.IP:3838;   
 proxy_redirect http://MY.PUB.IP:8787/ $scheme://$http_host/shiny-admin/;    
 proxy_http_version 1.1;     
 proxy_set_header Upgrade $http_upgrade;     
 proxy_set_header Connection $connection_upgrade;    
 proxy_read_timeout 20d;     
 proxy_buffering off;    

}    
}

标签: nginxhttpsshiny-serverrstudio-servershinyapps

解决方案


推荐阅读