我正在尝试使用 Letscrypt 的 SSL 证书配置 Shiny Server Pro。我按照以下命令创建证书,如下所述: https: //certbot.eff.org/#ubuntuxenial-other
sudo apt-get install letsencrypt
sudo systemctl stop shiny-server
letsencrypt certonly --standalone -d pbisny.org -d www.pbisny.org
Run Code Online (Sandbox Code Playgroud)
我将此行添加到/etc/shiny-server/shiny-server.conf
ssl /etc/letsencrypt/live/pbisny.org/privkey.pem /etc/letsencrypt/live/pbisny.org/cert.pem
Run Code Online (Sandbox Code Playgroud)
并启动服务器。
sudo systemctl start shiny-server
Run Code Online (Sandbox Code Playgroud)
然后我得到这个错误:
Job for shiny-server.service failed because a configured resource limit
was exceeded. See "systemctl status shiny-server.service" and
"journalctl -xe" for details.
Run Code Online (Sandbox Code Playgroud)
以下是详细信息systemctl status shiny-server.service
shiny-server.service - ShinyServer
Loaded: loaded (/etc/systemd/system/shiny-server.service; enabled; vendor preset: enabled)
Active: failed (Result: resources) since Sat 2016-10-22 12:29:19 UTC; 9s ago
Process: 18702 ExecStopPost=/bin/sleep 5 (code=exited, status=0/SUCCESS)
Process: 18685 ExecStartPost=/bin/sleep 3 (code=exited, status=0/SUCCESS)
Process: 18684 ExecStart=/bin/bash -c /opt/shiny-server/bin/shiny-server --pidfile=/var/run/shiny-server.pid >> /var/l
Main PID: 18684 (code=exited, status=0/SUCCESS)
Oct 22 12:29:11 pbis-pro systemd[1]: Starting ShinyServer...
Oct 22 12:29:14 pbis-pro systemd[1]: shiny-server.service: PID file /var/run/shiny-server.pid not readable (yet?) after
Oct 22 12:29:19 pbis-pro systemd[1]: Failed to start ShinyServer.
Oct 22 12:29:19 pbis-pro systemd[1]: shiny-server.service: Unit entered failed state.
Oct 22 12:29:19 pbis-pro systemd[1]: shiny-server.service: Failed with result 'resources'.
Run Code Online (Sandbox Code Playgroud)
我承认,我不是系统管理员。非常感谢任何帮助弄清楚此错误含义的帮助。
终于想通了。以下命令创建证书:
sudo apt-get install letsencrypt
letsencrypt certonly --standalone -d domain.com -d www.domain.com
Run Code Online (Sandbox Code Playgroud)
这是我的文件的服务器部分/etc/shiny-server/shiny-server.conf:
server {
listen 80;
location / {
redirect "https://domain.com" 302 true;
}
}
server {
listen 443;
ssl /etc/letsencrypt/live/domain.com/privkey.pem /etc/letsencrypt/live/domain.com/cert.pem;
# Define a location at the base URL
location / {
# Only up tp 20 connections per Shiny process and at most 3 Shiny processes
# per application. Proactively spawn a new process when our processes reach
# 90% capacity.
utilization_scheduler 20 .9 3;
# Host the directory of Shiny Apps stored in this directory
site_dir /srv/shiny-server;
# Log all Shiny output to files in this directory
log_dir /var/log/shiny-server;
# When a user visits the base URL rather than a particular application,
# an index of the applications available in this directory will be shown.
directory_index on;
}
Run Code Online (Sandbox Code Playgroud)
}
最后,重新启动闪亮的服务器。
sudo systemctl restart shiny-server
Run Code Online (Sandbox Code Playgroud)