NFS Volume service в PCF - PullRequest
       5

NFS Volume service в PCF

0 голосов
/ 05 января 2019

Я пытаюсь подключиться к существующему пути монтирования NAS из приложения PCF. Для этого у меня есть экземпляр службы NFS в PCF, и я могу создать службу, привязать службу к приложению и выполнить приложение.

Я могу просматривать файлы с подключенного пути NAS, выполнив SSH в приложении PCF, как предлагается по ссылке устранения неполадок (укажите ссылку здесь). Но когда я пытаюсь получить доступ к исходному коду (образец html-файла) из смонтированного пути через приложение Я не могу получить доступ из-за неправильного разрешения пути, хотя я использую / nfs / volume1 в качестве префикса перед именем файла.

manifest.yml

applications:
- name: samplw
  memory: 64M
  path: /nfs/volume1/

файл abc.jpg, доступный на сервере томов

Когда я пытаюсь получить доступ к URL-адресу конечной точки, изображение должно загружаться, но изображение не загружается

1 Ответ

0 голосов
/ 09 января 2019

Есть несколько способов сделать это, вот два, которые должны работать.

  1. Самый простой способ - добавить скрипт .profile в корень вашего приложения. Это скрипт, который запускается до запуска вашего приложения. При этом вы можете копировать файлы из /nfs/volume1 в /home/vcap/app/htdocs/, который является документированным файлом, настроенным в buildpack. Все файлы, которые вы копируете в этот каталог, будут обслуживаться веб-сервером Apache.

    Я бы сделал это, только если у вас на сервере небольшое количество файлов, чтобы они быстро копировались (менее 10 секунд). В противном случае вы будете ждать некоторое время каждый раз, когда ваше приложение должно запуститься, что неэффективно. Вы также можете добраться до того момента, когда приложение прекратит работу и не запустится, если копирование будет достаточно медленным. Тем не менее, это даст вам абсолютную лучшую производительность. Когда вы работаете напрямую из NFS, это будет медленнее.

  2. Если вы хотите обслуживать напрямую из NFS, я бы порекомендовал сохранить документирование там, где оно есть по умолчанию, и добавить директиву Alias, чтобы сопоставить некоторый путь в вашем приложении с файлами в NFS. Например, вы можете добавить псевдоним для сопоставления /static / с /nfs/volume1, и все ваши файлы в /nfs/volume1 будут обслуживаться при доступе к /static/... с тем же путем.

    Это дополнительная конфигурация, которую вам нужно добавить к стандартному, используемому в buildpack: ...

    LoadModule alias_module modules/mod_alias.so
    Alias /static /nfs/volume1
    <Directory "/nfs/volume1">
        Require all granted
    </Directory>
    

    Это должно быть в вашем приложении в .bp-config/httpd/extra/httpd-modules.conf (или другом конфигурационном файле, который использует buildpack, , есть несколько ).

    Полный пример этого вы можете увидеть здесь -> https://github.com/dmikusa-pivotal/php-nfs-demo

    Если все, что вы делаете - это обслуживаете статические файлы, вы можете установить псевдоним / или попробовать изменить DocumentRoot. Это устанавливается здесь , но я не помню, можете ли вы переопределить этот файл.

Надеюсь, это поможет!

...