使用Concourse CI部署静态网站时发生NGINX错误

使用Concourse CI部署静态网站时发生NGINX错误,nginx,cloud-foundry,concourse,Nginx,Cloud Foundry,Concourse,我在尝试使用Concourse CI将静态网站部署到关键Web服务时遇到错误。我想使用static_buildpack推送一个静态网站。index.html放在根文件夹中。当我使用cf push命令将代码从命令行直接推送到Pivotal Web服务时,一切正常。 当我使用concourse管道时,构建成功终止,但是我在访问网站时出错。尝试访问该网站时,我收到一个nginx 403禁止的错误。我使用以下管道尝试了以下清单(见下文)。当使用Concourse CI时,成功创建容器,使用buildpa

我在尝试使用Concourse CI将静态网站部署到关键Web服务时遇到错误。我想使用static_buildpack推送一个静态网站。index.html放在根文件夹中。当我使用cf push命令将代码从命令行直接推送到Pivotal Web服务时,一切正常。
当我使用concourse管道时,构建成功终止,但是我在访问网站时出错。尝试访问该网站时,我收到一个nginx 403禁止的错误。我使用以下管道尝试了以下清单(见下文)。当使用Concourse CI时,成功创建容器,使用buildpack,安装nginx,并上载液滴。应用程序本身已成功启动。
Cloud Foundry日志显示以下错误:
2017/09/05 08:42:54[错误]70#0:*3目录索引“/home/vcap/app/public/”被禁止,客户端:,服务器:localhost,请求:“GET/HTTP/1.1”,主机:“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

可以在

nginx 403上找到源代码。禁止主要发生在找不到index.html时。建议的步骤

  • 检查构建包(现在在清单文件中更新为构建包)
  • 检查命令或dist文件夹
  • cf push-p./dist/-f manifest-{your_environment}.yml--no start(如果index.html直接位于dist文件夹下)


    cf push-p./dist/{your_-app_-name}-f manifest-{your_-environment}.yml--no start(如果您的index.html位于dist/{your_-app_-name}文件夹下)

    nginx 403禁止主要发生在找不到index.html时。建议的步骤

  • 检查构建包(现在在清单文件中更新为构建包)
  • 检查命令或dist文件夹
  • cf push-p./dist/-f manifest-{your_environment}.yml--no start(如果index.html直接位于dist文件夹下)


    cf push-p./dist/{your_-app_-name}-f manifest-{your_-environment}.yml--no start(如果您的index.html位于dist/{your_-app_-name}文件夹下)您必须确保
    index.html
    和其他角度静态文件直接存在于
    public/
    文件夹中,而不是像
    public/your app name/
    这样的文件夹中。您必须确保
    index.html
    和其他角度静态文件直接存在于
    public/
    文件夹中,而不是在
    文件夹中类似于
    public/your app name/

    我建议您在应用程序实例部署到PWS上后,使用
    cf ssh
    ,并四处查看。a、 )确保您的文件已上载b.)它们位于预期位置,即
    public/
    目录,c.)验证nginx配置是否到位。看起来文件不在那里或者路径不对。Nginx说不允许向您提供目录索引,我相信在没有index.html文件的情况下会发生这种情况,这是预期的(默认情况下禁用了目录索引)。我建议您在应用程序实例部署到PWS上后
    cf ssh
    ,然后四处看看。a、 )确保您的文件已上载b.)它们位于预期位置,即
    public/
    目录,c.)验证nginx配置是否到位。看起来文件不在那里或者路径不对。Nginx说不允许给您提供目录索引,我相信在没有index.html文件的情况下会出现这种情况(默认情况下禁用目录索引)。