Конфигурация сервера Shiny для персональных приложений

#r #shiny #shiny-server

Вопрос:

Я относительно новичок в конфигурации блестящего сервера. В настоящее время на shiny-сервере на корневом уровне размещается множество приложений, доступ к которым можно получить через http://<ip.address>:3838/appName . Я хочу, чтобы учетная запись службы могла развертывать приложения и проверять файлы журналов. Учетная запись службы не имеет и не будет иметь доступа к sudo. Учетная запись службы уже добавлена в группу под названием shinyUsers . При этом я все еще хочу убедиться, что приложения, развернутые в настоящее время на корневом уровне, все еще работают и на них не повлияет изменение конфигурации.

Читая руководство по настройке, я получаю некоторые сведения о развертывании персональных приложений. Однако я не уверен в том, что добавить для ключей site_dir и. log_dir

Ниже приведен мой файл конфигурации на данный момент:

 run_as :HOME_USER: shiny;

# Define a server that listens on port 3838
server {
  listen 3838;

  location / {
    user_dirs;

    # Only allow members of the 'shinyUsers' group to host personal applications.
    members_of shinyUsers;

    # 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 off;

  }

  # Define a location at the base URL
  location / {

    # 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;
  }
}
 

Комментарии:

1. Вы пытались добавить location /path/to/app раздел с путем к приложению, внутри которого вы установили путь к логу?

2. привет. Я еще ничего не установил для log_dir, так как понятия не имею, что в него вставить. Я не могу понять, что мне нужно сделать. Приложение будет находиться в /home/ShinyApps/appName/ каталоге учетной записи службы

3. Поместите его в каталог, из которого может считываться учетная запись службы.

Ответ №1:

Приведенная ниже конфигурация по-прежнему будет поддерживать работу корневых приложений (albiet с небольшим изменением URL-адреса), а также обеспечит доступ к учетной записи службы для размещения приложений. Приложения должны находиться в каталоге с именем ShinyApps , и файлы журнала автоматически войдут в log подкаталог внутри ShinyApps

приложения корневого уровня будут находиться по URL:, http://myserver/appName а приложения учетной записи службы-по URL: http://myserver/serviceAccountName/appName . Это связано с тем, что я включил имя сервера myserver в приведенную ниже конфигурацию (используйте здесь фактическое имя сервера).

 run_as :HOME_USER: shiny;

# Define a server that listens on port 80
server {
  listen 80;
 
  #replace ip address with name of the server
  server_name: myserver;

  location / {
    user_dirs;

    # Only allow members of the 'shinyUsers' group to host personal applications.
    # I use a centos7 server so sudo usermod -a -G shinyUsers username
    members_of shinyUsers;
  }

  # Define a location at the base URL
  location / {

    # 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 off;
  }
}