繁体   English   中英

Ubuntu Nginx容器403禁止

[英]Ubuntu nginx container 403 forbidden

我已经用nginx websever构建了一个ubuntu容器。 docker文件如下所示:

FROM ubuntu:14.04
MAINTAINER James Turnbull "james@example.com"
ENV REFRESHED_AT 2014-06-01
RUN apt-get -yqq update && apt-get -yqq install nginx
RUN mkdir -p /var/www/html/website
ADD nginx/global.conf /etc/nginx/conf.d/
ADD nginx/nginx.conf /etc/nginx/nginx.conf
EXPOSE 80

文件结构如下:

xxxxxx@xxxxx:~/sample$ ls
Dockerfile  nginx  website

使用以下语句运行容器后:

sudo docker run -d -p 80 --name website \-v $PWD\website:/var/www/html/website \kostonstyle/nginx nginx

Nginx服务器工作正常,但是当我请求一个网页时,我只有

curl 0.0.0.0:32769
<html>
  <head><title>403 Forbidden</title></head>
  <body bgcolor="white">
    <center><h1>403 Forbidden</h1></center>
    <hr><center>nginx/1.4.6 (Ubuntu)</center>
  </body>
</html>

我究竟做错了什么?

403错误可能是由于提供了一个空目录而禁用了目录列表(默认)的结果。 有关解决此问题的一些提示,请参见解决403错误

如果网站目录不包含index.html ,请添加此文件

如果网站目录中确实包含index.html ,则可能是卷未正确安装。 如果您使用的是boot2docker,请确保您的网站目录位于c:\\users (Windows)或/Users (OS X)目录下,因为docker只能访问这些目录(默认情况下)

作为thaJeztah回答的补充说明,请注意Windows上的映射区分大小写,因此,如果要映射到'c:\\ users'目录下的'Sites'文件夹,则需要使用右外壳:

docker run --name website -p 80 -d -v /c/Users/username/Sites:/var/www/html/website nginx

(我会发表评论,对thaJeztah的回答,但我没有足够的代表!)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM