nginx - 我应该如何在树莓派上的 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
我做了什么 -
我创建了 rstudio_shiny.conf 块并将它放在这个位置,“etc/nginx/conf.d/rstudio_shiny.conf”
将这些行添加到“/etc/nginx/nginx.conf” http { map $http_upgrade $connection_upgrade { default upgrade; '' 关;}
怎么了 -
- 浏览“ https://code.example.blog ”将我带到 nginx 欢迎页面,显示地址没有变化
- 浏览“ https://code.example.blog/rstudio ”重定向到 http: //" my.public.ip ":8787
这种行为应该改变为——
- 需要使用https而不是 http
- 地址应保持为“ https://code.example.blog/rstudio ”,而不是显示我的公共 IP(低优先级)
你能看看下面的块并提出一个解决方案,如果这个配置允许我托管闪亮的应用程序,你能告诉我吗?
我的网络 -
开放端口为 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;
}
}
解决方案
推荐阅读
- selenium-webdriver - 如何在 selenium Webdriver 中使用不同的浏览器(Chrome)语言并行运行案例?
- c# - 抬头时如何阻止我的播放器向上移动
- kubernetes - Kubernetes 上的 Greenplum
- python - 删除从类中添加的精灵
- c - 调用 malloc 函数并不总是在内部调用 sbrk 函数?
- .net-core - MS Graph .netcore 客户端 SDK 在令牌无效时抛出 NullReferenceException
- javascript - 尝试从 API 响应中提取 URL 主机名
- javascript - 如何用下一个 js 配置 redux?
- python-3.x - 在python中使用reduce的oneliner
- parallel-processing - Python中子数组的快速求和