• Welcome to LiuJason's Blog!

Ubuntu18.04安装Shiny-Server并配置git/Nginx SSL/监听端口IP

Linux笔记 Jason 5 years ago (2020-02-23) 1043 Views 0 Comments QR code of this page
文章目录[隐藏]

前言

Ubuntu对比CentOS虽然更臃肿了一些,但是在易用性上的确是好一些。至少在我用到的依赖包中(如gdal等)CentOS7的支持并不算太好,很多包都要自己手动编译和配置。
由于ShinyServer也要安装很多的包,所以如果临时配置一台Shiny服务器的话,我选择Ubuntu18.04。
如果要在CentOS下安装ShinyServer,请查看这里:https://www.liujason.com/article/472.html

安装最新版的R

CentOS参考:https://www.liujason.com/article/472.html
Ubuntu参考:https://www.liujason.com/article/569.html

安装ShinyServer

首先要在R中安装shiny包:

sudo su - \
-c "R -e \"install.packages('shiny', repos='https://cran.rstudio.com/')\""

然后装shinyserver,最新版本自己去官网找:https://rstudio.com/products/shiny/download-server/ubuntu/

sudo apt-get install gdebi-core wget -y
wget https://download3.rstudio.org/ubuntu-14.04/x86_64/shiny-server-1.5.12.933-amd64.deb
sudo gdebi shiny-server-1.5.12.933-amd64.deb

配置实例

首先看看是否启动成功了,若未成功对照看看是不是依赖包没装好

root@shiny:~# service shiny-server status
● shiny-server.service - ShinyServer
   Loaded: loaded (/etc/systemd/system/shiny-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2020-02-23 15:47:59 UTC; 48s ago
 Main PID: 27858 (shiny-server)
    Tasks: 11 (limit: 4915)
   CGroup: /system.slice/shiny-server.service
           └─27858 /opt/shiny-server/ext/node/bin/shiny-server /opt/shiny-server/lib/main.js

Feb 23 15:47:59 shiny systemd[1]: Started ShinyServer.

然后看看是否正在监听正确的端口和ip

apt install lsof -y && lsof -i:3838
root@shiny:~# lsof -i:3838
COMMAND     PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
shiny-ser 27858 root   18u  IPv6 58692408      0t0  TCP *:3838 (LISTEN)

设置文件在/etc/shiny-server/shiny-server.conf,如果监听的是IPv6的话,可以在这里编辑一下修改监听的IP和端口。

nano /etc/shiny-server/shiny-server.conf
-------
# Define a server that listens on port 3838
server {
  listen 3838 0.0.0.0;
-------

在server中监听端口后面加上监听的网卡ip,一般用0.0.0.0表示所有ipv4都监听,然后重启rshinyserver。
这时候访问http://ip:3838/index.html已经可以看到示例页面了。

调用并部署git内的shinyapp

shiny的web根目录在/srv/shiny-server里面,因此先进去删掉所有自带内容,再git拉取就可以了

cd /srv/shiny-server
rm -rf *
git init
git remote add origin https://github.com/LiuZixia/RShinyProjects.git
git pull origin master

设置Nginx反代并开启SSL

参考这里吧,一模一样的东西我就不搬过来了:

使用Nginx来反代Shinyapp 实现子路径访问

文章目录[隐藏] 前言 Nginx规则 前言 汤老板来问,我就整理一下吧。这里面有几个坑需要注意的: Shiny必须使用Nginx的Websocket插件,所以需要在Nginx里面打开,1.6以上版本都是自带的,直接使用即可。 Shiny的默认端口是3838,如果是引用非本地的shiny服务的话,防火墙注意开启 我安装下来发现,在有IPv6的条件下,Shiny会优先监听IPv6,因此需要修改/etc/shiny-server/shiny-server.conf中的监听端口,添加0.0.0.0以监听IPv4(改为::可以强制监听IPv6): ------- # Define a server that listens on port 3838 server { listen 3838 0.0.0.0; ------- Nginx规则 location /shiny/ { if ($request_uri ~* "(php|jsp|cgi|asp|aspx)") { expires 0; } proxy_pass http://shiny的ip:3838; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; […]


https://www.liujason.com/article/529.html


This article is under CC BY-NC-SA 4.0 license.
Please quote the original link:https://www.liujason.com/article/568.html
Like (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址