Nginx:28目录索引" / var / www / html /"禁止,

时间:2017-05-20 12:19:56

标签: ubuntu ssl nginx

我正在使用ubuntu 16.04和nginx 1.10,并且我已经关注https://www.linuxbabe.com/security/letsencrypt-webroot-tls-certificate来安装证书。我已成功获得证书并按照指示更新了我的nginx配置文件:

 2017/05/20 07:59:47 [notice] 21911#21911: signal process started
 2017/05/20 07:59:58 [error] 21913#21913: *28 directory index of "/var/www/html/ " is forbidden, client: 216.xx.xx.xx, server: mysite.com, request: "GET /  HTTP/2.0", host: "mysite.com"

当我运行sudo nginx -T时,我没有收到错误。

但是当我打开我的网站时,我收到403错误。

/ var / log / nginx的错误日志显示:

execute 'clone-mercurial-repository' do
    code <<-EOH
        cd '/root/projects/'
        hg clone https://bitbucket.org/some_repo
    EOH
    not_if { File.exist?("/root/projects/some_repo") }
end

我怎样才能使这个工作?

1 个答案:

答案 0 :(得分:1)

错误的location块中有一堆server块。我认为return之后的所有内容都应该在另一个区块中。

如果您希望/.well-known可以访问http,则需要从https服务器中删除HSTS标头。

目前,root服务器中有https个语句,没有其他内容(SSL内容除外)。因此,默认操作是提供/var/www/html/index.html(如果存在)或返回403。