Ошибка NGINX при развертывании статического веб-сайта с Concourse CI

Я сталкиваюсь с ошибкой, когда пытаюсь развернуть статический веб-сайт в Pivotal Web Services с помощью Concourse CI. Я хочу отправить статический веб-сайт с помощью static_buildpack. index.html помещается в корневую папку. Когда я отправляю код из командной строки непосредственно в Pivotal Web Services с помощью команды cf push, все работает нормально.
Когда я использую конвейер concourse, сборка завершается успешно, однако я получаю сообщение об ошибке, когда доступ к веб-сайту. Я получаю сообщение об ошибке nginx 403 Forbidden при попытке доступа к веб-сайту. Я попробовал следующий манифест со следующим конвейером (см. Ниже). При использовании Concourse CI контейнер успешно создается, используется сборочный пакет, устанавливается nginx и загружается дроплет. Само приложение запускается успешно.
Журналы Cloud Foundry показывают следующую ошибку:
2017/09/05 08:42:54 [error] 70#0: *3 directory index of "/home/vcap/app/public/" is forbidden, client: <ip>, server: localhost, request: "GET / HTTP/1.1", host: "agencydemo.cfapps.io"

manifest.yml

---
applications:
- name: agencyDemo
  memory: 64M
  buildpack: staticfile_buildpack
  host: agencyDemo

конвейер.yml

resources:
- name: app_sources
  type: git
  source:
    uri: https://github.com/smichard/CloudFoundryDemo
    branch: master

- name: staging_CloudFoundry
  type: cf
  source:
    api: {{pws_api}}
    username: {{pws_user}}
    password: {{pws_password}}
    organization: {{pws_org}}
    space: {{pws_space}}
    skip_cert_check: false

jobs:
- name: deploy-website
  public: true
  serial: true
  plan:
  - get: app_sources
    trigger: true
  - put: staging_CloudFoundry
    params:
        manifest: app_sources/manifest.yml

Исходный код можно найти на GitHub.


person Stephan Michard    schedule 05.09.2017    source источник
comment
Я бы посоветовал вам cf ssh перейти к экземпляру вашего приложения после его развертывания на PWS и осмотреться. а.) убедитесь, что ваши файлы были загружены б.) что они находятся в ожидаемом месте, то есть в каталоге public/ и в.) проверьте конфигурацию nginx на месте. Похоже, что файлы не там или не в правильном пути. Nginx говорит, что ему не разрешено давать вам индекс каталога, что, как я полагаю, произойдет, если файл index.html отсутствует и ожидается (индекс каталога отключен по умолчанию).   -  person Daniel Mikusa    schedule 06.09.2017


Ответы (2)


nginx 403 Forbidden происходит в основном, когда index.html не найден. предлагаемые шаги

  1. Проверьте свой пакет сборки (который теперь обновляется как пакеты сборки в файле манифеста)
  2. проверьте папку command или dist

cf push -p ./dist/ -f manifest-{your_envireonment}.yml --no-start (если ваш index.html находится непосредственно в папке dist)

or

cf push -p ./dist/{your_app_name} -f manifest-{your_envireonment}.yml --no-start (если ваш index.html находится в папке dist/{your_app_name})

person Atul Sharma    schedule 05.04.2021

Вы должны убедиться, что index.html и другие статические файлы angular находятся непосредственно внутри папки public/, а не в чем-то вроде public/your-app-name/

person Chandru Jc    schedule 16.04.2021