使用Concourse CI部署静态网站时出现NGINX错误

时间:2017-09-05 09:12:31

标签: nginx cloudfoundry pivotal-cloud-foundry concourse

当我尝试使用Concourse CI将静态网站部署到Pivotal Web Services时遇到错误。我想使用 static_buildpack 推送静态网站。 index.html 放在根文件夹中。当我使用 cf push 命令将代码从命令行直接推送到Pivotal Web Services时,一切正常。 当我使用大厅管道时,构建成功终止,但是在访问网站时出现错误。尝试访问该网站时出现 nginx 403 Forbidden 错误。我使用以下管道尝试了以下清单(见下文)。使用Concourse CI时,容器成功创建,使用buildpack,安装nginx并上传Droplet。应用程序本身成功启动 Cloud Foundry Logs显示以下错误:
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

pipeline.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

上找到

2 个答案:

答案 0 :(得分:0)

nginx 403 Forbidden 主要发生在没有找到 index.html 时。建议步骤

  1. 检查您的 buildpack(现在已更新为清单文件中的 buildpack)
  2. 检查命令或 dist 文件夹

cf push -p ./dist/ -f manifest-{your_envireonment}.yml --no-start(如果你的 index.html 直接在 dist 文件夹下)

cf push -p ./dist/{your_app_name} -f manifest-{your_envireonment}.yml --no-start(如果你的 index.html 在 dist/{your_app_name} 文件夹下)

答案 1 :(得分:0)

您必须确保 index.html 和其他角度静态文件直接存在于 public/ 文件夹中,而不是在诸如 public/your-app-name/ 之类的内容中